diff --git a/.github/workflows/build_and_publish.yaml b/.github/workflows/build_and_publish.yaml index 5c92bf2df..04b8120c0 100644 --- a/.github/workflows/build_and_publish.yaml +++ b/.github/workflows/build_and_publish.yaml @@ -14,10 +14,10 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - - name: Set up OpenJDK 17 + - name: Set up OpenJDK 21 uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 21 distribution: temurin - name: Get release type from github tag id: get_release_type @@ -82,7 +82,7 @@ jobs: uses: stefanzweifel/git-auto-commit-action@v4 if: ${{ steps.get_release_type.outputs.result != 'test' }} with: - branch: version/1.20.4 + branch: version/1.20.6 commit_message: 'docs: update CHANGELOG.md for ${{ github.ref_name }} [skip ci]' file_pattern: CHANGELOG.md - name: Upload to Mod Platforms diff --git a/build.gradle b/build.gradle index 6a35f1a31..877d2df06 100644 --- a/build.gradle +++ b/build.gradle @@ -18,17 +18,15 @@ sourceSets { main { java { exclude '**/AlmostUnifiedIntegrationImpl.java' - exclude '**/jade/**/*.java' +// exclude '**/jade/**/*.java' + exclude '**/jei/**/*.java' } } } - -// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. -java.toolchain.languageVersion = JavaLanguageVersion.of(17) +java.toolchain.languageVersion = JavaLanguageVersion.of(21) java.withSourcesJar() - if (file('src/main/resources/META-INF/accesstransformer.cfg').exists()) { minecraft.accessTransformers.file file('src/main/resources/META-INF/accesstransformer.cfg') } @@ -59,6 +57,15 @@ runs { // Include resources generated by data generators. sourceSets.main.resources { srcDir 'src/generated/resources' } +// Sets up a dependency configuration called 'localRuntime'. +// This configuration should be used instead of 'runtimeOnly' to declare +// a dependency that will be present for runtime testing but that is +// "optional", meaning it will not be pulled by dependents of this mod. +configurations { + runtimeClasspath.extendsFrom localRuntime +} + + repositories { maven { url "https://dl.cloudsmith.io/public/klikli-dev/mods/maven/" @@ -98,12 +105,14 @@ repositories { dependencies { implementation "net.neoforged:neoforge:${neo_version}" + + //TODO: enable once available //Jei - compileOnly "mezz.jei:jei-${minecraft_version}-common-api:${jei_version}" - compileOnly "mezz.jei:jei-${minecraft_version}-common:${jei_version}" - //we're using the vanilla recipe category rendering constants - compileOnly "mezz.jei:jei-${minecraft_version}-neoforge-api:${jei_version}" - runtimeOnly "mezz.jei:jei-${minecraft_version}-neoforge:${jei_version}" +// compileOnly "mezz.jei:jei-${minecraft_version}-common-api:${jei_version}" +// compileOnly "mezz.jei:jei-${minecraft_version}-common:${jei_version}" +// //we're using the vanilla recipe category rendering constants +// compileOnly "mezz.jei:jei-${minecraft_version}-neoforge-api:${jei_version}" +// runtimeOnly "mezz.jei:jei-${minecraft_version}-neoforge:${jei_version}" //TODO: enable once available //almostunified @@ -116,12 +125,11 @@ dependencies { implementation "com.klikli_dev:modonomicon-${minecraft_version}-neoforge:${modonomicon_version}" //Jade (Hwyla/Waila) - //TODO: enable once available -// implementation "maven.modrinth:jade:${jade_version}" + implementation "maven.modrinth:jade:${jade_version}+neoforge" } processResources { - filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { + filesMatching(['META-INF/neoforge.mods.toml']) { expand project.properties } } @@ -190,3 +198,11 @@ afterEvaluate { options.compilerArgs << "-Xmaxerrs" << "2000" } } + +// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior. +idea { + module { + downloadSources = true + downloadJavadoc = true + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 6cab69184..585f80d50 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,33 +7,33 @@ systemProp.net.minecraftforge.gradle.check.certs=false ## Environment Properties # The Minecraft version must agree with the Forge version to get a valid artifact -minecraft_version=1.20.4 +minecraft_version=1.20.6 # The Minecraft version range can use any release version of Minecraft as bounds. # Snapshots, pre-releases, and release candidates are not guaranteed to sort properly # as they do not follow standard versioning conventions. -minecraft_version_range=[1.20.4,1.21) +minecraft_version_range=[1.20.6,1.21) ## Neo # The neo version must agree with the Minecraft version to get a valid artifact -neo_version=20.4.119-beta +neo_version=20.6.96-beta # The neo version range can use any version of neo as bounds or match the loader version range -neo_version_range=[20.4.80-beta,) +neo_version_range=[20.6.96-beta,) # The loader version range can only use the major version of Neo/FML as bounds -neo_loader_version_range=[2,) -neogradle_version=7.0.84 +neo_loader_version_range=[3,) +neogradle_version=7.0.134 # neo directly reads these properties # the version the mappings were created for, does not need to match the current mc version -neogradle.subsystems.parchment.minecraftVersion=1.20.3 +neogradle.subsystems.parchment.minecraftVersion=1.20.6 # the mapping version -neogradle.subsystems.parchment.mappingsVersion=2023.12.31 +neogradle.subsystems.parchment.mappingsVersion=2024.05.01 ## Mod Properties group=com.klikli_dev mod_id=theurgy mod_name=Theurgy mod_license=MIT AND CC-BY-4.0 -mod_version=1.11.0 +mod_version=1.18.3 mod_authors=Kli Kli mod_description=An open-source magic mod built around classical alchemy to replicate and transmute matter, and create magical artifacts. @@ -41,13 +41,13 @@ mod_description=An open-source magic mod built around classical alchemy to repli jei_version=17.0.0.30 jei_version_range=[17.0.0.30,) -modonomicon_version=1.60.0 -modonomicon_version_range=[1.60.0,) +modonomicon_version=1.72.0 +modonomicon_version_range=[1.72.0,) almost_unified_version=0.5.0 almost_unified_version_range=[0.5.0,) # geckolib currently names their files after 1.20 -geckolib_minecraft_version=1.20.4 -geckolib_version=4.4.1 -geckolib_version_range=[4.4.1,) -jade_version=13.3.1 -jade_version_range=[13.3.1,) \ No newline at end of file +geckolib_minecraft_version=1.20.6 +geckolib_version=4.5.2 +geckolib_version_range=[4.5.2,) +jade_version=14.2.3 +jade_version_range=[14.2.3,) \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 943f0cbfa..d64cd4917 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37aef8d3f..e7646dead 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 b/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 index a0d6576cb..94761d56e 100644 --- a/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 +++ b/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 @@ -1,4 +1,4 @@ -// 1.20.4 2024-01-16T15:38:38.1742182 Registries +// 1.20.6 2024-05-30T10:41:42.0423743 Registries 744153a8b0875b5e2ac142292159f46c322cf09c data/theurgy/neoforge/biome_modifier/add_sal_ammoniac_ore.json eed8cd1911e09af63a869a86d83ab846401194f9 data/theurgy/worldgen/configured_feature/sal_ammoniac_ore.json 3983ae18720546d5efb83e7ac1aa81c774492d63 data/theurgy/worldgen/placed_feature/sal_ammoniac_ore.json diff --git a/src/generated/resources/.cache/36b27e4a9e87bb9edde2c7e0abd4798ee5ccadb9 b/src/generated/resources/.cache/36b27e4a9e87bb9edde2c7e0abd4798ee5ccadb9 index 999fa4e35..777254087 100644 --- a/src/generated/resources/.cache/36b27e4a9e87bb9edde2c7e0abd4798ee5ccadb9 +++ b/src/generated/resources/.cache/36b27e4a9e87bb9edde2c7e0abd4798ee5ccadb9 @@ -1,4 +1,4 @@ -// 1.20.4 2024-01-16T15:38:38.1732174 Multiblocks: theurgy +// 1.20.6 2024-05-30T10:41:42.0423743 Multiblocks: theurgy 063aa91958795c57f58083ca62e775e9476a9407 data/theurgy/modonomicon/multiblocks/placement/calcination_oven.json c480adc4c7baf9ba5321c4ee48193369676f8762 data/theurgy/modonomicon/multiblocks/placement/distiller.json b9d8372529ac674469f93113632ad36c34e3a053 data/theurgy/modonomicon/multiblocks/placement/incubator.json diff --git a/src/generated/resources/.cache/3fa62e6e7a071b2d9f296990c67d7a2df0006913 b/src/generated/resources/.cache/3fa62e6e7a071b2d9f296990c67d7a2df0006913 index 7c418baf3..deaede2ca 100644 --- a/src/generated/resources/.cache/3fa62e6e7a071b2d9f296990c67d7a2df0006913 +++ b/src/generated/resources/.cache/3fa62e6e7a071b2d9f296990c67d7a2df0006913 @@ -1,4 +1,4 @@ -// 1.20.4 2024-05-25T19:06:57.8545531 Books: theurgy +// 1.20.6 2024-05-30T10:41:42.0276094 Books: theurgy 945f222b9db8c0781d05b5a13138c18620a0edc3 data/theurgy/modonomicon/books/the_hermetica/book.json f44f61550bc8611d61016c6476b88448c0fe9f00 data/theurgy/modonomicon/books/the_hermetica/categories/apparatus.json 49226efd8791cdb701bf00d7af65fff59b8c6df6 data/theurgy/modonomicon/books/the_hermetica/categories/getting_started.json diff --git a/src/generated/resources/.cache/444362c84684b9346bb4ad16fb33ed185ef17ccc b/src/generated/resources/.cache/444362c84684b9346bb4ad16fb33ed185ef17ccc index cb778d0cc..becd519d1 100644 --- a/src/generated/resources/.cache/444362c84684b9346bb4ad16fb33ed185ef17ccc +++ b/src/generated/resources/.cache/444362c84684b9346bb4ad16fb33ed185ef17ccc @@ -1,16 +1,16 @@ -// 1.20.4 2024-05-25T13:38:47.7936853 Calcination Recipes -bf2f7ab6aa2aad16c35ef79bdc255fe4b6ff4404 data/theurgy/recipes/calcination/crops.json -39c1b59033b2f9587873bb53bcf47dd7de5c8cfc data/theurgy/recipes/calcination/mineral.json -ec3ffca30544465cb45de3dfb37424586832668a data/theurgy/recipes/calcination/mineral_from_gems.json -d34c225c052338b1501bcbd21e043231ac44f7f7 data/theurgy/recipes/calcination/mineral_from_ingots.json -b07344a18bbda6b38d70991a97148a255dbb7a18 data/theurgy/recipes/calcination/mineral_from_ores.json -5d47d2529cb79f3f62fa2159fccce5f0c28f1d4f data/theurgy/recipes/calcination/mineral_from_other_minerals.json -51f6237a8c17977cd15997e803a4e978e8d1d036 data/theurgy/recipes/calcination/mineral_from_raw_materials.json -a82594b79405cbc12e26262c3d5fe18130d61e68 data/theurgy/recipes/calcination/strata_from_clay.json -2afba9157ca93d0be647a5b26053d198d40601e5 data/theurgy/recipes/calcination/strata_from_clay_ball.json -0e62f8e438f8a1fa1fa48a6187fa8c484c00aeaa data/theurgy/recipes/calcination/strata_from_cobblestone.json -43616593ea63d7084241129deb36a3c73db08ce4 data/theurgy/recipes/calcination/strata_from_dirt.json -21d88699cbff100e85eb3d4e6cdc7c8c45c81fa4 data/theurgy/recipes/calcination/strata_from_gravel.json -e1f604548adf81e5ab8edeff92d309bfcce31a06 data/theurgy/recipes/calcination/strata_from_sand.json -f69c12741f0e9caf5a708d900f83df39d04d8802 data/theurgy/recipes/calcination/strata_from_sandstone.json -ba46b01764d94e57c7a7973da74e4cd57679fad1 data/theurgy/recipes/calcination/strata_from_stone.json +// 1.20.6 2024-05-30T16:55:47.9636051 Calcination Recipes +acaf947e00babf9dab39ffbbeb087ff285b8e0a7 data/theurgy/recipes/calcination/alchemical_salt_crops.json +a0c2b8a348e4dee4e9115059b1acb177b04b9285 data/theurgy/recipes/calcination/alchemical_salt_mineral.json +5b06c236f53d103c2184037dc85630fbcf3a1092 data/theurgy/recipes/calcination/alchemical_salt_mineral_from_gems.json +432ea41ebf8319d6814f38e909c41f1c4a47acf7 data/theurgy/recipes/calcination/alchemical_salt_mineral_from_ingots.json +88b8236f812da561c9f7c906c7b9961ba4ee74b5 data/theurgy/recipes/calcination/alchemical_salt_mineral_from_ores.json +2044ecd1b1b20e3374e67be6f26b7fe5459affd1 data/theurgy/recipes/calcination/alchemical_salt_mineral_from_other_minerals.json +20c857ac6b657a18d35960c4b88f0d330e63488b data/theurgy/recipes/calcination/alchemical_salt_mineral_from_raw_materials.json +dc52856e4264056e389018ccdd9e024c44bfe3ce data/theurgy/recipes/calcination/alchemical_salt_strata_from_clay.json +c9c8e1089a1fa1fdf8a2d5fbe6123496a14f71e0 data/theurgy/recipes/calcination/alchemical_salt_strata_from_clay_ball.json +a6ffa53646cc8209a5de72eb740f15971b387d81 data/theurgy/recipes/calcination/alchemical_salt_strata_from_cobblestone.json +362241ce8e8947b89297e571ac7cf791f2a606e2 data/theurgy/recipes/calcination/alchemical_salt_strata_from_dirt.json +8f39086edc7c4d6bdc01ff9d00d044f6d856480d data/theurgy/recipes/calcination/alchemical_salt_strata_from_gravel.json +831c6ce81ba9871fedbb14b535554a7dc3ac432e data/theurgy/recipes/calcination/alchemical_salt_strata_from_sand.json +581669a38a89a9239cb8f03487e5e4b21728bf61 data/theurgy/recipes/calcination/alchemical_salt_strata_from_sandstone.json +4f95b7a95c32c46cfc28c06d13a524842150819e data/theurgy/recipes/calcination/alchemical_salt_strata_from_stone.json diff --git a/src/generated/resources/.cache/44e062bf203da5d734205f46ac5f2eb38d3b96a5 b/src/generated/resources/.cache/44e062bf203da5d734205f46ac5f2eb38d3b96a5 index b33c68b13..1568e91f8 100644 --- a/src/generated/resources/.cache/44e062bf203da5d734205f46ac5f2eb38d3b96a5 +++ b/src/generated/resources/.cache/44e062bf203da5d734205f46ac5f2eb38d3b96a5 @@ -1,4 +1,4 @@ -// 1.20.4 2024-05-11T09:59:44.5162451 Block States: theurgy +// 1.20.6 2024-05-30T10:41:42.0408669 Block States: theurgy ef875fc2604f4f19d7604536c66d3d2c26163879 assets/theurgy/blockstates/calcination_oven.json fa912507f89d2fe9ac05c8b057aed16d83f0d96c assets/theurgy/blockstates/caloric_flux_emitter.json 92ebf87f417e3426f30d3e42eeafd933e446eb23 assets/theurgy/blockstates/deepslate_sal_ammoniac_ore.json diff --git a/src/generated/resources/.cache/469c78d8f4486110280e6206cdb5f7533d7b17cf b/src/generated/resources/.cache/469c78d8f4486110280e6206cdb5f7533d7b17cf index bb28b6cc7..9db363521 100644 --- a/src/generated/resources/.cache/469c78d8f4486110280e6206cdb5f7533d7b17cf +++ b/src/generated/resources/.cache/469c78d8f4486110280e6206cdb5f7533d7b17cf @@ -1,14 +1,14 @@ -// 1.20.4 2024-01-22T15:25:03.2820635 Tags for minecraft:item mod id theurgy -7a78325a639e879280cccf4d15f364e02da86003 data/forge/tags/items/gems.json -9a414088a384ea8077655b79eb53ac263aaae5e3 data/forge/tags/items/gems/sal_ammoniac.json -04abd356cb9b230f4d1adcf90db05571e8a17d05 data/forge/tags/items/ores/sal_ammoniac.json -9148832ee4e83df2b37e23918707fd8046f26ff7 data/forge/tags/items/ores_in_ground/deepslate.json -f8295983ffdb0c42c6c8b12788a5b63c1eb43f72 data/forge/tags/items/ores_in_ground/stone.json -e801bdef0719e27dd7decd88269ada7c5740348e data/forge/tags/items/sugar.json +// 1.20.6 2024-05-30T17:11:26.8201974 Tags for minecraft:item mod id theurgy +f41150cbf3906d7eb1284a3f289d93bb80e57b9f data/c/tags/items/gems.json +9a414088a384ea8077655b79eb53ac263aaae5e3 data/c/tags/items/gems/sal_ammoniac.json +04abd356cb9b230f4d1adcf90db05571e8a17d05 data/c/tags/items/ores/sal_ammoniac.json +9148832ee4e83df2b37e23918707fd8046f26ff7 data/c/tags/items/ores_in_ground/deepslate.json +f8295983ffdb0c42c6c8b12788a5b63c1eb43f72 data/c/tags/items/ores_in_ground/stone.json +e801bdef0719e27dd7decd88269ada7c5740348e data/c/tags/items/sugars.json c1ae367d1f7b1391996652acb8c12cfbe63abfc8 data/theurgy/tags/items/alchemical_mercuries.json 6b2cc4608ef32324e28685c927a71faff559feb3 data/theurgy/tags/items/alchemical_niters.json 07760e14b03fd0089485f8825e5961fedbd2ab80 data/theurgy/tags/items/alchemical_salts.json -d5a5bd4c35eb69220e7e4ec0e991474a2f4442b4 data/theurgy/tags/items/alchemical_sulfurs.json +7e640bba62ec6219c3e3def2845f665fdb1e9cba data/theurgy/tags/items/alchemical_sulfurs.json 34afd6e0275950da142439ac05cd7455f47850e4 data/theurgy/tags/items/alchemical_sulfurs/abundant.json 4356e96ae4efb2a5a21bcc7e7d0ac4e68ae4f0a3 data/theurgy/tags/items/alchemical_sulfurs/common.json 266413752c11313070378f2d5cc88f57a4a87cbd data/theurgy/tags/items/alchemical_sulfurs/gems.json @@ -29,19 +29,19 @@ a1f5db5c4c9d4b747e83dd3f796c8698304575bf data/theurgy/tags/items/alchemical_sulf a60fef1f5fe3c9aab793de4942e301732c51df6a data/theurgy/tags/items/alchemical_sulfurs/precious.json 214fcce95acb2086d5fd0fd4247b8445aaf55efd data/theurgy/tags/items/alchemical_sulfurs/rare.json 3bd13300b62d36e233ff4d34de69f118e502d263 data/theurgy/tags/items/alchemical_sulfurs_and_niters.json -c2e9d4fba333d2af3dbe84b5773c1c1c5e055dc4 data/theurgy/tags/items/gems/mercury/high.json -959c361f3fbee6edb10161ff4ebc2850ef625547 data/theurgy/tags/items/gems/mercury/low.json -e85a6add1492e3a02b8a37a6308fc632e930180f data/theurgy/tags/items/gems/mercury/medium.json -dd248dce97f06027745077215c44f2840b3d6685 data/theurgy/tags/items/metals/mercury/high.json -1ec36d4d19b4be396697dc03365e232bf0e42c97 data/theurgy/tags/items/metals/mercury/low.json -67412e7cf25103161049bc0ac62570357f558191 data/theurgy/tags/items/metals/mercury/medium.json -b119b915f2e2b16c4a5750a50453a2cfddf7235f data/theurgy/tags/items/ores/mercury/high.json -f844cd452a39f1295f45a4cb9585a1510a719986 data/theurgy/tags/items/ores/mercury/low.json -201dcad9991b37cbbe3388aafec4048eebaae020 data/theurgy/tags/items/ores/mercury/medium.json -cddb5c3b26d739614cdd25038f449762a5af9732 data/theurgy/tags/items/other_minerals.json +524efa3a8dcc24905b98159b1337b51391ec167f data/theurgy/tags/items/gems/mercury/high.json +e873104df27d6faa558b42db26e56a3f0b9f8a59 data/theurgy/tags/items/gems/mercury/low.json +d1e03d28eb707840e17f308c160dbf73077b84d1 data/theurgy/tags/items/gems/mercury/medium.json +51382a9c92345c3df994cee528187c92ae466bb5 data/theurgy/tags/items/metals/mercury/high.json +747540d1b7832800b61fdddbd722cdf7e5d73c80 data/theurgy/tags/items/metals/mercury/low.json +68a210ae8b304b7b50b42c6e7dd040dc36122767 data/theurgy/tags/items/metals/mercury/medium.json +474f9b4e1f9a47fc8f192c69d494aa44c391c128 data/theurgy/tags/items/ores/mercury/high.json +7d989993fd00bca9cd8eba6ea927bbdb72e86bb4 data/theurgy/tags/items/ores/mercury/low.json +da1973a5d50ffdfcb88f8727814dbde4af5bca81 data/theurgy/tags/items/ores/mercury/medium.json +c5e13a871dcf746d7fc2c995f5faab375b5c6a73 data/theurgy/tags/items/other_minerals.json 35133e95f1c8fdd7a1c21afcc231fc0bffefb9a8 data/theurgy/tags/items/other_minerals/mercury/high.json -cddb5c3b26d739614cdd25038f449762a5af9732 data/theurgy/tags/items/other_minerals/mercury/low.json -60a5194a30db746b92cf1af2a2eeeca4af7ba1ff data/theurgy/tags/items/other_minerals/mercury/medium.json -ca75039df5ed6330ee575eb55689e8f23a1e7a99 data/theurgy/tags/items/raw_materials/mercury/high.json -ba40677f5ca89c0a487417a60d1bb1fc6e20b837 data/theurgy/tags/items/raw_materials/mercury/low.json -6c46417f3830c1411e097320c5d40fcee9cf28a7 data/theurgy/tags/items/raw_materials/mercury/medium.json +c5e13a871dcf746d7fc2c995f5faab375b5c6a73 data/theurgy/tags/items/other_minerals/mercury/low.json +650fc77d16cbeb336f968ea9bdc195eed6932d45 data/theurgy/tags/items/other_minerals/mercury/medium.json +f6bd9b8ac59118fc0c44c71a5bc8c2ba93089ecc data/theurgy/tags/items/raw_materials/mercury/high.json +dffb7087e34e4e1964d7497a6b9363e6abbc03e4 data/theurgy/tags/items/raw_materials/mercury/low.json +41b5e0086cd263c053383bed48ca5ca700c573d4 data/theurgy/tags/items/raw_materials/mercury/medium.json diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d index 70af6366c..b3d7f2f24 100644 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d @@ -1,7 +1,7 @@ -// 1.20.4 2024-05-11T10:50:26.5485353 Loot Tables +// 1.20.6 2024-05-30T10:41:42.0338676 Loot Tables 72c4014c4a8e846f945380a01c02fc8516e774d7 data/theurgy/loot_tables/blocks/calcination_oven.json -b78ed93c8a746109ac27cbaf07f1d4979078ac50 data/theurgy/loot_tables/blocks/caloric_flux_emitter.json -fd1d6c22b80bf3f1357dd9e23231ce1758e3799f data/theurgy/loot_tables/blocks/deepslate_sal_ammoniac_ore.json +fd7072af99912a91b8804e95b8c8f50f17d36b8c data/theurgy/loot_tables/blocks/caloric_flux_emitter.json +3b0e3258ed5973847301698d335108b1bbadcc0b data/theurgy/loot_tables/blocks/deepslate_sal_ammoniac_ore.json 235af5d0407b90935306c4e7aefbe06a198e92ed data/theurgy/loot_tables/blocks/digestion_vat.json 03da56ccdb1e9f132dc38e079668c8ab7689d708 data/theurgy/loot_tables/blocks/distiller.json 7773b136035a6e945335c00ea9f8e20ca2b06c0d data/theurgy/loot_tables/blocks/fermentation_vat.json @@ -13,12 +13,12 @@ affc4e07fa5ea6f2710ba2f12a1ed95ff1f9a400 data/theurgy/loot_tables/blocks/incubat befb1f76276418639b92a317bc135b73f385ef32 data/theurgy/loot_tables/blocks/logistics_connector_node.json eab2938a4f87b5111215802411e190728c10cd73 data/theurgy/loot_tables/blocks/logistics_item_extractor.json 1615ae8d2662ddf052afdfdb2a9fa1530d54fd8a data/theurgy/loot_tables/blocks/logistics_item_inserter.json -3a8dda04dd5948b409faf4291422b07de8491cad data/theurgy/loot_tables/blocks/mercury_catalyst.json +9b1613be8445150d38ecd9d54084563e1c8ffbfa data/theurgy/loot_tables/blocks/mercury_catalyst.json 548d06109872a2a9d7f8fbd451414f671be41c36 data/theurgy/loot_tables/blocks/pyromantic_brazier.json 497459c788db5863c058d22ed3873f21eeca8fd6 data/theurgy/loot_tables/blocks/reformation_result_pedestal.json 9225ce24a617011f3c4ab07b42385efc0a15174a data/theurgy/loot_tables/blocks/reformation_source_pedestal.json b9102f2059d2e55c87ca052896537377c88935a6 data/theurgy/loot_tables/blocks/reformation_target_pedestal.json 1e9e39c1ec35fd04a371c081e9e0dc8e1f246cb1 data/theurgy/loot_tables/blocks/sal_ammoniac_accumulator.json -30f8dbf50bc546bce7c73245555a0393ae17d798 data/theurgy/loot_tables/blocks/sal_ammoniac_ore.json +8e1f9c82b46c7a2d8bbc8d03742df8248e0e2476 data/theurgy/loot_tables/blocks/sal_ammoniac_ore.json 58718450c1d42ff9ef53e693e753fc0c820c79b9 data/theurgy/loot_tables/blocks/sal_ammoniac_tank.json -c1445f3d0519d8cc54945ddcaf95d22b8d6f85e9 data/theurgy/loot_tables/blocks/sulfuric_flux_emitter.json +b187eb118debd94931d24af7145ed83737afbc78 data/theurgy/loot_tables/blocks/sulfuric_flux_emitter.json diff --git a/src/generated/resources/.cache/8427b0a980665b286efcd7446b1247414f24e76c b/src/generated/resources/.cache/8427b0a980665b286efcd7446b1247414f24e76c index 56b39ed82..a8b1a65ad 100644 --- a/src/generated/resources/.cache/8427b0a980665b286efcd7446b1247414f24e76c +++ b/src/generated/resources/.cache/8427b0a980665b286efcd7446b1247414f24e76c @@ -1,3 +1,3 @@ -// 1.20.4 2024-01-16T15:38:38.1662199 Tags for minecraft:fluid mod id theurgy +// 1.20.6 2024-05-30T10:41:42.0348724 Tags for minecraft:fluid mod id theurgy c5e02d06f56acf2f6153655b74e7d7f22d5750a6 data/theurgy/tags/fluids/sal_ammoniac.json a36da82105fb95e08c30643937a39170fdde549f data/theurgy/tags/fluids/solvent.json diff --git a/src/generated/resources/.cache/93765a0f723bc6097e750f2a441254a1f7b8ae08 b/src/generated/resources/.cache/93765a0f723bc6097e750f2a441254a1f7b8ae08 index 5c2ad2050..1622bb9c3 100644 --- a/src/generated/resources/.cache/93765a0f723bc6097e750f2a441254a1f7b8ae08 +++ b/src/generated/resources/.cache/93765a0f723bc6097e750f2a441254a1f7b8ae08 @@ -1,5 +1,5 @@ -// 1.20.4 2024-05-25T13:38:47.7947444 Shapeless Crafting Recipes -6017c308729d12b68a43e016207b272ce0b636a4 data/theurgy/recipes/crafting/shapeless/logistics_item_extractor_from_inserter.json -4a7e21b89d8e40928e19abe740839aaadd000921 data/theurgy/recipes/crafting/shapeless/logistics_item_inserter_from_extractor.json -2eabb44670401c8fd0b1ca254b9893de14f6b125 data/theurgy/recipes/crafting/shapeless/sal_ammoniac_crystal_from_sal_ammoniac_bucket.json -3fb7309b9ae4030f1a88b5a888a01be4a292e6cf data/theurgy/recipes/crafting/shapeless/the_hermetica.json +// 1.20.6 2024-05-30T16:43:00.9605089 Shapeless Crafting Recipes +bf019ef86f1737ea26c863fb7d617fc1ae9a0652 data/theurgy/recipes/crafting/shapeless/logistics_item_extractor_from_inserter.json +448aaffabb948293fd8896689b18634112f43d59 data/theurgy/recipes/crafting/shapeless/logistics_item_inserter_from_extractor.json +a1027af9e7554a8f6573fc6bf47c85f2abf91619 data/theurgy/recipes/crafting/shapeless/sal_ammoniac_crystal_from_sal_ammoniac_bucket.json +aa1ab27e7d5e3fff0108e5725a57cde594559ae5 data/theurgy/recipes/crafting/shapeless/the_hermetica.json diff --git a/src/generated/resources/.cache/96e1c194aa2b8cdd63adb750d34ba507337ea835 b/src/generated/resources/.cache/96e1c194aa2b8cdd63adb750d34ba507337ea835 index a2baac498..2ec5e5572 100644 --- a/src/generated/resources/.cache/96e1c194aa2b8cdd63adb750d34ba507337ea835 +++ b/src/generated/resources/.cache/96e1c194aa2b8cdd63adb750d34ba507337ea835 @@ -1,34 +1,34 @@ -// 1.20.4 2024-05-25T13:59:30.5808876 Shaped Crafting Recipes -65adf9745631d64def2dcad201ebfd627f7d1f54 data/theurgy/recipes/crafting/shaped/amethyst_divination_rod.json -beeb9dcc0af3fee3db11bae63a00ca0b0847e81a data/theurgy/recipes/crafting/shaped/calcination_oven.json -de70910187e1db700fcbb06e774170b0f54186a5 data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_campfire.json -f10b63402d9565c5536fad68c998a2c460e7bb80 data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_lava_bucket.json -37f3353bf6ff86f8ee64ab3af30ce9bf1f21ce07 data/theurgy/recipes/crafting/shaped/copper_wire.json -655b9cf0ee6a23fb553a6894bd0554d303e4d00a data/theurgy/recipes/crafting/shaped/digestion_vat.json -415d5f0ecad980e5f54c1852974e6736dd9fa1bb data/theurgy/recipes/crafting/shaped/distiller.json -921cefdf1ac2f487f4784dab35990864a49ab98a data/theurgy/recipes/crafting/shaped/divination_rod_t1.json -6c010e0f6410098e65f5f9d2443563be9eac4364 data/theurgy/recipes/crafting/shaped/divination_rod_t2.json -c37acacfce0d45724c3551d06c3f4dfd58d67132 data/theurgy/recipes/crafting/shaped/divination_rod_t3.json -b35dcc656b28f8561a6fbd117de588377ab8a317 data/theurgy/recipes/crafting/shaped/divination_rod_t4.json -6a149cb61c6b59590ab5472946eef4b6feca1568 data/theurgy/recipes/crafting/shaped/fermentation_vat.json -e7f45eb1b7b9b57582cdfa98b50046a2d4d3861c data/theurgy/recipes/crafting/shaped/incubator.json -12bcfeb8ae4e8ad04f8c7dc5617d8851f3397c09 data/theurgy/recipes/crafting/shaped/incubator_mercury_vessel.json -2a5b69ce0e29618a636e589834986eccce956a29 data/theurgy/recipes/crafting/shaped/incubator_salt_vessel.json -e99098bfd0887c4f43cb99dde1452b606d8e8d3d data/theurgy/recipes/crafting/shaped/incubator_sulfur_vessel.json -75819834a8823a42874b5b66d0ecf3eb9e235adc data/theurgy/recipes/crafting/shaped/liquefaction_cauldron.json -6b8bedd96a9311601374e6b8a56acdd1b38a4394 data/theurgy/recipes/crafting/shaped/logistics_connector_node.json -2455fc2a33a54b406575f477be589563688c5a77 data/theurgy/recipes/crafting/shaped/logistics_item_extractor.json -19fe7c9dda2cceeadf7b79d8b1c7e63c291731e5 data/theurgy/recipes/crafting/shaped/logistics_item_inserter.json -6fadba46429947db8e894b1f63afb0e1ef1d4693 data/theurgy/recipes/crafting/shaped/mercurial_wand.json -85b82930854b94e946bd26c03e4590ca3bb199af data/theurgy/recipes/crafting/shaped/mercury_catalyst.json -7d2334397096083e881438fcc2bca336cbba7787 data/theurgy/recipes/crafting/shaped/pyromantic_brazier.json -dfa144c70999a57909f839b09624652ffd753460 data/theurgy/recipes/crafting/shaped/reformation_result_pedestal.json -77b224370e76cd59d99c679a7d2e127464283a6b data/theurgy/recipes/crafting/shaped/reformation_source_pedestal.json -ef3262cd7439a728f39dc1d012f8a34c4e41abd0 data/theurgy/recipes/crafting/shaped/reformation_target_pedestal.json -841fd592bc9dd4af552c2bb503cff80d1cd0f4d1 data/theurgy/recipes/crafting/shaped/sal_ammoniac_accumulator.json -057dbdb4e2e532cfdbacad922a3bf880f12d51bf data/theurgy/recipes/crafting/shaped/sal_ammoniac_tank.json -6a8f9bf88bb463844f869ba9e848eac73a2691a1 data/theurgy/recipes/crafting/shaped/sulfuric_flux_emitter.json -2b69863e1a4ea19a7bececf9bc205f6b01b2a877 data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_abundant.json -bccf3fd33fa05e1ddf8d1883651a0b427c8877ef data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_common.json -6780b34b1f3fa7a6d95ffb7ae21f6db09b53afe6 data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_precious.json -86f714ec9bd46bbbe6954126ae3ce577b89bff34 data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_rare.json +// 1.20.6 2024-05-30T16:43:00.9555078 Shaped Crafting Recipes +1a1455c9a7af01c27e142f6dbd30d87036d4d091 data/theurgy/recipes/crafting/shaped/amethyst_divination_rod.json +5947320d23ddb2fea340162d3fa1f499ae60fe60 data/theurgy/recipes/crafting/shaped/calcination_oven.json +fea993b064c542dc56524de4c628f0160ed5850f data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_campfire.json +1419a9e2ec026cf4c03d8df57bc4fea711c12872 data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_lava_bucket.json +b745505c4e5af2978375f48a1d4b067717444037 data/theurgy/recipes/crafting/shaped/copper_wire.json +c3e26e32ca0ab113cbe2584d923de2b613e6897f data/theurgy/recipes/crafting/shaped/digestion_vat.json +8a79bd71930efcbfb94c1af559ba500c05a30367 data/theurgy/recipes/crafting/shaped/distiller.json +44f859943c7b2f974938c5e6f3fbd04062f2af2b data/theurgy/recipes/crafting/shaped/divination_rod_t1.json +3c1e60492cdf9b0383ea5b52635ef18fa0a1674e data/theurgy/recipes/crafting/shaped/divination_rod_t2.json +80e3e738c9fa11960977ed3dc99a4b4117f35ac0 data/theurgy/recipes/crafting/shaped/divination_rod_t3.json +07fddf140d0fcb90e28547e9e29ab6690e0f3e64 data/theurgy/recipes/crafting/shaped/divination_rod_t4.json +7fe3b78cdc831f74204524eadf4f390add0ff8be data/theurgy/recipes/crafting/shaped/fermentation_vat.json +73dcd343f396dc86eb886eb5f0b0b6a92217cddd data/theurgy/recipes/crafting/shaped/incubator.json +f89630022cc77960809704f97a6a655986f924ad data/theurgy/recipes/crafting/shaped/incubator_mercury_vessel.json +cd84d5636f07b867158c49eba4c340b7f47e6996 data/theurgy/recipes/crafting/shaped/incubator_salt_vessel.json +85ddf466c8fe887d9dddb263aff4ed51d828c846 data/theurgy/recipes/crafting/shaped/incubator_sulfur_vessel.json +473b7db592ed450f6be0785521593e0fc18e394d data/theurgy/recipes/crafting/shaped/liquefaction_cauldron.json +5cf698be6496edd1070ed239a9b6fcdd80d4f05a data/theurgy/recipes/crafting/shaped/logistics_connector_node.json +34d5886f5d4f29e58249d2bb00eb29b926b8daab data/theurgy/recipes/crafting/shaped/logistics_item_extractor.json +95fba052d90433b04781cc28b8f09ac1e9c2443b data/theurgy/recipes/crafting/shaped/logistics_item_inserter.json +cafe50c44b5ff23044d230b5d93dbbb9b173c7d3 data/theurgy/recipes/crafting/shaped/mercurial_wand.json +9dcaeb000d6edeee56d1a5e6934643e986180e1a data/theurgy/recipes/crafting/shaped/mercury_catalyst.json +5a1de32eefaec93cffa7297c27e6afbae9bdf9fd data/theurgy/recipes/crafting/shaped/pyromantic_brazier.json +b488ef18de51bb06e8402f65b391fd3019c04b03 data/theurgy/recipes/crafting/shaped/reformation_result_pedestal.json +40c0fd5d464be0274f6b8e773009968f76ddd012 data/theurgy/recipes/crafting/shaped/reformation_source_pedestal.json +c051df3f932861f6116dc4e8377062641afdc541 data/theurgy/recipes/crafting/shaped/reformation_target_pedestal.json +e11ad16609ddac0cfd7025a7e770ba3560f796fa data/theurgy/recipes/crafting/shaped/sal_ammoniac_accumulator.json +3e65ba8be207c609dbf115893cf08d7517607fa8 data/theurgy/recipes/crafting/shaped/sal_ammoniac_tank.json +0bd4c7d4d205469fea6d39b7c9862f3a94b3c182 data/theurgy/recipes/crafting/shaped/sulfuric_flux_emitter.json +17363551c363e688b26888422aa067d61408c4f1 data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_abundant.json +ec8db0b1a1b956fb65761152d47a9717865024c3 data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_common.json +8c3835987adf6ba26ef0b6b3cd7421b56583a3ba data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_precious.json +fa5f4d4cbf39d3395d22266d0fa6bab44754b636 data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_rare.json diff --git a/src/generated/resources/.cache/97e04e705b4e3084289e96c3d45fb37ff92d03b3 b/src/generated/resources/.cache/97e04e705b4e3084289e96c3d45fb37ff92d03b3 index 00be0daaf..aed3ea9b7 100644 --- a/src/generated/resources/.cache/97e04e705b4e3084289e96c3d45fb37ff92d03b3 +++ b/src/generated/resources/.cache/97e04e705b4e3084289e96c3d45fb37ff92d03b3 @@ -1,45 +1,45 @@ -// 1.20.4 2024-05-25T13:38:47.7952755 Distillation Recipes -7a957b0e6a81734b37571659ef5c8c208dca3f31 data/theurgy/recipes/distillation/beef.json -ee4465ea60be09f13d90a04a54d2cf631f35474c data/theurgy/recipes/distillation/bread.json -a121055bd7fbe87a2d53cb137584ab6de13a0bd5 data/theurgy/recipes/distillation/chicken.json -25c7205e2ce88f8ccc3f8b443b87b7f10cdff1ab data/theurgy/recipes/distillation/cobblestone.json -07ac8ab178aa7081e8fe19fc47e2c6391d09d777 data/theurgy/recipes/distillation/cod.json -37502658f9816a11de310260b2db1ef3e16f55af data/theurgy/recipes/distillation/cooked_beef.json -85dc3a2ed241ae3c04cff5d8f7df0c3e1378b3cf data/theurgy/recipes/distillation/cooked_chicken.json -4fc8ddfae520e1ea5f9e6b400581c414740cb89f data/theurgy/recipes/distillation/cooked_cod.json -46919950e92689eba719d34cf28fc1a04a269ede data/theurgy/recipes/distillation/cooked_porkchop.json -a40a20599f674e5478d277f67c57326c64254565 data/theurgy/recipes/distillation/cooked_rabbit.json -a2358e62cb66d9cc62287629e22d1e8cdff6a73f data/theurgy/recipes/distillation/cooked_salmon.json -37e0359189b752c1b57abff80200bcc5bae84e99 data/theurgy/recipes/distillation/crops.json -83222c6436d1258ef153bcbee7d7818b835b998a data/theurgy/recipes/distillation/dirt.json -d321ac4449b6324a2c6ce4fac246879f8ea7abf7 data/theurgy/recipes/distillation/dyes.json -fb8b57300699f5f4dbf415ad0aaa9af419ec9587 data/theurgy/recipes/distillation/flowers.json -f2b7d92e2b3e1ec191531aaffbec5e2379e4ff7b data/theurgy/recipes/distillation/gems.mercury.high.json -d7e64004e7f0bf8e60c320c29ba7191a3c590c80 data/theurgy/recipes/distillation/gems.mercury.low.json -fd20d98e65377deb549151f8e9141e238a1e1d22 data/theurgy/recipes/distillation/gems.mercury.medium.json -7e1ff9a73ef03d5f6eddf38667ea88b69edfde09 data/theurgy/recipes/distillation/glass.json -13736629c263e3616e6890af108e9de343646701 data/theurgy/recipes/distillation/gravel.json -3d02b92d9207542851a758064272c729aee566a1 data/theurgy/recipes/distillation/leaves.json -bbb33559eebed895fa408cd03a9f2cb140ae251d data/theurgy/recipes/distillation/logs.json -9108a4baf912603737b59ba2d7a3f07ecd2c8b45 data/theurgy/recipes/distillation/metals.mercury.high.json -0565ab1244fea6289fdb7794d9d08cd8e10b86a5 data/theurgy/recipes/distillation/metals.mercury.low.json -f5575989acf4e1d39c3c061ff68e9201b2fe53f6 data/theurgy/recipes/distillation/metals.mercury.medium.json -bb6bda54214c3d79143598c04e30550779ec00ba data/theurgy/recipes/distillation/ores.mercury.high.json -2f9c82dac269a0a9e534d796803451cc0cde9352 data/theurgy/recipes/distillation/ores.mercury.low.json -de492cc418677fdd60ced2a5b52929274c3da447 data/theurgy/recipes/distillation/ores.mercury.medium.json -bf6cdb7f1b2106271bd526461b7a4f7878f7849f data/theurgy/recipes/distillation/other_minerals.mercury.high.json -9cd6bf6d3edf9a5cef80021dd70abd58b68f3b85 data/theurgy/recipes/distillation/other_minerals.mercury.low.json -4d7b9c2e088fb9f69f578b4111c276d3c0aecdf7 data/theurgy/recipes/distillation/other_minerals.mercury.medium.json -7c8f88738b54186e2c4b63254f1fe17ea113e37e data/theurgy/recipes/distillation/planks.json -15dc7bb84d60c6be239943384cb1b009035f3e62 data/theurgy/recipes/distillation/porkchop.json -e85796a256b6248ef0f71d0c6ca0d3a47b9829ee data/theurgy/recipes/distillation/rabbit.json -c9ed5a25e857f0f0268498e6b0be7dc78a1fb3a4 data/theurgy/recipes/distillation/raw_materials.mercury.high.json -65a6b22d002b38a54f62bbf643d8448af0fe1cc4 data/theurgy/recipes/distillation/raw_materials.mercury.low.json -ba817a94087f826d22f2c165fca57f745e1a5776 data/theurgy/recipes/distillation/raw_materials.mercury.medium.json -a4bb3803ae77d9b75566c3eb963e923675ff325c data/theurgy/recipes/distillation/salmon.json -5c06f9750bfa6d52f40e4ebb4753b494f4dd3214 data/theurgy/recipes/distillation/sand.json -03b5648e8ab5561571f8ac871ef82f37cc0afe93 data/theurgy/recipes/distillation/sandstone.json -4bb587ece7f9c6d8d96c72bc03929c9db5961b54 data/theurgy/recipes/distillation/saplings.json -6885d0d6cfe00df4f41a8e966977ac82a1a81e95 data/theurgy/recipes/distillation/stone.json -0179d4110e4d8f4b89316e7b31ff0c4b199e117d data/theurgy/recipes/distillation/stone_bricks.json -59b39bf5f2ff25c32ad5dd56cd9391e200a21611 data/theurgy/recipes/distillation/wool.json +// 1.20.6 2024-05-30T16:52:00.62193 Distillation Recipes +70a882facf006990a0daf4384ed40a01379d7a05 data/theurgy/recipes/distillation/beef.json +d0d7834bdfc4c3678c8b1ceb70e8aebdaef36e85 data/theurgy/recipes/distillation/bread.json +1d4a37c5bbce9464e36f3ce96cb9510635cc4df3 data/theurgy/recipes/distillation/chicken.json +45881e3402657fba4b0fc76e92763150ae00b948 data/theurgy/recipes/distillation/cobblestones.json +e110d014b86520e1a7020c8c0d1667782df36ff2 data/theurgy/recipes/distillation/cod.json +3756387b9c80a24ecce4effdb24f6dee4c5cb8c3 data/theurgy/recipes/distillation/cooked_beef.json +1cf0c4dd907aa99070679a57601e2148113ba63b data/theurgy/recipes/distillation/cooked_chicken.json +feae62a4716ba63f7da5816fb170de09d499b6b8 data/theurgy/recipes/distillation/cooked_cod.json +a9fa61d57957e0a354e9b391b2ef90153e675e31 data/theurgy/recipes/distillation/cooked_porkchop.json +bd652822c84090bfdc8bd426e8c6155928372fbd data/theurgy/recipes/distillation/cooked_rabbit.json +431930d133c958a96dbc5d227c48e0e18e2da753 data/theurgy/recipes/distillation/cooked_salmon.json +76fbadec45556db789e6a2e4e1da158ca90e85ca data/theurgy/recipes/distillation/crops.json +2ea75aa46c492225e69afb5eca4301311b881ad6 data/theurgy/recipes/distillation/dirt.json +d035bdcee697d1ac2f87716bb6a332f9bc1b0993 data/theurgy/recipes/distillation/dyes.json +18d24d449f41e0ed2060169bb6849c2e2e0198bd data/theurgy/recipes/distillation/flowers.json +31ce43badf190299cfa450262151d44871032ceb data/theurgy/recipes/distillation/gems.mercury.high.json +ae9d1b982a7971792e25d92a8375d3c3fa7da1ca data/theurgy/recipes/distillation/gems.mercury.low.json +c9dc5d9d8fea8938548ef5b597a8ef85955e64bf data/theurgy/recipes/distillation/gems.mercury.medium.json +56d2084cb420a0b4716ea22ab3de8f03c8d218ea data/theurgy/recipes/distillation/glass_blocks.json +b05d99dde654b33643ea81dcfe9ef96c4c46ceea data/theurgy/recipes/distillation/gravels.json +9005cc30c6e83b552582e185c074fe2a5eed1657 data/theurgy/recipes/distillation/leaves.json +df4c556ffc648ddd34515984ff7e237936d3e262 data/theurgy/recipes/distillation/logs.json +a575790bb8fbbc3a1695e7c08c238740c1587795 data/theurgy/recipes/distillation/metals.mercury.high.json +3eda3667208681dadf9c2113d24cd04de05b4927 data/theurgy/recipes/distillation/metals.mercury.low.json +65ca09edc373dc542fb22308c7434bc0f5c9de4a data/theurgy/recipes/distillation/metals.mercury.medium.json +24d3f739350c8a3ef22fe33161b8e916d99c3d7b data/theurgy/recipes/distillation/ores.mercury.high.json +adb9d47797807cc32568b5c18f85cabd00523fe6 data/theurgy/recipes/distillation/ores.mercury.low.json +c15ae8c9ad46ff7b7d1fb59113d3dd0fdbf4a92f data/theurgy/recipes/distillation/ores.mercury.medium.json +da2daf2f0222ca32e22950789b7f316867ac7b2e data/theurgy/recipes/distillation/other_minerals.mercury.high.json +d9c6728b64d8e3a970cc4a0bd1b7a409d9890665 data/theurgy/recipes/distillation/other_minerals.mercury.low.json +96758a82b6c44f6e73f197e135b99fd6d1a2929d data/theurgy/recipes/distillation/other_minerals.mercury.medium.json +750f2760415f0cd780b59cf02caaf4a4529a61db data/theurgy/recipes/distillation/planks.json +bd236610e5b2cc1457b2d27e9c74c1f1f5c8ce40 data/theurgy/recipes/distillation/porkchop.json +1d1509565368f31a6ef7b79ba954bbc8375ba23c data/theurgy/recipes/distillation/rabbit.json +fd001727d36be304131d0f04f3fbe5fb6c22c7ab data/theurgy/recipes/distillation/raw_materials.mercury.high.json +510c1ab42c802d72be458db9a6209ae619fe54f6 data/theurgy/recipes/distillation/raw_materials.mercury.low.json +68f1030cb81190dbf5c7ab2b833dd9d34ad82ac2 data/theurgy/recipes/distillation/raw_materials.mercury.medium.json +49b8c288287bd7da057ae7c04a6c33035a0cfff1 data/theurgy/recipes/distillation/salmon.json +34e024fd9811c8f8eb07bfc58a6220a06dc91a7f data/theurgy/recipes/distillation/sands.json +924e07b4d67d8442c63691d95800297300ab89e9 data/theurgy/recipes/distillation/sandstone.blocks.json +c5668368e7a508b838d77e50f53afe48633bfcfe data/theurgy/recipes/distillation/saplings.json +605908784b5c0ddbca2c2048b285d618e4d61444 data/theurgy/recipes/distillation/stones.json +3be73b8eb2071c7a3a55b954b14607dd2e5dc314 data/theurgy/recipes/distillation/stone_bricks.json +c7fc57a1c467a4b91a143d8011f0db4b808562db data/theurgy/recipes/distillation/wool.json diff --git a/src/generated/resources/.cache/99bd38532c9b9669f44ee0e07deea72afe0f2aef b/src/generated/resources/.cache/99bd38532c9b9669f44ee0e07deea72afe0f2aef index 0bf851634..9143836ab 100644 --- a/src/generated/resources/.cache/99bd38532c9b9669f44ee0e07deea72afe0f2aef +++ b/src/generated/resources/.cache/99bd38532c9b9669f44ee0e07deea72afe0f2aef @@ -1,13 +1,13 @@ -// 1.20.4 2024-01-16T15:45:43.5199677 Tags for minecraft:block mod id theurgy -0fcdb0064991d93ee3af5633b952de0970a4b669 data/forge/tags/blocks/ores.json -04abd356cb9b230f4d1adcf90db05571e8a17d05 data/forge/tags/blocks/ores/sal_ammoniac.json -9148832ee4e83df2b37e23918707fd8046f26ff7 data/forge/tags/blocks/ores_in_ground/deepslate.json -f8295983ffdb0c42c6c8b12788a5b63c1eb43f72 data/forge/tags/blocks/ores_in_ground/stone.json -0fcdb0064991d93ee3af5633b952de0970a4b669 data/minecraft/tags/blocks/mineable/pickaxe.json -0fcdb0064991d93ee3af5633b952de0970a4b669 data/minecraft/tags/blocks/needs_stone_tool.json -46c2e1f6b178d2493d40b314ee3cfb58b98a12a6 data/theurgy/tags/blocks/divination_rod_t1_allowed_blocks.json +// 1.20.6 2024-05-30T17:11:26.8192004 Tags for minecraft:block mod id theurgy +2a6db3eadd0ca532bb90db84dde920e689ea0e24 data/c/tags/blocks/ores.json +04abd356cb9b230f4d1adcf90db05571e8a17d05 data/c/tags/blocks/ores/sal_ammoniac.json +9148832ee4e83df2b37e23918707fd8046f26ff7 data/c/tags/blocks/ores_in_ground/deepslate.json +f8295983ffdb0c42c6c8b12788a5b63c1eb43f72 data/c/tags/blocks/ores_in_ground/stone.json +2a6db3eadd0ca532bb90db84dde920e689ea0e24 data/minecraft/tags/blocks/mineable/pickaxe.json +2a6db3eadd0ca532bb90db84dde920e689ea0e24 data/minecraft/tags/blocks/needs_stone_tool.json +c293a359bdae29f60dd49d3fa1e744837bd81a24 data/theurgy/tags/blocks/divination_rod_t1_allowed_blocks.json 35133e95f1c8fdd7a1c21afcc231fc0bffefb9a8 data/theurgy/tags/blocks/divination_rod_t1_disallowed_blocks.json -2b89c3efd8f8c9fa27b1e5ede259f7655e262f58 data/theurgy/tags/blocks/divination_rod_t2_allowed_blocks.json +4510d4c0f37352bc142aba37200b2018ae414017 data/theurgy/tags/blocks/divination_rod_t2_allowed_blocks.json 35133e95f1c8fdd7a1c21afcc231fc0bffefb9a8 data/theurgy/tags/blocks/divination_rod_t2_disallowed_blocks.json 848cb0eace5305f39f8b47ec1a720e60731f7051 data/theurgy/tags/blocks/divination_rod_t3_allowed_blocks.json 35133e95f1c8fdd7a1c21afcc231fc0bffefb9a8 data/theurgy/tags/blocks/divination_rod_t3_disallowed_blocks.json diff --git a/src/generated/resources/.cache/9d20181137ccde1bd7d69956138c816a2bac2b6a b/src/generated/resources/.cache/9d20181137ccde1bd7d69956138c816a2bac2b6a index 8c14909ad..44b82e28d 100644 --- a/src/generated/resources/.cache/9d20181137ccde1bd7d69956138c816a2bac2b6a +++ b/src/generated/resources/.cache/9d20181137ccde1bd7d69956138c816a2bac2b6a @@ -1,20 +1,20 @@ -// 1.20.4 2024-05-25T13:38:47.7931543 Digestion Recipes -0e0b8f2a4f89f99eae7ba3fee4565b7f8d92fd76 data/theurgy/recipes/digestion/alchemical_sulfur_gems_abundant_from_common.json -a669e331da141a09febd8c1dce0c671ce8c36291 data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_abundant.json -9c101048aa5e2aa3824560a8673df815b7b1abfd data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_rare.json -61900f688553972a6b0832f79488833e692f1768 data/theurgy/recipes/digestion/alchemical_sulfur_gems_precious_from_rare.json -8c77fa2e7f35f820848f5bdce081a7d9747e0d33 data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_common.json -1939cc5a6c08c55c65c815c1154fc5b8bbba432d data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_precious.json -77338ea0f9676fb436e9dbea72b6505da788e2e8 data/theurgy/recipes/digestion/alchemical_sulfur_metals_abundant_from_common.json -31e84fe9540825c03584ca0519ee27178bc30587 data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_abundant.json -4c700f9e117b608a2720d93a3e5aec22aba3480c data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_rare.json -03999281d3123f856044bebb39799a26c2cfb9fa data/theurgy/recipes/digestion/alchemical_sulfur_metals_precious_from_rare.json -a942b39c72296470a47844e3cdf286d2db2472a2 data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_common.json -a169bb5c3fd50c8931ed8aebcb2eccc3a9de94ca data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_precious.json -02d6acda15428c5cf5099671834dbbb20c55e51a data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_abundant_from_common.json -79bb2f0b705764e16ddba60b126f358fc4aab8ab data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_abundant.json -78af6070297829705a4fc8f39493010ee3392b25 data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_rare.json -2cb7b782d08543fdb808f360d9ea960c2d9eb724 data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_precious_from_rare.json -ee1607a1bec2c7a248b449937b1941c99d74b5bd data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_common.json -270e9acddb20929015c623d644474bd467e00cb4 data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_precious.json -c1625ff9a36ab1ca46ed65af618a271e27cfc346 data/theurgy/recipes/digestion/purified_gold.json +// 1.20.6 2024-05-30T16:43:00.9585035 Digestion Recipes +5546adfb524f5f317ee558b03fc5b0236d12cf06 data/theurgy/recipes/digestion/alchemical_sulfur_gems_abundant_from_common.json +318f56e1c03886a17afb859428d86d75cba02c1e data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_abundant.json +ee3a30310bebec420624f5665f7f54ec3667563c data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_rare.json +6851da07ec3e27c61d25adb1ef809477707cb4c0 data/theurgy/recipes/digestion/alchemical_sulfur_gems_precious_from_rare.json +8ca2cde2fff04a6010858db3cfa8cde718c87025 data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_common.json +1b2e53640d768579091ad8555702307e50b281f3 data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_precious.json +c2b3a3975b49b0cb9d53d46bfe9467ed20069e13 data/theurgy/recipes/digestion/alchemical_sulfur_metals_abundant_from_common.json +21cf09ebbc3c3c8151dc9aa4da4404fefde5af61 data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_abundant.json +2554ee58d679ca7c7f8860a5d6bf25ee652549c0 data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_rare.json +30ed80db905bb0ecca6d0f9e6065b9e13dad0208 data/theurgy/recipes/digestion/alchemical_sulfur_metals_precious_from_rare.json +7f896ee56e9d3e5f6dd068ec3a0bddb460b01c64 data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_common.json +30af7f364f4d03ded7e67c99f5983027c428a0c9 data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_precious.json +38d5dcdaa0b2a5f32c0a108f069b4723d69ad64e data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_abundant_from_common.json +2252c1ebe0918a6ca91ff2c442fc2528711deecf data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_abundant.json +d72fa0fa283fb530b6e33d6dd69cf00463f11273 data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_rare.json +ed11335f4cfe4516ae5868aa059b80d934117c08 data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_precious_from_rare.json +f2a73228c3198f949b0189be04b000c38fbffd3e data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_common.json +ae3e9a2219102b755fdf6ab74a014f84ed1383f6 data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_precious.json +1e3214adab553a722ac682b96b59342ce673f652 data/theurgy/recipes/digestion/purified_gold.json diff --git a/src/generated/resources/.cache/a712c7094f0a9eb0bca39d53c159ea6414e2f817 b/src/generated/resources/.cache/a712c7094f0a9eb0bca39d53c159ea6414e2f817 index 219c3fc21..421f10d32 100644 --- a/src/generated/resources/.cache/a712c7094f0a9eb0bca39d53c159ea6414e2f817 +++ b/src/generated/resources/.cache/a712c7094f0a9eb0bca39d53c159ea6414e2f817 @@ -1,87 +1,87 @@ -// 1.20.4 2024-05-26T10:30:07.6313473 Liquefaction Recipes -8de8b51fe951371859f342aada61c5bf0eb33af7 data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ingots_allthemodium.json -f8a529e29eca484e7696a22169bda59bed990d0a data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ores_allthemodium.json -6a826f71bfc3ab2fab7bc42e7b01e3f85bbc83b7 data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_raw_materials_allthemodium.json -a24e4a57d907483c6553ede1d6f3c3499a7a2ec6 data/theurgy/recipes/liquefaction/alchemical_sulfur_amethyst_from_gems_amethyst.json -b74b7ba29f835bc3778c9edfaa309e964527024c data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_gems_apatite.json -3184c2fbd1729ae0edc42f6d5beb7cb3d2e6112d data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_ores_apatite.json -1074c60ebfb80e27ebc53d8ad1aea480dfc0e5e9 data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ingots_azure_silver.json -172af58210c515c6cbad1d6bb0a57f77dda6c5eb data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ores_azure_silver.json -9ca95533cf66373d6bb6c41e240d1ebf8a611b36 data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_raw_materials_azure_silver.json -daff50d002c3b343f6a352b360414e330d1951a7 data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ingots_cinnabar.json -9c7b10f59b603cfd6011ae08ebfed360b1f7ed36 data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ores_cinnabar.json -f5d472a9418c56e1b5261995614c7a916f2eaa3e data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_raw_materials_cinnabar.json -9814e7240a1f78daa2a0a364f7f7e11a850ce67e data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_coals.json -716e9856f9712b4e60f2fd663a66bdd57906a2a0 data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_ores_coal.json -6110d6492a275c127ea3fb1fb7bdf7492c1b5fc1 data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ingots_copper.json -6d9246aca4c738672d623708111bbecde5339d24 data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ores_copper.json -c1dd8975de429e75a0c1ea579b181b29a24e65f9 data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_raw_materials_copper.json -5b22f3a2188ad570655809ec0e248c94011ee6c0 data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ingots_crimson_iron.json -106fcd12b070e31e8295fb84c945ba99b3d2cd0b data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ores_crimson_iron.json -03bf60e8ac5fc83439f66f1f578d03af86d986cc data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_raw_materials_crimson_iron.json -f003b0a789129dfec5db68acf2417bf4b7f919ce data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_gems_diamond.json -7c48cff1f1491a80a9a2dd191824b3e4d62bd776 data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_ores_diamond.json -747dd4bca1d1ec7b64baca4bca26fd4b8d7cd5ce data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_gems_emerald.json -aedc3221e599ae2f99342c0062ab0ce7e897c16b data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_ores_emerald.json -8555d9ebdf721a7e2443d2c7f049b206bf17fcff data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_gems_fluorite.json -54b6d9d6a4a4c453b27b5de1a97d8c25de6c0011 data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_ores_fluorite.json -7b3ce4576d2b9915a3d4c1e36c74ef256448507e data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ingots_gold.json -5bd5fa017b2e13ec316065f63ee6663d30d45c22 data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ores_gold.json -f78035e7e411d704cc942f64a653d2845fdbe3ec data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_raw_materials_gold.json -0080d6d1507ab6797da8e20d60903d3a98dd0cbc data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ingots_iridium.json -e54c38b4779aff03b3e2c32a4064e98fa4efdbd8 data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ores_iridium.json -26f86185cc90c3cd3f6e3ada4c29a358ec599565 data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_raw_materials_iridium.json -d1753a9b86be492e13ee1375f5f041f4be0a8fd0 data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ingots_iron.json -5086b585d3476acf348ad1524cf72e470e2a9e6f data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ores_iron.json -3c298235b441bc17afc64585f1905a50ba27059c data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_raw_materials_iron.json -5298e6475f118d0e65ca2f8387c6647a53e03d3d data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_gems_lapis.json -784d4705a8b2a7e2566e284ed7ae35f92dde18af data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_ores_lapis.json -9b433f553a8c7b4c2df1481de916787665f012e0 data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ingots_lead.json -e6f883c0ec1107e908a5ec47c56fefb7efc80849 data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ores_lead.json -77b83e1dbe92937e48f3a6ec598da2bb80be19bb data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_raw_materials_lead.json -149663aca677ce9b77a4d871daac05b831a2c1e1 data/theurgy/recipes/liquefaction/alchemical_sulfur_logs_from_logs.json -fade99b4ef70bf15e36fcb298b147c01a5049496 data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ingots_netherite.json -f73ff699b9e78c3bd2a7fcfc3af55a4269e36004 data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ores_netherite_scrap.json -33e5284de11c771ca3b4ef541aa9d2718003df7e data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ingots_nickel.json -f27b5a2f133ed7cc221028f290b85ca87ef9ce9f data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ores_nickel.json -49d540748e44687c6f4ee7ee1674605fee45ece2 data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_raw_materials_nickel.json -a58a016d2023bf25d789fd3b9b8e9b0d095bc9f9 data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ingots_osmium.json -cf84a34d178f9b62eb544d95da011bc9e8ac7912 data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ores_osmium.json -ea4c10260ed05dc6eea5fc8d49393582912e26d1 data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_raw_materials_osmium.json -70b7cc90181ee75a3c2143f49bfd64b08880db9e data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_gems_peridot.json -c3e0a7725b2c6a36d0b46fae5ec88c5ab6ac119b data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_ores_peridot.json -c5d74e38eab44d8d88cc1c8ca310a1a38e839660 data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ingots_platinum.json -3a20a2618fcaa8610f2841bacb1bba3548da380a data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ores_platinum.json -988854541de3dec2241641fc1e801756696f310f data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_raw_materials_platinum.json -b9d827fc8416d873f100cc820fa2c633c417af93 data/theurgy/recipes/liquefaction/alchemical_sulfur_prismarine_from_gems_prismarine.json -fd2f0f640aadf84788ae32c8f2c692cea9764155 data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_gems_quartz.json -4f75b17f1fe5f481e41b36a3c2dda22d45634242 data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_ores_quartz.json -cb8b8ffa47302d0995759f04ead57fd364bd831e data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_dusts_redstone.json -0b86892817b4d0ab044435948330974aa6115e1b data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_ores_redstone.json -ad3b1247506249f2021d68d73ce91244dd3bf4f3 data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_gems_ruby.json -03280a6f5701aa356a308697d9021e13f7d97ea2 data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_ores_ruby.json -3013061b9b5e3767f4214e9323f46b18d4dae8cf data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_gems_sal_ammoniac.json -8af83cb7f8740910dc89d12c3e1f436cbefd18c9 data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_ores_sal_ammoniac.json -38acffd728fcdad451ddc9fdafb147db93a6a147 data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_gems_sapphire.json -3a8128e3002d491e420ed2bcff3da87b75c9b6fe data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_ores_sapphire.json -b1825d99816a1ba02e3fcc0099b8cbf2400e8d8e data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ingots_silver.json -a7bf0762dce0d203674ed091ebec06fdcb2a1724 data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ores_silver.json -84fa34910b6dfaf65542bc879663243a493f63d2 data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_raw_materials_silver.json -affb8623dad2b3acc8967b82f587d83327994319 data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_gems_sulfur.json -a3a9eed3d16905bd73676cbd885d118a30c55ff0 data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_ores_sulfur.json -c0943a8854a1e284969298c5776d51854e52efc3 data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ingots_tin.json -c51ec7240bc290976fefddf76071e66563df5f4b data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ores_tin.json -e61fbe3ce328c78b9f24cead2a794410997fd82a data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_raw_materials_tin.json -9b080bf21b337fb0e9f55f098656999ef1e87917 data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ingots_unobtainium.json -d8f8941f5d5508ca4feb0d79d903fa4130bc9da5 data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ores_unobtainium.json -44e4eb4f1f4c549006b9bf63682ee13da56d4bdc data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_raw_materials_unobtainium.json -05817ae666121fba56beae8c418ffcbe451d89aa data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ingots_uranium.json -e104c4956ef7a1a366284fdf10f597bc0d2984e7 data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ores_uranium.json -c6132cbe1b43c1afcc7e9675c9c1d1ab616acbfc data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_raw_materials_uranium.json -fe8012bd40889c800437fd087c6f9cb016506ae7 data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ingots_vibranium.json -90aa6ed60be21c935283e648e798e2e49be77a78 data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ores_vibranium.json -d71b17bfebd4b7c5620a632619d18aad3de4cfbd data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_raw_materials_vibranium.json -c4c46d964abcb0b878a17f775695a78122b3f9e3 data/theurgy/recipes/liquefaction/alchemical_sulfur_wheat.json -3cdf5eea7e22266170c2e78ce14b959b1a43e46f data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ingots_zinc.json -3e1b0f3280a1f53996efc144e66232376709b20a data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ores_zinc.json -1f8a4746f8a4f203c47a276b6bf634db3bc2f111 data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_raw_materials_zinc.json +// 1.20.6 2024-05-30T16:43:00.9565104 Liquefaction Recipes +cdecd2e41d61dddbd2d4ea21cf9942847c5f5280 data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ingots_allthemodium.json +af2cc9dead5b0b92f3a07a641bec79fdf4258377 data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ores_allthemodium.json +9d8db1407f1588f68bfe2680049edcfbbecfb37f data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_raw_materials_allthemodium.json +a023dd49d43affb231e353af771bcc2ec41a9bf3 data/theurgy/recipes/liquefaction/alchemical_sulfur_amethyst_from_gems_amethyst.json +a7bc4e901a026335987729c698294bd491dc57e9 data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_gems_apatite.json +43ea778757cac455d1901b8960a1789f2e6e84fe data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_ores_apatite.json +1e4ae751d1231e62b7702bf84828213102b945bb data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ingots_azure_silver.json +9dc48b72c61cc26f755d1013bfd9f0f40c8381db data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ores_azure_silver.json +666e39153d4bb96eba2043f22a13b360c6250d52 data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_raw_materials_azure_silver.json +337ef76225ff45c43468e81f0093dae18811b944 data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ingots_cinnabar.json +551be08f685e9af3cd69bb1b39d44fa4d24f6f69 data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ores_cinnabar.json +06a01364c579d9fbdd164029d274545c2fdeb82c data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_raw_materials_cinnabar.json +e445d83cb8d4044cd6193303addecb9ddd67884a data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_coals.json +bbffc95ba191bd98cdeee1ae9b47100fcfa168d6 data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_ores_coal.json +563a9fa725472df9dd648b0ac7fa95cd2885dad0 data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ingots_copper.json +77d4c2e49601ee1107e809e79046019dbdac6684 data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ores_copper.json +97dc095a1070c6c571de9eb3409f41253db48fed data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_raw_materials_copper.json +5f9c8dda69a2b6361978d958e4896b0df19b0633 data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ingots_crimson_iron.json +b13dcf5675bf925cd97aa5023caca0f16e027ea5 data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ores_crimson_iron.json +01b7045efe42cc60ea09411ac393ce50a9b0518a data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_raw_materials_crimson_iron.json +7ddd7cf8fdd6c350040754cff41a2c7759ba02cf data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_gems_diamond.json +8f05eb01428b892eec4fb3f3264c3c4b8e39d8b6 data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_ores_diamond.json +bf9994437f5025758e46e92e7c62817e4f01d8a0 data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_gems_emerald.json +ca603afb8c783ca37401e87ecb141c24d431412b data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_ores_emerald.json +ac898586b0069fe1cd92983d83798abb74973546 data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_gems_fluorite.json +7d4fdc55bf323a05089cde5fb7b1dfc48e2c192b data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_ores_fluorite.json +973b09eb73a99cf7b243b8acb2be3d27cb317b63 data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ingots_gold.json +74d98c2c74912aa358aed731106dd8be0a1914f1 data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ores_gold.json +7092ca8a66b2efd2b31fe48556d76f47c515daa8 data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_raw_materials_gold.json +2e688c3271e6da27902b5b2633e7196ba8b20d8e data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ingots_iridium.json +3748cc07703da1773db20d6e275bebfabb381edc data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ores_iridium.json +5c814aac1f6127032fe282be78e245d4026e7c2b data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_raw_materials_iridium.json +eb6c3d66a679b2def79c35a70a4e69044bc7e75b data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ingots_iron.json +cfc884fa019718617ec09083e8462faeb2f1abf1 data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ores_iron.json +723b38e2b6f1276a057628364459d5744ada1a84 data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_raw_materials_iron.json +1cfb143e1d00a72b92e14b11b1659d80396c616a data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_gems_lapis.json +ad2d1083375f761bceda9829fed073d7a06131b3 data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_ores_lapis.json +b37f54c2ede56702900b8e8d07748d39e32809f6 data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ingots_lead.json +c82a0c1c760053b0804cdfb61337fcad812b29df data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ores_lead.json +5e98b720814c9470ee9050af4a6845a81fa97f55 data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_raw_materials_lead.json +421bbd4ff36a8de79059173d601fe3c1f49da006 data/theurgy/recipes/liquefaction/alchemical_sulfur_logs_from_logs.json +056f676d0540cedba6f9fbb522008469c72a0c96 data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ingots_netherite.json +7674d1074e2c71c75f7a622e907883260fdfa829 data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ores_netherite_scrap.json +e30c90e9feb169f28ab5608f2fec2819b39d0ae1 data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ingots_nickel.json +241bea32c742404307ef0083063e696c2c477c0c data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ores_nickel.json +0d74ded5744136309e7464355761b5e151ed8a87 data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_raw_materials_nickel.json +ee4f42419d972580aaf42a2142e6107da4b11fc7 data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ingots_osmium.json +17621127b0d77d0c7882ba830a0ff795e2d9e1ab data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ores_osmium.json +bf9f3b4495f1a140654b6554fcad8b862b3da771 data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_raw_materials_osmium.json +44ecddc3d2128ce1909ef86082de7b6383307b27 data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_gems_peridot.json +03eb453f820fb1076fc97c775438a248dbfbd1dd data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_ores_peridot.json +5d587e53efc7fcf92cc9d39fd511a4194dda2f70 data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ingots_platinum.json +04edfa8e665145aa2451b11fbfb785fd64d41fe3 data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ores_platinum.json +a54562a35700dc3ef17572ce3f67516e75adcdd1 data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_raw_materials_platinum.json +f30a103b8cb18d2b3a69955cac59bebc9a88a680 data/theurgy/recipes/liquefaction/alchemical_sulfur_prismarine_from_gems_prismarine.json +4d60c8cb534961c33fc7c563bebc05400359f921 data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_gems_quartz.json +4a19b49fe7fdd36919731cb50c261c5e26375b8b data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_ores_quartz.json +713bf30862ad3f2c20a06ebc8fe72bf326ad58f9 data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_dusts_redstone.json +c0682e8e6aa46ea67b65af626472e120dfc60345 data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_ores_redstone.json +8a42b7c167dff3187f7f202f8d048f68c720e811 data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_gems_ruby.json +06ee09b6d7ee9132c52188da3169643c399330d8 data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_ores_ruby.json +c24f5fed3555396b21fb3c43ac227ef4143ffc45 data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_gems_sal_ammoniac.json +e112609a59f5d820da1801fd5ffb6997305e1a31 data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_ores_sal_ammoniac.json +d425a711cda7c110ebcdaff9a3dc05bf0608f1a3 data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_gems_sapphire.json +f82a8d3865fa5cb36d1aa266a6587da776dae869 data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_ores_sapphire.json +47449dc2c6089d65f4bd61d186dd8ccf7cf94e87 data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ingots_silver.json +2b63917653fd25ee7ad41e698080adabd8d962d1 data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ores_silver.json +67197af9b6565af7c58c3eb0ffa6026169cf5184 data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_raw_materials_silver.json +6727db7d10c62968d8b7766a862e65bbf05d26c0 data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_gems_sulfur.json +4ca9bcd8fa0f0d8f153041b0daf9d283abe3c593 data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_ores_sulfur.json +2a2698d06e80162c6759fe73514d76ff5af180f9 data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ingots_tin.json +904fbcf69c0bb131d9aadbba3eb1994f085b0cfb data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ores_tin.json +52feca4e222ab82801b92b95027244f5938b282f data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_raw_materials_tin.json +c3249ee76878ebfc7cdf7e369accadea3311e36a data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ingots_unobtainium.json +ca5468210a5d5a43ee3c9206a4418e5ad6abeac5 data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ores_unobtainium.json +0e0ad0443b89b0d76ab95efae0e170b6bef6244f data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_raw_materials_unobtainium.json +d9b0c78058a19de9d5bf1f2d19af80d5619440f1 data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ingots_uranium.json +9f14545cb48afb5b384117e7ebf293e1c140dc7e data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ores_uranium.json +3304f4da41f00104c5e6be17a8e1ccc26b09850e data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_raw_materials_uranium.json +5adacf357a2a3efbb687af6a694b9d421b8cc3cf data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ingots_vibranium.json +08572dc163d19ab4c0d0a25e0f4526edf98d2d6e data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ores_vibranium.json +43d6ebc803f1ce9567b044a33dfecf9b372b7e35 data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_raw_materials_vibranium.json +c18ecdb63ba54b894da5b16dd98229c142c00ddd data/theurgy/recipes/liquefaction/alchemical_sulfur_wheat.json +e5e0c8523c710e4d83c425d7cd8cbff7a887f305 data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ingots_zinc.json +a46a385b8d22dcce1b729919921ec181582df8db data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ores_zinc.json +25abe5fedd98d1f2dc8fc564e76892330b3f3662 data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_raw_materials_zinc.json diff --git a/src/generated/resources/.cache/ba7bec60e3f1eb4c2db954290930da75576ef529 b/src/generated/resources/.cache/ba7bec60e3f1eb4c2db954290930da75576ef529 index e96152e93..b0d3721a3 100644 --- a/src/generated/resources/.cache/ba7bec60e3f1eb4c2db954290930da75576ef529 +++ b/src/generated/resources/.cache/ba7bec60e3f1eb4c2db954290930da75576ef529 @@ -1 +1 @@ -// 1.20.4 2024-01-16T15:38:38.169219 Smelting Recipes +// 1.20.6 2024-05-30T10:41:42.0378688 Smelting Recipes diff --git a/src/generated/resources/.cache/c50898d9dff35477a6d00c5288be279cf5198f83 b/src/generated/resources/.cache/c50898d9dff35477a6d00c5288be279cf5198f83 index 8758630ab..e9f03110e 100644 --- a/src/generated/resources/.cache/c50898d9dff35477a6d00c5288be279cf5198f83 +++ b/src/generated/resources/.cache/c50898d9dff35477a6d00c5288be279cf5198f83 @@ -1,25 +1,25 @@ -// 1.20.4 2024-05-25T13:38:47.783499 Fermentation Recipes -05969829ee72d76c1fd61e19651accc5ac22af73 data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_crops.json -392dd62a3e6e6d789564e2a96a64fe577177b37c data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_sugar.json -06116e4ad921a0e5789468a343f457f1f8be3319 data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_crops.json -244d19cd6b2c9a64c0bc2b7ef7df4188c41dd72b data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_sugar.json -fb93e0540c6ab9d6a112549d9bbd01e2618c4830 data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_crops.json -e3c9dc8524a875c9594f4b0ceebe92547faaef4e data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_sugar.json -61f7e8d8126ea998513585db9d7d12476b049baa data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_crops.json -cf72f43b8da0a4da1a72932dcd40d644f7d9d33f data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_sugar.json -901b83a8ca707d344694d0c24b88a38eb47dc73f data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_crops.json -7d0f232ec60cccc6f00ea3681e0371661e78853c data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_sugar.json -0f6b0d35beb48024352050cdc441fb6e31bdd8ff data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_crops.json -ca4ec24c74b20243f2f9a9c559467148e63cc8b8 data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_sugar.json -fa4b940ffe3a055fd34bf9397b26815596764936 data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_crops.json -abe57f7ac566ee2d203dd4c07baffd7ccf5c9f1a data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_sugar.json -a3d98c21758744e7bad3a1a6dc5c8d478c9dda3f data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_crops.json -7bac3b2d0e33c96e87d297c794ab45730f811de4 data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_sugar.json -17fba81e76e1d6759a93ad8350b614ab629dca09 data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_crops.json -1eba30f1bf5df12b096f73d34b7c3535241f49fe data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_sugar.json -303821fd45157e578f57560ae9acd640d15f9f8b data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_crops.json -fdbc922159a4bd316d28bb0364f92faa93dd2846 data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_sugar.json -dbd1f0e454e292f0edca22ef4da5d43a2227c224 data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_crops.json -8e81edcb69e32125eba931c16e68cdb0afcc4f45 data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_sugar.json -122aabc124d70ea19012959ad510f567c20201a0 data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_crops.json -ea5f6f070461c1a912e76d48e52964ea44d7c8b3 data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_sugar.json +// 1.20.6 2024-05-30T16:43:00.9515076 Fermentation Recipes +eb2d6470b9533300dc72e32cc257e5e917340cfb data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_crops.json +351fd6254e52684d8b58d2c8607655c59b3bc37a data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_sugars.json +1e3a0a7a70449c8090ab7b3fc380b6c5b1d58865 data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_crops.json +055879ad8e22d8fec9a8d602b758dd36d2026114 data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_sugars.json +7c3683932c02f14c8855c0dd2eecaf863e8b6a5c data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_crops.json +54aeeb4f105c2de0ede1869bed0f44ac8a6eac65 data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_sugars.json +1bffda8d2d15f62794eee744f29c6c9bdc0743d1 data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_crops.json +a9f5393fb2adaa0712e6b9627124f640d44ff7fe data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_sugars.json +52aed97f83f0bdfa1a2127a8d32c68d6fdea143a data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_crops.json +6b5bd0bb7230a9ef85c4dc76e29a43ffa45f22ca data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_sugars.json +e2c80c6dd80e27ffd46a512c217813f20cb46c3d data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_crops.json +7580467dd19eb1b086e983aedb44d9f636051120 data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_sugars.json +f5dd08e1b63bbd6b76c37565663da37e080a004e data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_crops.json +c20d5458de745492f98476b028cd8c2d8c22d94d data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_sugars.json +713aeb8c64307f6a2740b3037bbbd8da78beec27 data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_crops.json +376fb2187d53c61f8b7a2a3903b772990b6e2ab9 data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_sugars.json +cfca84e8c851cfa477936306a3af2d8119f6b0af data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_crops.json +5701aa42328f99b298173c2e6a649cc100b8243f data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_sugars.json +50f96e23043ee40ae86e1da8cc500bf94cd7aea5 data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_crops.json +97290f1e574140214525db6e726d6395b770a038 data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_sugars.json +480da3a5994fe0d9ff6c04b0554e8e6d16ed8bfb data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_crops.json +9ef6f49997e93520d0ed88f64a5a9ba07405805f data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_sugars.json +037b888ca13dd959a29d83f116ddfa4efee7199f data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_crops.json +a71a2861033981d205fe37c9f64949e25c2505ab data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_sugars.json diff --git a/src/generated/resources/.cache/c622617f6fabf890a00b9275cd5f643584a8a2c8 b/src/generated/resources/.cache/c622617f6fabf890a00b9275cd5f643584a8a2c8 index 294c7696d..6299839be 100644 --- a/src/generated/resources/.cache/c622617f6fabf890a00b9275cd5f643584a8a2c8 +++ b/src/generated/resources/.cache/c622617f6fabf890a00b9275cd5f643584a8a2c8 @@ -1,2 +1,2 @@ -// 1.20.4 2024-05-25T19:06:57.8610708 Languages: en_us -a8e0d8a85bbe69d15d7d964c24b33918e64cfe5b assets/theurgy/lang/en_us.json +// 1.20.6 2024-05-30T10:41:42.0433811 Languages: en_us +e13ecfe65a68494d12cc9b9d429c1e1db759537a assets/theurgy/lang/en_us.json diff --git a/src/generated/resources/.cache/ccca92a6eec5aee95a4f810971c250f8552738a4 b/src/generated/resources/.cache/ccca92a6eec5aee95a4f810971c250f8552738a4 index 980d4d9e6..ac59f9390 100644 --- a/src/generated/resources/.cache/ccca92a6eec5aee95a4f810971c250f8552738a4 +++ b/src/generated/resources/.cache/ccca92a6eec5aee95a4f810971c250f8552738a4 @@ -1,4 +1,4 @@ -// 1.20.4 2024-02-27T16:42:55.6015607 Item Models: theurgy +// 1.20.6 2024-05-30T10:41:42.0378688 Item Models: theurgy a402a05d887ec6d271a9350944338d29e1233318 assets/theurgy/models/item/alchemical_salt.json 9fd173e362b6644716da98ba0d15809f85879e78 assets/theurgy/models/item/alchemical_salt_crops.json 9fd173e362b6644716da98ba0d15809f85879e78 assets/theurgy/models/item/alchemical_salt_mineral.json @@ -18,7 +18,6 @@ e0f7b66a84e6588f01abbbce75b1803ffe5d46e2 assets/theurgy/models/item/alchemical_s e0f7b66a84e6588f01abbbce75b1803ffe5d46e2 assets/theurgy/models/item/alchemical_sulfur_gems_common.json e0f7b66a84e6588f01abbbce75b1803ffe5d46e2 assets/theurgy/models/item/alchemical_sulfur_gems_precious.json e0f7b66a84e6588f01abbbce75b1803ffe5d46e2 assets/theurgy/models/item/alchemical_sulfur_gems_rare.json -e0f7b66a84e6588f01abbbce75b1803ffe5d46e2 assets/theurgy/models/item/alchemical_sulfur_generic.json e0f7b66a84e6588f01abbbce75b1803ffe5d46e2 assets/theurgy/models/item/alchemical_sulfur_gold.json e0f7b66a84e6588f01abbbce75b1803ffe5d46e2 assets/theurgy/models/item/alchemical_sulfur_iridium.json e0f7b66a84e6588f01abbbce75b1803ffe5d46e2 assets/theurgy/models/item/alchemical_sulfur_iron.json diff --git a/src/generated/resources/.cache/cd2a2a329a0824759638154124ef2435729ebb02 b/src/generated/resources/.cache/cd2a2a329a0824759638154124ef2435729ebb02 index f95f83868..665a28615 100644 --- a/src/generated/resources/.cache/cd2a2a329a0824759638154124ef2435729ebb02 +++ b/src/generated/resources/.cache/cd2a2a329a0824759638154124ef2435729ebb02 @@ -1,87 +1,87 @@ -// 1.20.4 2024-05-25T13:38:47.7867153 Reformation Recipes -16f639b06e0109cbdd30a55f5164fe581a3bdc58 data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfurs_gems_rare.json -358242b4d84216cc6d217e98c68822596c75bd32 data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfur_gems_rare.json -561f6de6c4bea2f959412db263a5873e62d70d7d data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfurs_gems_abundant.json -aa93df71a43e9c84ba45d9a945b468fd1786f3bd data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfur_gems_abundant.json -92b4acab1010edfa8f0c82fbbcd3e1c11a8d631c data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfurs_metals_rare.json -4c714b5a1c06467f0bef8dfd2e8525d0d3a14308 data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfur_metals_rare.json -98ae74f1210c05ace74b0185af8c8aba66017cc0 data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfurs_metals_common.json -488cadba92ea300490882f0edcfae47f0537eef6 data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfur_metals_common.json -755c067233b7fe769d0fcb6d4bdca64a3bf52175 data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfurs_other_minerals_abundant.json -b8e94cf2d400576c11f6ea8618ea2c25b106b80b data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfur_other_minerals_abundant.json -bf08e4ce84f8911831f178a9c6c6805bdbdfe4d7 data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfurs_metals_abundant.json -36e8448f79383d568014e7bd29c41dc54073467a data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfur_metals_abundant.json -47c7a7a02107cc1f4664d1b2d9e06fc496adaeca data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfurs_metals_rare.json -2327b7a980867bc1aaddde8b18d2b929c6fa95f7 data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfur_metals_rare.json -496000c8ce4bf2ba70b98054d5b4ffb272103abb data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfurs_gems_precious.json -4921846dfe5b2e22043b6eb803edb6a137a6b598 data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfur_gems_precious.json -2f3c29189999ea4bc432f82d65b14530e157650b data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfurs_gems_precious.json -d799af5d24d1c197226f05c9c6700767a963a9c3 data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfur_gems_precious.json -99496e0d5056695f9784b9a6aa6d7bc63c4733fd data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfurs_gems_abundant.json -c3ac6c829c43ef9d1baa5589133306fe83b8a2f6 data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfur_gems_abundant.json -153114808989b60eb33110d264661248770d4c27 data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_metals_abundant.json -a8c66d8a179ebde6df6b15703025bbc673df14ec data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_other_minerals_abundant.json -2d30e60f81d2fa8163106c2c024cd4e495c6b504 data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_metals_common.json -d26a2426fbc424edf2fe57db7c7ce8778982ba3b data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_other_minerals_common.json -bbc2afb23a6f6034df0fce6211a1d5673bcb6e57 data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_metals_precious.json -c32bd2b68269bf06da76690a48151a46d3e937c2 data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_other_minerals_precious.json -d4609ed1085d87a14ca8c6a9ef058299b9ba2039 data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_metals_rare.json -9d9488fa2b3a73a1eac76b9b3d73b3157d2c4967 data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_other_minerals_rare.json -bdbc166a5020842db2cfaca0e66a0470c111797c data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfurs_metals_rare.json -c7b0d322c4510c233daf5d4a8d3ae9c620c678ae data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfur_metals_rare.json -e197e6b9aa7cf11c43e483e5d3fc4c35cd4e6fb7 data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfurs_metals_rare.json -0ea47a5385486e35179e2a2da7995041230ccc2a data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfur_metals_rare.json -76ca9439544a07f6cbbe7cd4b096ee2cf5a18353 data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfurs_metals_common.json -87a46e5df3039f4bd184457fedb981dd55392756 data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfur_metals_common.json -dcf22d938634dc832848073b95e689dd3425244a data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfurs_gems_common.json -ce817e42c3d6f2224a92ac4d35bdd573fac0272d data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfur_gems_common.json -ff8b7d884674f98ed7825a927ccd7c7e387178aa data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfurs_metals_common.json -5e3950bc04822c7ff0f49467e15f4179deb208ff data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfur_metals_common.json -debcaf23cee1b670aa0da86f356935a6e6113c42 data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_gems_abundant.json -a384a5106743ede2e164d3656e52bf84bb4b531c data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_other_minerals_abundant.json -e360e828475e501445c5d7ea3d68254ccca3ad21 data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_gems_common.json -d8f1773920fa0630003f10dcaef770fbf0652be1 data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_other_minerals_common.json -14f716ad69219ae0b8124e556c93c1624093dc1b data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_gems_precious.json -5266b1979639d5bfcc4ddd849308ad19ed5fbd66 data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_other_minerals_precious.json -431a05796b3739724174c9fc3257501608e83a01 data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_gems_rare.json -6cfd0584278d765dd7ec429eb41dabd9dded418e data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_other_minerals_rare.json -f9883d4e31928e3d0df1a8a94901b8c15168c9b4 data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfurs_metals_precious.json -c8d9773698b9ea4de206138c34778827dba9b1f3 data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfur_metals_precious.json -5ef6d33ac44952260aa6f7061894a4d9b44dec8a data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfurs_metals_common.json -1798d06f8a84fe9b83a878bcfd629a8ef9a330b2 data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfur_metals_common.json -a84a541d16b5b9e4b1ce3aac6607964bafb56720 data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfurs_metals_common.json -09acdb40ddc8412edbcfcede9d4a0d6f6000dc78 data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfur_metals_common.json -71dc63b5cb3c0f90cc4bb5b445943732416bcabd data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_gems_abundant.json -c5f66540cf0d24f27271c8d22d9656d97a6d7c27 data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_metals_abundant.json -b88ec6c97ad831dec8931c7607cd1fa2b3822046 data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_gems_common.json -be63abefbeeaa5d94de14460271a9191cb4810ee data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_metals_common.json -b554a3c46b8c4da6a72b89c527eeffbab4749ede data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_gems_precious.json -3d2a227bd4e19106ee1de0c28eb435c6a7b6fe01 data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_metals_precious.json -dd139fc2b85acf49ade557061c3e595c9945d1e0 data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_gems_rare.json -28baf61ce8e165daf2078a0a5790444647a6e5b2 data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_metals_rare.json -5df2ca83292b3875a8f593f7d1ca0f72b947997c data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfurs_gems_rare.json -2575ed95649c12951229deaa34b90b1e0f94ab5c data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfur_gems_rare.json -7db2a29a5c343148d6909ee20bc8c2e7cc1eee24 data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfurs_metals_rare.json -ff6bac08030962dd70aae8108f4506670db903a3 data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfur_metals_rare.json -948d2480f2635262967b43ba39d3d45b1586b3b4 data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfurs_gems_rare.json -c52161b1a0819ba910223896f2e9333943d8518a data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfur_gems_rare.json -7587fa4c1bcb7d00e098205b70ad5fc7834852de data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfurs_gems_common.json -260be8f178ee1284cb8240d39917723dc453f71b data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfur_gems_common.json -fc7b2b2dc435b2f584d96e9b9db3b223ec1bd74c data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfurs_other_minerals_common.json -da995ba1dd3361d65c46a8b4989ba56bdc3882c5 data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfur_other_minerals_common.json -8fd7b65b6e97cd439f93cd145c09b84263b9e402 data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfurs_gems_rare.json -818f4dc6776e226201f81afb668d36f43ab94cb2 data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfur_gems_rare.json -780802093996e656b08d5342cae8b84958bac4dc data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfurs_gems_abundant.json -8aa337ac343fa9bbf1214cb252c8ec6d76ae4973 data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfur_gems_abundant.json -4a4967d0ca35a296db6ae5b13d48473f5ceb90ed data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfurs_gems_rare.json -a89851ba84a9490c4f05173fc42eb02c0c0d7ee0 data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfur_gems_rare.json -23b6007ee5a4f2e9ed31467412b7fdbda0d33f72 data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfurs_metals_rare.json -312580ad4c6a80209d6ffe57c62c2f8cee260a51 data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfur_metals_rare.json -7d47d959fd77ac0f546d958e2748f38792730f39 data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfurs_other_minerals_common.json -e92f58298b34ddf1c2d8f3e6bb31665f68fc5d90 data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfur_other_minerals_common.json -04c5c4305d15b875e6519ea1cddfa47f636ec04c data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfurs_metals_common.json -6561423dcb3789839a0135bead9f847791c849a5 data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfur_metals_common.json -786fb76194874224263f9df6b959c15bd0ce2637 data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfurs_metals_rare.json -a848c51842510cc13896c6d30a3c982b9936334c data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfur_metals_rare.json -4ef47ebd6e9aad5259b1fa4d3cde9c5d1785ceb6 data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfurs_metals_common.json -f047ac5e8706536e0955fc47c22f1bcd2420b4e3 data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfur_metals_common.json +// 1.20.6 2024-05-30T16:48:06.2467345 Reformation Recipes +7e62d679f9cb9feb83925d7931ff4f02f1cf5a2c data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfurs_gems_rare.json +d97a29b04f08b0fcf134bfb228d9876ae212e79f data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfur_gems_rare.json +816b370677d431ef64e87ca861b8ee0cb5f6ceaa data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfurs_gems_abundant.json +f6e4fde0c749ea4a3ae2fadd3ed827574c684036 data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfur_gems_abundant.json +c42914acc59e4787fed0e17ad676fec6fcfff87a data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfurs_metals_rare.json +4c90a54159fd8ca315751a57f568330a2255c7b5 data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfur_metals_rare.json +59931b0b9e0f157fa5669c0cf769279be4eace2b data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfurs_metals_common.json +5b9c976205ba33401dd3adb9cb8b7eef1d4f2cfc data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfur_metals_common.json +840cc4faa391fd267c458f63236579b601c3b8fc data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfurs_other_minerals_abundant.json +07f51c6b4c8cae15edecef1b1169d0e09a391dd2 data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfur_other_minerals_abundant.json +376c78dfc0c69d774aaba6ce17bab0c34ba38ad4 data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfurs_metals_abundant.json +a3b9d0df634ece20c0c2a0b58c1e5b1991569c63 data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfur_metals_abundant.json +4ac4694ec3eaa1c4d1d1da21474dcff4bfa483f5 data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfurs_metals_rare.json +9a2b1dd03dac46c1dc0f81494000a4897e7f1cb3 data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfur_metals_rare.json +df3ce3402fe435acdc9b3aa9938e34844688f070 data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfurs_gems_precious.json +51952d912510bd1723c3c912ebc7a92ea924d022 data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfur_gems_precious.json +8cc8a2d2d5b04d94018e980a2760e77ff03b18a4 data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfurs_gems_precious.json +04a1780fb272cd6f0e794f1ae3b95c570b493855 data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfur_gems_precious.json +92fbe1f5549d13993b93a7b7c3f2d828de7dc0c0 data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfurs_gems_abundant.json +32cbbf8ae6ad3cef084d008052bb5ea2a4e5f2ad data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfur_gems_abundant.json +570cd3ff5f14f68dba8e40f3f3d91308164d161b data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_metals_abundant.json +ae7a3bf355f41b4c4fbc1b202f124606be84d130 data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_other_minerals_abundant.json +86672274e8cb55a4588d7744eac14054f593ba38 data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_metals_common.json +2ab1e59c524cd024bf1cac5cd4318da61f2c596e data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_other_minerals_common.json +e673594645c09c554b85c0156564c3fe3f17bfdb data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_metals_precious.json +de2772c94aa40a2615e41fba43702a8e903ffa6f data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_other_minerals_precious.json +2e674aea51d3e3335fae24d06267ed5847b9b150 data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_metals_rare.json +ff53ab3bad4c4a5444b428588041dea023a69b83 data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_other_minerals_rare.json +7cac56c8bc9ec63a557b4701fb482213bf665c36 data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfurs_metals_rare.json +2e379669bb54afb27447688bf6df342b35c89d89 data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfur_metals_rare.json +e72f77a34ac6e374f445d4eaaa956df54c0de5f3 data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfurs_metals_rare.json +f1398e421c78d029e17d34b15fc9b62f32d16e2b data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfur_metals_rare.json +894f624d76e0a5100b371a2149bfd1fcd6d463fa data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfurs_metals_common.json +3d344b8168dff4bffc5456aa042d093037eddb2e data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfur_metals_common.json +f1e8ece7d145ce250a64a141d79a9c26b31a0a0a data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfurs_gems_common.json +1929f981e127f5ccaad5a15db35a4bf307deedd3 data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfur_gems_common.json +adf204d94298230000addc029da2162890306727 data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfurs_metals_common.json +dbfa3f503406595e1556cc2b03835073081d3a2f data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfur_metals_common.json +d6dcdae3d4993e87ee21ec3b3514f58819509680 data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_gems_abundant.json +f7329ce4890ed4c942d665403a8ed40d2858dab3 data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_other_minerals_abundant.json +1cca4c8a45195e02dabc5eb35010938edbac1260 data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_gems_common.json +2b200d258cab08cf4bf0bc47c6cfed779ae92770 data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_other_minerals_common.json +598dc122085355396ce4cb6f420b4ce96774e872 data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_gems_precious.json +f7415a9e311b3f49dd2ce980f5be4d1fdf25a3b6 data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_other_minerals_precious.json +0317c3bc04b53e40b44d8f423ac99575a7753bd8 data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_gems_rare.json +ed9f2afbc8bbe38adb6ecbdace36fd63092e6b6c data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_other_minerals_rare.json +523ccf28b4907a604615cd3fe89bc472f0287ffe data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfurs_metals_precious.json +d926963154dfb62531dbd606e3321c038668ddc0 data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfur_metals_precious.json +4d2a00bdb4262898bfba1e4d64c2a1695e819296 data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfurs_metals_common.json +5200eaa45cab715a2108c2af9dd6902695768127 data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfur_metals_common.json +71bbe36915b0fc5e5497dc62374825efeb7cbfe9 data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfurs_metals_common.json +1845eb64a23e2d18056c5beedd148157acc4382f data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfur_metals_common.json +15b2b567782bee580a36ba8fb63c758cf1f51d03 data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_gems_abundant.json +0f9168976ff20c06152241fd6e309dcd82683e58 data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_metals_abundant.json +928354eea3ef586a81ae0e8e35b426cfb8bf2065 data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_gems_common.json +8f1b47db7f20f29b3c81605708013cdabb3de42c data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_metals_common.json +777bfa6e75e6a7a75fe3f2cff2c6936b8dd98092 data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_gems_precious.json +49d9d74343d556bfea81b020e1ea9ff08d0c5cda data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_metals_precious.json +8a2ab141e50791d6a6fff2e44e7fa03cdcd75ecf data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_gems_rare.json +162775c232facdc46fe043b51342a767cf6aa1ef data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_metals_rare.json +65d6f530032bf242f1dc0d96b14c11f4faf0247b data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfurs_gems_rare.json +f4b2f7ee62422f00d9c36e412804d4c46ebcc453 data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfur_gems_rare.json +7feaa0bf09f7b021954c9c2b5affa4e4c3bd5aae data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfurs_metals_rare.json +b9560fd3c253766bcf95ee40da868025863e13ff data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfur_metals_rare.json +f18280c2af46fb0f5ef90706d3fef180cd958d9f data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfurs_gems_rare.json +6066acec185d844e91671528fbd083ee59ccda36 data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfur_gems_rare.json +b41e883567e22aa5e4cb669d2752e6f9c37f67bf data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfurs_gems_common.json +91f2b1df4ba351dd844c54b58e30a7087871234d data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfur_gems_common.json +8fc19ebcd920bff7d88d5f02638045d7934b5660 data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfurs_other_minerals_common.json +8a0dbf23e00afb2aece48e9aad7be173eeb835c5 data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfur_other_minerals_common.json +334833f03fa096cb5ca42c88aa1c86bbecca5dbb data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfurs_gems_rare.json +84b54282daf1081816a5bd626da03b94ffbee88b data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfur_gems_rare.json +dcc17af1550e257ed9ad881dc26e00bab7e5de3b data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfurs_gems_abundant.json +525106f7950dfc14d3da04b0b121bfe2e48285b5 data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfur_gems_abundant.json +50e4da779baf1e4f72bc692a276dba89738a344c data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfurs_gems_rare.json +aaa72affbcc4d2bf94d322b3f9a1c1a557fddf9a data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfur_gems_rare.json +a7c51ccd4856a5e7c59e22aff5c0afed454d8c85 data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfurs_metals_rare.json +35843ed1a68e58515e2c3a77b58a03125ab7918a data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfur_metals_rare.json +2575cf113349f4022f8d7ab3038da3d0f1bdee4a data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfurs_other_minerals_common.json +6c6fbda791a50684026a420d5d5fb041695569c3 data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfur_other_minerals_common.json +c03c4a8e05f80a7c4dfdbf8a8b3e0cb8d5ecb415 data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfurs_metals_common.json +a1e8034d3d4e33b4ac5d7ed04cd245dc6d1f2fb0 data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfur_metals_common.json +878b7242402a74f2d9f096d7c290f09ed952116d data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfurs_metals_rare.json +cec437187497f3f1572f196239bdbe24e468bb5f data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfur_metals_rare.json +fdba6cdc3438e0abea6c716cd296dd2adeeed6dc data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfurs_metals_common.json +a80bc3aaadd8ab44af0fdc949f2fa7dc2b8bf77b data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfur_metals_common.json diff --git a/src/generated/resources/.cache/da4b435d090fd54b98b68c176bd0c2440d43120a b/src/generated/resources/.cache/da4b435d090fd54b98b68c176bd0c2440d43120a index f8698371b..9ddaca74f 100644 --- a/src/generated/resources/.cache/da4b435d090fd54b98b68c176bd0c2440d43120a +++ b/src/generated/resources/.cache/da4b435d090fd54b98b68c176bd0c2440d43120a @@ -1,3 +1,3 @@ -// 1.20.4 2024-05-25T13:38:47.7947444 Accumulation Recipes -32c4d2f605e54e98777793abf9d9eab9eced17d1 data/theurgy/recipes/accumulation/sal_ammoniac_from_water.json -57f320267f55fa411f6d8c52b59824bf05a1a40e data/theurgy/recipes/accumulation/sal_ammoniac_from_water_and_sal_ammoniac_crystal.json +// 1.20.6 2024-05-30T16:43:00.9605089 Accumulation Recipes +5726ad8698962e33494725dc39eb5de00632fa9f data/theurgy/recipes/accumulation/sal_ammoniac_from_water.json +f0a9bc329592ac2b37a815df492342f859198102 data/theurgy/recipes/accumulation/sal_ammoniac_from_water_and_sal_ammoniac_crystal.json diff --git a/src/generated/resources/.cache/e4cad9ee817d87f2c90e20579fbeaa0a00944c22 b/src/generated/resources/.cache/e4cad9ee817d87f2c90e20579fbeaa0a00944c22 index e0e73f17f..e19cf8608 100644 --- a/src/generated/resources/.cache/e4cad9ee817d87f2c90e20579fbeaa0a00944c22 +++ b/src/generated/resources/.cache/e4cad9ee817d87f2c90e20579fbeaa0a00944c22 @@ -1,2 +1,2 @@ -// 1.20.4 2024-05-25T13:38:47.7909614 Catalysation Recipes +// 1.20.6 2024-05-30T10:41:42.0348724 Catalysation Recipes fd33a7736394b9451fc18cc8c85711f94de16c20 data/theurgy/recipes/catalysation/mercury_flux_from_mercury_shard.json diff --git a/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 b/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 index a99d9b928..1b3d94917 100644 --- a/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 +++ b/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 @@ -1,10 +1,10 @@ -// 1.20.4 2024-01-16T15:38:38.1762173 Advancements +// 1.20.6 2024-05-30T10:41:42.0443812 Advancements 6ee71fc4aaef1daff9ffa2d22a14e00ba031603c data/theurgy/advancements/book_root.json -0046a0dd636a914b2d9d1c9831c2866f7245794c data/theurgy/advancements/has_amethyst_rod.json -c534c04fdc358c4412be48e89e8f2d1e15cb907c data/theurgy/advancements/has_basic_rod.json -3891fcd0d2c8da027e5ecc9d9ded8a7059b5563b data/theurgy/advancements/has_liquefaction_cauldron.json -3549612ad667a7504dcb799158dcb2149064cb24 data/theurgy/advancements/has_precious_rod.json -b3758ee9365c2b1525d0a65b76e0bfec10982cc6 data/theurgy/advancements/has_rare_rod.json -1b85c5132a1984461f5113bd46ada0e4178bd69c data/theurgy/advancements/has_t2_rod.json -3e6614a518285c8c8f3ac83293a18c48164f45b8 data/theurgy/advancements/has_t3_rod.json -aec1040389b5a70cb057e7126bc59b70f2f11cb4 data/theurgy/advancements/has_t4_rod.json +5b8b485d76ae4b6e18d3e94937ad03803ecfd2e0 data/theurgy/advancements/has_amethyst_rod.json +07c1e8812a14fc051c31da1efc371b70c8f1f262 data/theurgy/advancements/has_basic_rod.json +f8c1b40b501c18cc56af7765f01227ff6fe5e225 data/theurgy/advancements/has_liquefaction_cauldron.json +161ff8bfa28e5a9cd9152e82e039bdb42ceb58a1 data/theurgy/advancements/has_precious_rod.json +b581ae85571ae335d6cc04e4072802d343dc865f data/theurgy/advancements/has_rare_rod.json +40cadc2073c9072d9df6bdd0455b76f40990b30b data/theurgy/advancements/has_t2_rod.json +3a368ddc7e0fa40655ca9501fee746b4d5fe78f0 data/theurgy/advancements/has_t3_rod.json +5a9a256cb6dbfac026780c328caeeba6377ca21f data/theurgy/advancements/has_t4_rod.json diff --git a/src/generated/resources/.cache/fc3b48494f43114fa81b57d6279cd71dde510dad b/src/generated/resources/.cache/fc3b48494f43114fa81b57d6279cd71dde510dad index 6e56f463b..1777ca9f9 100644 --- a/src/generated/resources/.cache/fc3b48494f43114fa81b57d6279cd71dde510dad +++ b/src/generated/resources/.cache/fc3b48494f43114fa81b57d6279cd71dde510dad @@ -1,36 +1,36 @@ -// 1.20.4 2024-05-25T13:38:47.7931543 Incubation Recipes -3cde65371f94968f42829e11b0253c7cb4c705ab data/theurgy/recipes/incubation/coals_from_alchemical_sulfur_coal.json -c1d8b4e18f5373a23f1ff5aa252b6a4e25df076a data/theurgy/recipes/incubation/dusts_redstone_from_alchemical_sulfur_redstone.json -7fb9094308bec53aa5799232c45ec8f2b87e672c data/theurgy/recipes/incubation/gems_amethyst_from_alchemical_sulfur_amethyst.json -66e5da0e2bf6fa012d34474829ee6f025d14d755 data/theurgy/recipes/incubation/gems_apatite_from_alchemical_sulfur_apatite.json -32d627c8090067ccbabc0c8a24d36319cbedc344 data/theurgy/recipes/incubation/gems_diamond_from_alchemical_sulfur_diamond.json -77655b2aab0d3cdff244cf0dfb764d26dd1c7215 data/theurgy/recipes/incubation/gems_emerald_from_alchemical_sulfur_emerald.json -5ff751ac60620c2693d0380288df92ca899826b0 data/theurgy/recipes/incubation/gems_fluorite_from_alchemical_sulfur_fluorite.json -146f02b8a6273010788f951c121358c8198f4436 data/theurgy/recipes/incubation/gems_lapis_from_alchemical_sulfur_lapis.json -029d9552a7fa1ce3751a5eeb7639a7f1b5197402 data/theurgy/recipes/incubation/gems_peridot_from_alchemical_sulfur_peridot.json -a7568efcb86c4a0a3d344c83936bac2a2ac48ac3 data/theurgy/recipes/incubation/gems_prismarine_from_alchemical_sulfur_prismarine.json -74819be3b8e1eaab2d8edb01687f5901628020b6 data/theurgy/recipes/incubation/gems_quartz_from_alchemical_sulfur_quartz.json -f337f0f420117f817b2a7488338b5b4c1ca57580 data/theurgy/recipes/incubation/gems_ruby_from_alchemical_sulfur_ruby.json -a2e7e469f09408d1ae2b2b992d6653c93af5833f data/theurgy/recipes/incubation/gems_sal_ammoniac_from_alchemical_sulfur_sal_ammoniac.json -8fbae396475cef0ce0e947dbaf9cdab3a91ea032 data/theurgy/recipes/incubation/gems_sapphire_from_alchemical_sulfur_sapphire.json -8d1585e7d017b71f4824f1ff2b72416c98492186 data/theurgy/recipes/incubation/gems_sulfur_from_alchemical_sulfur_sulfur.json -229380547f754a01853c021ff78296b7288a60df data/theurgy/recipes/incubation/ingots_allthemodium_from_alchemical_sulfur_allthemodium.json -68b34603a73d88be10bfcadc81987c7affa74332 data/theurgy/recipes/incubation/ingots_azure_silver_from_alchemical_sulfur_azure_silver.json -012c69126a18b9255d1d85849705961b4448a508 data/theurgy/recipes/incubation/ingots_cinnabar_from_alchemical_sulfur_cinnabar.json -32b8ab94e398d9c72d03f0a4aebbed7f62f1ac37 data/theurgy/recipes/incubation/ingots_copper_from_alchemical_sulfur_copper.json -1748f7e8b4dfdc081984b29ec3b2185aec1c9d67 data/theurgy/recipes/incubation/ingots_crimson_iron_from_alchemical_sulfur_crimson_iron.json -266cce26d3c2dbcac72aaa914f32d67250a2dc9f data/theurgy/recipes/incubation/ingots_gold_from_alchemical_sulfur_gold.json -3ca478e5aa0acf4664d2ad1e77ccd8a24c0488de data/theurgy/recipes/incubation/ingots_iridium_from_alchemical_sulfur_iridium.json -afe151fbcc2ae633f6c2ecb850ebc3dd541c5c80 data/theurgy/recipes/incubation/ingots_iron_from_alchemical_sulfur_iron.json -7add07f7fc948ee3ed41bb1344ad6fb18deff8f1 data/theurgy/recipes/incubation/ingots_lead_from_alchemical_sulfur_lead.json -d2bbae71d17d32bfd114aa2c6cb3d0f3d12a8c06 data/theurgy/recipes/incubation/ingots_netherite_from_alchemical_sulfur_netherite.json -3570933ecd87325d82c9a073c4ef44bc8a0675a8 data/theurgy/recipes/incubation/ingots_nickel_from_alchemical_sulfur_nickel.json -743f66a967a25b2278f8e8539aed5787266cc14e data/theurgy/recipes/incubation/ingots_osmium_from_alchemical_sulfur_osmium.json -8c057313ac3864534279bd761aa4972d68587d13 data/theurgy/recipes/incubation/ingots_platinum_from_alchemical_sulfur_platinum.json -0240e9fca94a980d3c077f35ba43cf34ab0e2313 data/theurgy/recipes/incubation/ingots_silver_from_alchemical_sulfur_silver.json -cdd39b13ce7ff2b2ce490602b52dcf12ae6ce173 data/theurgy/recipes/incubation/ingots_tin_from_alchemical_sulfur_tin.json -a3d02863fc6793c714b5c149fb4c68c180be1cf5 data/theurgy/recipes/incubation/ingots_unobtainium_from_alchemical_sulfur_unobtainium.json -2497c664021b2332c24a47f772713871a0550adb data/theurgy/recipes/incubation/ingots_uranium_from_alchemical_sulfur_uranium.json -1e12c5311d4abcf182b03bd860d7e09bad25f232 data/theurgy/recipes/incubation/ingots_vibranium_from_alchemical_sulfur_vibranium.json -b0de8c9629d9eae70e338ca0350779c18e614d0f data/theurgy/recipes/incubation/ingots_zinc_from_alchemical_sulfur_zinc.json -9a630798bbb79e2f13876b3adf6dd99f50c75e2c data/theurgy/recipes/incubation/wheat.json +// 1.20.6 2024-05-30T16:43:00.9585035 Incubation Recipes +2b9888206f55bdfc1bc5304a71ef599cb05302d1 data/theurgy/recipes/incubation/coals_from_alchemical_sulfur_coal.json +8f4c44dda7b8c5491e54bcebf7a55cabee04d390 data/theurgy/recipes/incubation/dusts_redstone_from_alchemical_sulfur_redstone.json +10deb6c29ac0d146dde54954b6073232440de1af data/theurgy/recipes/incubation/gems_amethyst_from_alchemical_sulfur_amethyst.json +2a31fb8c80ef7584945cf877cc889eab0c36235a data/theurgy/recipes/incubation/gems_apatite_from_alchemical_sulfur_apatite.json +1b1dcfb15fd5763ed8d738eaa9398adfe73565ba data/theurgy/recipes/incubation/gems_diamond_from_alchemical_sulfur_diamond.json +4821df73165a329b59f3dd3f727ed48b501015a3 data/theurgy/recipes/incubation/gems_emerald_from_alchemical_sulfur_emerald.json +7229d97c7a6e4039c857af402c23654db34a7a8c data/theurgy/recipes/incubation/gems_fluorite_from_alchemical_sulfur_fluorite.json +ec635ee089fe61c3645cecdbf75ff85fe1c2fb1e data/theurgy/recipes/incubation/gems_lapis_from_alchemical_sulfur_lapis.json +9bff166939379a762e7bfaaf613c74fb5297c1a1 data/theurgy/recipes/incubation/gems_peridot_from_alchemical_sulfur_peridot.json +569bfadb9f111efcb7ab2c929245d4e327e7f80d data/theurgy/recipes/incubation/gems_prismarine_from_alchemical_sulfur_prismarine.json +a1c1136c728d9f0de016a089937d099e68fd767b data/theurgy/recipes/incubation/gems_quartz_from_alchemical_sulfur_quartz.json +9b0b3a072440354f6e02ce78ddb339137f666e7f data/theurgy/recipes/incubation/gems_ruby_from_alchemical_sulfur_ruby.json +f53c1b11c48c3c166d52caa4fb88fc669dce8ad6 data/theurgy/recipes/incubation/gems_sal_ammoniac_from_alchemical_sulfur_sal_ammoniac.json +219fde74990a00207b447fb6a63567750d834e90 data/theurgy/recipes/incubation/gems_sapphire_from_alchemical_sulfur_sapphire.json +317577e1da07f840914f4db37f2d8c6dbc5712d4 data/theurgy/recipes/incubation/gems_sulfur_from_alchemical_sulfur_sulfur.json +6fca0966249dd39839da81155bce3cf0bcb23acd data/theurgy/recipes/incubation/ingots_allthemodium_from_alchemical_sulfur_allthemodium.json +1537b949e6a1e9e4f00ffe936c3d1570b35c2684 data/theurgy/recipes/incubation/ingots_azure_silver_from_alchemical_sulfur_azure_silver.json +3c2950d6066d40a12679cad861b5d01585e69a1c data/theurgy/recipes/incubation/ingots_cinnabar_from_alchemical_sulfur_cinnabar.json +7b9c43963805cbf33407925d8e162e1726d10805 data/theurgy/recipes/incubation/ingots_copper_from_alchemical_sulfur_copper.json +2684b1e4f423604841f078f4938822c1765d1403 data/theurgy/recipes/incubation/ingots_crimson_iron_from_alchemical_sulfur_crimson_iron.json +0ec93284ab10e93dd80976c42291bc151fdfe3e7 data/theurgy/recipes/incubation/ingots_gold_from_alchemical_sulfur_gold.json +8848d9826376d81e5541534f221fe3847c094789 data/theurgy/recipes/incubation/ingots_iridium_from_alchemical_sulfur_iridium.json +ccdeb9a13f94d2878eea2369dd240ee326e68b8e data/theurgy/recipes/incubation/ingots_iron_from_alchemical_sulfur_iron.json +15211b012fabcc0aa757378af82936ad261a5fa9 data/theurgy/recipes/incubation/ingots_lead_from_alchemical_sulfur_lead.json +f1528354cb655ceab711323fed85b5f102ccc80e data/theurgy/recipes/incubation/ingots_netherite_from_alchemical_sulfur_netherite.json +da9124cb2086b0324e7c4d002311eb90fdddb0d9 data/theurgy/recipes/incubation/ingots_nickel_from_alchemical_sulfur_nickel.json +c9fc703f930c936466d88cac4cd1ca173ae153cf data/theurgy/recipes/incubation/ingots_osmium_from_alchemical_sulfur_osmium.json +71c0df9056eca842d0e098d38d18dfec2ec54ea1 data/theurgy/recipes/incubation/ingots_platinum_from_alchemical_sulfur_platinum.json +08650fe313c3dac1a98d347629c06dd1e080e66e data/theurgy/recipes/incubation/ingots_silver_from_alchemical_sulfur_silver.json +50206a2945529d0786605edfc228babb23cdf361 data/theurgy/recipes/incubation/ingots_tin_from_alchemical_sulfur_tin.json +ee1b4f4790634f0397f5accf02d5f6c66996b8c9 data/theurgy/recipes/incubation/ingots_unobtainium_from_alchemical_sulfur_unobtainium.json +3e945dc9b932134724761a6039883c579efafb81 data/theurgy/recipes/incubation/ingots_uranium_from_alchemical_sulfur_uranium.json +3d3cb9f5ffe74d0c846aa48846f64e5ffd87918e data/theurgy/recipes/incubation/ingots_vibranium_from_alchemical_sulfur_vibranium.json +5e8ebde9e7183fe689da05e6d2416a36f8d29f77 data/theurgy/recipes/incubation/ingots_zinc_from_alchemical_sulfur_zinc.json +915600448717760dd685a9127871930a375ba107 data/theurgy/recipes/incubation/wheat.json diff --git a/src/generated/resources/assets/theurgy/lang/en_us.json b/src/generated/resources/assets/theurgy/lang/en_us.json index 9d2e718c5..0906601f4 100644 --- a/src/generated/resources/assets/theurgy/lang/en_us.json +++ b/src/generated/resources/assets/theurgy/lang/en_us.json @@ -721,9 +721,9 @@ "book.theurgy.the_hermetica.logistics.mercurial_wand.enable.title": "Enable/Disable", "book.theurgy.the_hermetica.logistics.mercurial_wand.name": "Mercurial Wand", "book.theurgy.the_hermetica.logistics.mercurial_wand.rotate.text": "With this mode, right-clicking on a block will cycle the selected direction of the target block.\n\\\n\\\nThe \"selected direction\" is the direction the block will insert/extract to/from.\n\\\n\\\nThe default selected direction is the face the block is attached to.\n", - "book.theurgy.the_hermetica.logistics.mercurial_wand.rotate.title": "Rotate Selected Direction", + "book.theurgy.the_hermetica.logistics.mercurial_wand.rotate.title": "Cycle Selected Direction", "book.theurgy.the_hermetica.logistics.mercurial_wand.rotate_visuals.text": "When looking at a logistics block with this mode selected, the block will highlight the selected direction on its target block.\n\\\n\\\nYellow is the current direction, green is the direction that will be set if you right-click.\\\nMake sure that the side you want to insert/extract from is yellow!\n", - "book.theurgy.the_hermetica.logistics.mercurial_wand.rotate_visuals.title": "Rotate Selected Direction", + "book.theurgy.the_hermetica.logistics.mercurial_wand.rotate_visuals.title": "Cycle Selected Direction", "book.theurgy.the_hermetica.logistics.mercurial_wand.usage.text": "Crouch and Scroll to change the mode of the wand.\n\\\n\\\nRight-click to interact with the target apparatus/block.\n", "book.theurgy.the_hermetica.logistics.mercurial_wand.usage.title": "Usage", "book.theurgy.the_hermetica.logistics.mercurial_wire.description": "Item-Over-Wire Transport", @@ -740,8 +740,8 @@ "fluid_type.theurgy.sal_ammoniac": "Sal Ammoniac", "item.mode.theurgy.mercurial_wand.disabled": "Disabled", "item.mode.theurgy.mercurial_wand.enabled": "Enabled", - "item.mode.theurgy.mercurial_wand.rotate_selected_direction": "Rotate selected direction", - "item.mode.theurgy.mercurial_wand.rotate_selected_direction.success": "Rotated direction to %s", + "item.mode.theurgy.mercurial_wand.rotate_selected_direction": "Cycle selected direction", + "item.mode.theurgy.mercurial_wand.rotate_selected_direction.success": "Cycle direction to %s", "item.mode.theurgy.mercurial_wand.rotate_selected_direction.with_target": "Set direction from %s to %s", "item.mode.theurgy.mercurial_wand.select_direction": "Select direction (Currently: %s)", "item.mode.theurgy.mercurial_wand.select_direction.success": "Direction: %s", @@ -840,10 +840,6 @@ "item.theurgy.alchemical_sulfur_gems_rare.tooltip": "Alchemical Niter crafted from Alchemical Sulfur of any %s.", "item.theurgy.alchemical_sulfur_gems_rare.tooltip.extended": "Niter represents the abstract category and value of an object, thus it is a further abstraction the \"idea\" or \"soul\" represented by Sulfur.", "item.theurgy.alchemical_sulfur_gems_rare.tooltip.usage": "Niter extraction is a required intermediate step to transform one type of Sulfur into another type.", - "item.theurgy.alchemical_sulfur_generic": "Alchemical Sulfur %s", - "item.theurgy.alchemical_sulfur_generic.tooltip": "Alchemical Sulfur crafted from %s %s %s.", - "item.theurgy.alchemical_sulfur_generic.tooltip.extended": "Sulfur represents the \"idea\" or \"soul\" of an object", - "item.theurgy.alchemical_sulfur_generic.tooltip.usage": "Sulfur is the central element used in Spagyrics processes.\n\n§oHint: Sulfurs crafted from different states of the same material (such as from Ore or Ingots) are interchangeable.§r", "item.theurgy.alchemical_sulfur_gold": "Alchemical Sulfur %s", "item.theurgy.alchemical_sulfur_gold.source": "Gold", "item.theurgy.alchemical_sulfur_gold.tooltip": "Alchemical Sulfur crafted from %s %s %s.", diff --git a/src/generated/resources/assets/theurgy/models/item/alchemical_sulfur_generic.json b/src/generated/resources/assets/theurgy/models/item/alchemical_sulfur_generic.json deleted file mode 100644 index ad08d9786..000000000 --- a/src/generated/resources/assets/theurgy/models/item/alchemical_sulfur_generic.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "minecraft:builtin/entity" -} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/blocks/ores.json b/src/generated/resources/data/c/tags/blocks/ores.json new file mode 100644 index 000000000..ccad2b4b2 --- /dev/null +++ b/src/generated/resources/data/c/tags/blocks/ores.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#c:ores/sal_ammoniac" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/ores/sal_ammoniac.json b/src/generated/resources/data/c/tags/blocks/ores/sal_ammoniac.json similarity index 100% rename from src/generated/resources/data/forge/tags/blocks/ores/sal_ammoniac.json rename to src/generated/resources/data/c/tags/blocks/ores/sal_ammoniac.json diff --git a/src/generated/resources/data/forge/tags/blocks/ores_in_ground/deepslate.json b/src/generated/resources/data/c/tags/blocks/ores_in_ground/deepslate.json similarity index 100% rename from src/generated/resources/data/forge/tags/blocks/ores_in_ground/deepslate.json rename to src/generated/resources/data/c/tags/blocks/ores_in_ground/deepslate.json diff --git a/src/generated/resources/data/forge/tags/blocks/ores_in_ground/stone.json b/src/generated/resources/data/c/tags/blocks/ores_in_ground/stone.json similarity index 100% rename from src/generated/resources/data/forge/tags/blocks/ores_in_ground/stone.json rename to src/generated/resources/data/c/tags/blocks/ores_in_ground/stone.json diff --git a/src/generated/resources/data/c/tags/items/gems.json b/src/generated/resources/data/c/tags/items/gems.json new file mode 100644 index 000000000..51001d6cd --- /dev/null +++ b/src/generated/resources/data/c/tags/items/gems.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#c:gems/sal_ammoniac" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/gems/sal_ammoniac.json b/src/generated/resources/data/c/tags/items/gems/sal_ammoniac.json similarity index 100% rename from src/generated/resources/data/forge/tags/items/gems/sal_ammoniac.json rename to src/generated/resources/data/c/tags/items/gems/sal_ammoniac.json diff --git a/src/generated/resources/data/forge/tags/items/ores/sal_ammoniac.json b/src/generated/resources/data/c/tags/items/ores/sal_ammoniac.json similarity index 100% rename from src/generated/resources/data/forge/tags/items/ores/sal_ammoniac.json rename to src/generated/resources/data/c/tags/items/ores/sal_ammoniac.json diff --git a/src/generated/resources/data/forge/tags/items/ores_in_ground/deepslate.json b/src/generated/resources/data/c/tags/items/ores_in_ground/deepslate.json similarity index 100% rename from src/generated/resources/data/forge/tags/items/ores_in_ground/deepslate.json rename to src/generated/resources/data/c/tags/items/ores_in_ground/deepslate.json diff --git a/src/generated/resources/data/forge/tags/items/ores_in_ground/stone.json b/src/generated/resources/data/c/tags/items/ores_in_ground/stone.json similarity index 100% rename from src/generated/resources/data/forge/tags/items/ores_in_ground/stone.json rename to src/generated/resources/data/c/tags/items/ores_in_ground/stone.json diff --git a/src/generated/resources/data/forge/tags/items/sugar.json b/src/generated/resources/data/c/tags/items/sugars.json similarity index 100% rename from src/generated/resources/data/forge/tags/items/sugar.json rename to src/generated/resources/data/c/tags/items/sugars.json diff --git a/src/generated/resources/data/forge/tags/blocks/ores.json b/src/generated/resources/data/forge/tags/blocks/ores.json deleted file mode 100644 index 6a99ed0a2..000000000 --- a/src/generated/resources/data/forge/tags/blocks/ores.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "#forge:ores/sal_ammoniac" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/gems.json b/src/generated/resources/data/forge/tags/items/gems.json deleted file mode 100644 index 85c474a74..000000000 --- a/src/generated/resources/data/forge/tags/items/gems.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "#forge:gems/sal_ammoniac" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index 6a99ed0a2..ccad2b4b2 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -1,5 +1,5 @@ { "values": [ - "#forge:ores/sal_ammoniac" + "#c:ores/sal_ammoniac" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json index 6a99ed0a2..ccad2b4b2 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json +++ b/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json @@ -1,5 +1,5 @@ { "values": [ - "#forge:ores/sal_ammoniac" + "#c:ores/sal_ammoniac" ] } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/advancements/has_amethyst_rod.json b/src/generated/resources/data/theurgy/advancements/has_amethyst_rod.json index 5989098df..e52570b6c 100644 --- a/src/generated/resources/data/theurgy/advancements/has_amethyst_rod.json +++ b/src/generated/resources/data/theurgy/advancements/has_amethyst_rod.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:amethyst_divination_rod" - ] + "items": "theurgy:amethyst_divination_rod" } ] }, diff --git a/src/generated/resources/data/theurgy/advancements/has_basic_rod.json b/src/generated/resources/data/theurgy/advancements/has_basic_rod.json index e6502ce0f..a3b50e21c 100644 --- a/src/generated/resources/data/theurgy/advancements/has_basic_rod.json +++ b/src/generated/resources/data/theurgy/advancements/has_basic_rod.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:sulfur_attuned_divination_rod_abundant" - ] + "items": "theurgy:sulfur_attuned_divination_rod_abundant" } ] }, @@ -17,9 +15,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:sulfur_attuned_divination_rod_common" - ] + "items": "theurgy:sulfur_attuned_divination_rod_common" } ] }, @@ -29,9 +25,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:divination_rod_t1" - ] + "items": "theurgy:divination_rod_t1" } ] }, diff --git a/src/generated/resources/data/theurgy/advancements/has_liquefaction_cauldron.json b/src/generated/resources/data/theurgy/advancements/has_liquefaction_cauldron.json index dfc41a1a9..780d4dbdc 100644 --- a/src/generated/resources/data/theurgy/advancements/has_liquefaction_cauldron.json +++ b/src/generated/resources/data/theurgy/advancements/has_liquefaction_cauldron.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:liquefaction_cauldron" - ] + "items": "theurgy:liquefaction_cauldron" } ] }, diff --git a/src/generated/resources/data/theurgy/advancements/has_precious_rod.json b/src/generated/resources/data/theurgy/advancements/has_precious_rod.json index fc9a7fac8..6cbbf1b60 100644 --- a/src/generated/resources/data/theurgy/advancements/has_precious_rod.json +++ b/src/generated/resources/data/theurgy/advancements/has_precious_rod.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:sulfur_attuned_divination_rod_precious" - ] + "items": "theurgy:sulfur_attuned_divination_rod_precious" } ] }, diff --git a/src/generated/resources/data/theurgy/advancements/has_rare_rod.json b/src/generated/resources/data/theurgy/advancements/has_rare_rod.json index 61a603801..f72899f80 100644 --- a/src/generated/resources/data/theurgy/advancements/has_rare_rod.json +++ b/src/generated/resources/data/theurgy/advancements/has_rare_rod.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:sulfur_attuned_divination_rod_rare" - ] + "items": "theurgy:sulfur_attuned_divination_rod_rare" } ] }, diff --git a/src/generated/resources/data/theurgy/advancements/has_t2_rod.json b/src/generated/resources/data/theurgy/advancements/has_t2_rod.json index 5aaa33a42..2bb7028f5 100644 --- a/src/generated/resources/data/theurgy/advancements/has_t2_rod.json +++ b/src/generated/resources/data/theurgy/advancements/has_t2_rod.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:divination_rod_t2" - ] + "items": "theurgy:divination_rod_t2" } ] }, diff --git a/src/generated/resources/data/theurgy/advancements/has_t3_rod.json b/src/generated/resources/data/theurgy/advancements/has_t3_rod.json index 633475ee5..8f6f17fb3 100644 --- a/src/generated/resources/data/theurgy/advancements/has_t3_rod.json +++ b/src/generated/resources/data/theurgy/advancements/has_t3_rod.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:divination_rod_t3" - ] + "items": "theurgy:divination_rod_t3" } ] }, diff --git a/src/generated/resources/data/theurgy/advancements/has_t4_rod.json b/src/generated/resources/data/theurgy/advancements/has_t4_rod.json index 5b6fd6b4b..474f0a7ed 100644 --- a/src/generated/resources/data/theurgy/advancements/has_t4_rod.json +++ b/src/generated/resources/data/theurgy/advancements/has_t4_rod.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "theurgy:divination_rod_t4" - ] + "items": "theurgy:divination_rod_t4" } ] }, diff --git a/src/generated/resources/data/theurgy/loot_tables/blocks/caloric_flux_emitter.json b/src/generated/resources/data/theurgy/loot_tables/blocks/caloric_flux_emitter.json index fde5376cc..c108770e1 100644 --- a/src/generated/resources/data/theurgy/loot_tables/blocks/caloric_flux_emitter.json +++ b/src/generated/resources/data/theurgy/loot_tables/blocks/caloric_flux_emitter.json @@ -13,13 +13,9 @@ "type": "minecraft:item", "functions": [ { - "function": "minecraft:copy_nbt", - "ops": [ - { - "op": "replace", - "source": "mercuryFluxStorage", - "target": "BlockEntityTag.mercuryFluxStorage" - } + "function": "minecraft:copy_components", + "include": [ + "theurgy:mercury_flux_storage" ], "source": "block_entity" } diff --git a/src/generated/resources/data/theurgy/loot_tables/blocks/deepslate_sal_ammoniac_ore.json b/src/generated/resources/data/theurgy/loot_tables/blocks/deepslate_sal_ammoniac_ore.json index 23086153d..a3902e297 100644 --- a/src/generated/resources/data/theurgy/loot_tables/blocks/deepslate_sal_ammoniac_ore.json +++ b/src/generated/resources/data/theurgy/loot_tables/blocks/deepslate_sal_ammoniac_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/generated/resources/data/theurgy/loot_tables/blocks/mercury_catalyst.json b/src/generated/resources/data/theurgy/loot_tables/blocks/mercury_catalyst.json index 7d316db39..889310609 100644 --- a/src/generated/resources/data/theurgy/loot_tables/blocks/mercury_catalyst.json +++ b/src/generated/resources/data/theurgy/loot_tables/blocks/mercury_catalyst.json @@ -13,28 +13,12 @@ "type": "minecraft:item", "functions": [ { - "function": "minecraft:copy_nbt", - "ops": [ - { - "op": "replace", - "source": "mercuryFluxStorage", - "target": "BlockEntityTag.mercuryFluxStorage" - }, - { - "op": "replace", - "source": "mercuryFluxToConvert", - "target": "BlockEntityTag.mercuryFluxToConvert" - }, - { - "op": "replace", - "source": "currentMercuryFluxPerTick", - "target": "BlockEntityTag.currentMercuryFluxPerTick" - }, - { - "op": "replace", - "source": "inventory", - "target": "BlockEntityTag.inventory" - } + "function": "minecraft:copy_components", + "include": [ + "theurgy:mercury_flux_storage", + "theurgy:mercury_flux_to_convert", + "theurgy:current_mercury_flux_per_tick", + "minecraft:container" ], "source": "block_entity" } diff --git a/src/generated/resources/data/theurgy/loot_tables/blocks/sal_ammoniac_ore.json b/src/generated/resources/data/theurgy/loot_tables/blocks/sal_ammoniac_ore.json index 85e055642..211540377 100644 --- a/src/generated/resources/data/theurgy/loot_tables/blocks/sal_ammoniac_ore.json +++ b/src/generated/resources/data/theurgy/loot_tables/blocks/sal_ammoniac_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/generated/resources/data/theurgy/loot_tables/blocks/sulfuric_flux_emitter.json b/src/generated/resources/data/theurgy/loot_tables/blocks/sulfuric_flux_emitter.json index 5a4488c8f..062a2c620 100644 --- a/src/generated/resources/data/theurgy/loot_tables/blocks/sulfuric_flux_emitter.json +++ b/src/generated/resources/data/theurgy/loot_tables/blocks/sulfuric_flux_emitter.json @@ -13,13 +13,9 @@ "type": "minecraft:item", "functions": [ { - "function": "minecraft:copy_nbt", - "ops": [ - { - "op": "replace", - "source": "mercuryFluxStorage", - "target": "BlockEntityTag.mercuryFluxStorage" - } + "function": "minecraft:copy_components", + "include": [ + "theurgy:mercury_flux_storage" ], "source": "block_entity" } diff --git a/src/generated/resources/data/theurgy/recipes/accumulation/sal_ammoniac_from_water.json b/src/generated/resources/data/theurgy/recipes/accumulation/sal_ammoniac_from_water.json index 42598515f..80adf3cc8 100644 --- a/src/generated/resources/data/theurgy/recipes/accumulation/sal_ammoniac_from_water.json +++ b/src/generated/resources/data/theurgy/recipes/accumulation/sal_ammoniac_from_water.json @@ -1,13 +1,22 @@ { "type": "theurgy:accumulation", "category": "misc", + "conditions": [ + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "minecraft:water" + } + } + ], "evaporant": { "tag": "minecraft:water" }, "evaporantAmount": 1000, "result": { - "Amount": 100, - "FluidName": "theurgy:sal_ammoniac" + "amount": 100, + "id": "theurgy:sal_ammoniac" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/accumulation/sal_ammoniac_from_water_and_sal_ammoniac_crystal.json b/src/generated/resources/data/theurgy/recipes/accumulation/sal_ammoniac_from_water_and_sal_ammoniac_crystal.json index 6fd260f72..a999602de 100644 --- a/src/generated/resources/data/theurgy/recipes/accumulation/sal_ammoniac_from_water_and_sal_ammoniac_crystal.json +++ b/src/generated/resources/data/theurgy/recipes/accumulation/sal_ammoniac_from_water_and_sal_ammoniac_crystal.json @@ -1,16 +1,32 @@ { "type": "theurgy:accumulation", "category": "misc", + "conditions": [ + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "minecraft:water" + } + }, + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "c:gems/sal_ammoniac" + } + } + ], "evaporant": { "tag": "minecraft:water" }, "evaporantAmount": 1000, "result": { - "Amount": 1000, - "FluidName": "theurgy:sal_ammoniac" + "amount": 1000, + "id": "theurgy:sal_ammoniac" }, "solute": { - "tag": "forge:gems/sal_ammoniac" + "tag": "c:gems/sal_ammoniac" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_ores.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_crops.json similarity index 66% rename from src/generated/resources/data/theurgy/recipes/calcination/mineral_from_ores.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_crops.json index 3dabbe7a1..562e19535 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_ores.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_crops.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores" + "tag": "c:crops" } } ], - "type": "theurgy:calcination", - "category": "misc", "ingredient": { - "tag": "forge:ores" + "tag": "c:crops" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_salt_mineral" + "id": "theurgy:alchemical_salt_crops" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/mineral.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral.json similarity index 73% rename from src/generated/resources/data/theurgy/recipes/calcination/mineral.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral.json index 8f302dbf0..6824f1722 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/mineral.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral.json @@ -6,8 +6,9 @@ }, "ingredientCount": 20, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_salt_mineral" + "id": "theurgy:alchemical_salt_mineral" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_gems.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_gems.json similarity index 66% rename from src/generated/resources/data/theurgy/recipes/calcination/mineral_from_gems.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_gems.json index fe97df811..010baf5da 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_gems.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_gems.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems" + "tag": "c:gems" } } ], - "type": "theurgy:calcination", - "category": "misc", "ingredient": { - "tag": "forge:gems" + "tag": "c:gems" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_salt_mineral" + "id": "theurgy:alchemical_salt_mineral" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_ingots.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_ingots.json similarity index 65% rename from src/generated/resources/data/theurgy/recipes/calcination/mineral_from_ingots.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_ingots.json index fe579e0d8..fbd8381ff 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_ingots.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_ingots.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots" + "tag": "c:ingots" } } ], - "type": "theurgy:calcination", - "category": "misc", "ingredient": { - "tag": "forge:ingots" + "tag": "c:ingots" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_salt_mineral" + "id": "theurgy:alchemical_salt_mineral" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/crops.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_ores.json similarity index 66% rename from src/generated/resources/data/theurgy/recipes/calcination/crops.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_ores.json index 6195cfb2e..4fa0a3dc4 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/crops.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_ores.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:ores" } } ], - "type": "theurgy:calcination", - "category": "misc", "ingredient": { - "tag": "forge:crops" + "tag": "c:ores" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_salt_crops" + "id": "theurgy:alchemical_salt_mineral" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_other_minerals.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_other_minerals.json similarity index 79% rename from src/generated/resources/data/theurgy/recipes/calcination/mineral_from_other_minerals.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_other_minerals.json index e955535fb..fcd9998a9 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_other_minerals.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_other_minerals.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:calcination", - "category": "misc", "ingredient": { "tag": "theurgy:other_minerals" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_salt_mineral" + "id": "theurgy:alchemical_salt_mineral" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_cobblestone.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_raw_materials.json similarity index 63% rename from src/generated/resources/data/theurgy/recipes/calcination/strata_from_cobblestone.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_raw_materials.json index b32d9be3b..b2ded9bdd 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_cobblestone.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_mineral_from_raw_materials.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:cobblestone" + "tag": "c:raw_materials" } } ], - "type": "theurgy:calcination", - "category": "misc", "ingredient": { - "tag": "forge:cobblestone" + "tag": "c:raw_materials" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_salt_strata" + "id": "theurgy:alchemical_salt_mineral" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_clay.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_clay.json similarity index 72% rename from src/generated/resources/data/theurgy/recipes/calcination/strata_from_clay.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_clay.json index 850498ed9..1a5e9097f 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_clay.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_clay.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_salt_strata" + "id": "theurgy:alchemical_salt_strata" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_clay_ball.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_clay_ball.json similarity index 72% rename from src/generated/resources/data/theurgy/recipes/calcination/strata_from_clay_ball.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_clay_ball.json index fcba65991..cbd44f1b7 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_clay_ball.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_clay_ball.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_salt_strata" + "id": "theurgy:alchemical_salt_strata" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_raw_materials.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_cobblestone.json similarity index 63% rename from src/generated/resources/data/theurgy/recipes/calcination/mineral_from_raw_materials.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_cobblestone.json index ebf57821d..3b8d56e5b 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/mineral_from_raw_materials.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_cobblestone.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials" + "tag": "c:cobblestones" } } ], - "type": "theurgy:calcination", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials" + "tag": "c:cobblestones" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_salt_mineral" + "id": "theurgy:alchemical_salt_strata" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_dirt.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_dirt.json similarity index 78% rename from src/generated/resources/data/theurgy/recipes/calcination/strata_from_dirt.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_dirt.json index ae4960acd..d4107cece 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_dirt.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_dirt.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:calcination", - "category": "misc", "ingredient": { "tag": "minecraft:dirt" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_salt_strata" + "id": "theurgy:alchemical_salt_strata" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_gravel.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_gravel.json similarity index 72% rename from src/generated/resources/data/theurgy/recipes/calcination/strata_from_gravel.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_gravel.json index 70e10979d..16252adfa 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_gravel.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_gravel.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_salt_strata" + "id": "theurgy:alchemical_salt_strata" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_sand.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_sand.json similarity index 78% rename from src/generated/resources/data/theurgy/recipes/calcination/strata_from_sand.json rename to src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_sand.json index 9712534f5..756d6e0e9 100644 --- a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_sand.json +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_sand.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:calcination", - "category": "misc", "ingredient": { "tag": "minecraft:sand" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_salt_strata" + "id": "theurgy:alchemical_salt_strata" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_sandstone.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_sandstone.json new file mode 100644 index 000000000..6d5abb23b --- /dev/null +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_sandstone.json @@ -0,0 +1,23 @@ +{ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "c:sandstone/blocks" + } + } + ], + "ingredient": { + "tag": "c:sandstone/blocks" + }, + "ingredientCount": 1, + "result": { + "type": "theurgy:item", + "count": 1, + "id": "theurgy:alchemical_salt_strata" + }, + "time": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_stone.json b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_stone.json new file mode 100644 index 000000000..c5feeda87 --- /dev/null +++ b/src/generated/resources/data/theurgy/recipes/calcination/alchemical_salt_strata_from_stone.json @@ -0,0 +1,23 @@ +{ + "type": "theurgy:calcination", + "category": "misc", + "conditions": [ + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "c:stones" + } + } + ], + "ingredient": { + "tag": "c:stones" + }, + "ingredientCount": 1, + "result": { + "type": "theurgy:item", + "count": 1, + "id": "theurgy:alchemical_salt_strata" + }, + "time": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_sandstone.json b/src/generated/resources/data/theurgy/recipes/calcination/strata_from_sandstone.json deleted file mode 100644 index 9002fc96b..000000000 --- a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_sandstone.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:not", - "value": { - "type": "neoforge:tag_empty", - "tag": "forge:sandstone" - } - } - ], - "type": "theurgy:calcination", - "category": "misc", - "ingredient": { - "tag": "forge:sandstone" - }, - "ingredientCount": 1, - "result": { - "count": 1, - "item": "theurgy:alchemical_salt_strata" - }, - "time": 100 -} \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_stone.json b/src/generated/resources/data/theurgy/recipes/calcination/strata_from_stone.json deleted file mode 100644 index 8c18e78b6..000000000 --- a/src/generated/resources/data/theurgy/recipes/calcination/strata_from_stone.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:not", - "value": { - "type": "neoforge:tag_empty", - "tag": "forge:stone" - } - } - ], - "type": "theurgy:calcination", - "category": "misc", - "ingredient": { - "tag": "forge:stone" - }, - "ingredientCount": 1, - "result": { - "count": 1, - "item": "theurgy:alchemical_salt_strata" - }, - "time": 100 -} \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/amethyst_divination_rod.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/amethyst_divination_rod.json index b2050d4a3..e9477448e 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/amethyst_divination_rod.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/amethyst_divination_rod.json @@ -3,13 +3,13 @@ "category": "misc", "key": { "G": { - "tag": "forge:glass" + "tag": "c:glass_blocks" }, "P": { - "tag": "forge:dyes/purple" + "tag": "c:dyes/purple" }, "R": { - "tag": "forge:rods/wooden" + "tag": "c:rods/wooden" } }, "pattern": [ @@ -18,16 +18,10 @@ "R " ], "result": { + "components": { + "theurgy:divination_linked_block": "minecraft:budding_amethyst" + }, "count": 1, - "item": "theurgy:amethyst_divination_rod", - "nbt": { - "theurgy:divination.linked_block_id": "minecraft:budding_amethyst", - "theurgy:divination.setting.allowed_blocks_tag": "theurgy:divination_rod_t1_allowed_blocks", - "theurgy:divination.setting.disallowed_blocks_tag": "theurgy:divination_rod_t1_disallowed_blocks", - "theurgy:divination.setting.duration": 40, - "theurgy:divination.setting.max_damage": 16, - "theurgy:divination.setting.range": 96, - "theurgy:divination.setting.tier": "minecraft:stone" - } + "id": "theurgy:amethyst_divination_rod" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/calcination_oven.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/calcination_oven.json index 22fc7c1e9..d4ef73bae 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/calcination_oven.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/calcination_oven.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "C": { - "tag": "forge:storage_blocks/copper" + "tag": "c:storage_blocks/copper" }, "I": { - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" } }, "pattern": [ @@ -16,6 +16,6 @@ ], "result": { "count": 1, - "item": "theurgy:calcination_oven" + "id": "theurgy:calcination_oven" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_campfire.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_campfire.json index 47ebbbe62..5edfe1f0b 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_campfire.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_campfire.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "g": { - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, "h": { "item": "minecraft:campfire" @@ -12,7 +12,7 @@ "tag": "theurgy:alchemical_mercuries" }, "s": { - "tag": "forge:stone" + "tag": "c:stones" } }, "pattern": [ @@ -22,6 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:caloric_flux_emitter" + "id": "theurgy:caloric_flux_emitter" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_lava_bucket.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_lava_bucket.json index 294b94a05..0d6966787 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_lava_bucket.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/caloric_flux_emitter_from_lava_bucket.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "g": { - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, "h": { "item": "minecraft:lava_bucket" @@ -12,7 +12,7 @@ "tag": "theurgy:alchemical_mercuries" }, "s": { - "tag": "forge:stone" + "tag": "c:stones" } }, "pattern": [ @@ -22,6 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:caloric_flux_emitter" + "id": "theurgy:caloric_flux_emitter" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/copper_wire.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/copper_wire.json index efccbf7c9..9becd6ed3 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/copper_wire.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/copper_wire.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "c": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "m": { "item": "theurgy:mercury_shard" @@ -14,6 +14,6 @@ ], "result": { "count": 10, - "item": "theurgy:copper_wire" + "id": "theurgy:copper_wire" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/digestion_vat.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/digestion_vat.json index 32cfa2a67..8356333ae 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/digestion_vat.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/digestion_vat.json @@ -3,16 +3,16 @@ "category": "misc", "key": { "S": { - "tag": "forge:sandstone" + "tag": "c:sandstone/blocks" }, "g": { - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, "p": { "item": "minecraft:decorated_pot" }, "s": { - "tag": "forge:gems/sal_ammoniac" + "tag": "c:gems/sal_ammoniac" } }, "pattern": [ @@ -22,6 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:digestion_vat" + "id": "theurgy:digestion_vat" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/distiller.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/distiller.json index f4fe1414c..dab263152 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/distiller.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/distiller.json @@ -3,13 +3,13 @@ "category": "misc", "key": { "C": { - "tag": "forge:storage_blocks/copper" + "tag": "c:storage_blocks/copper" }, "I": { - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" }, "S": { - "tag": "forge:stone" + "tag": "c:stones" } }, "pattern": [ @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:distiller" + "id": "theurgy:distiller" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t1.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t1.json index 5a990a587..c848d43fe 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t1.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t1.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "G": { - "tag": "forge:glass" + "tag": "c:glass_blocks" }, "R": { - "tag": "forge:rods/wooden" + "tag": "c:rods/wooden" } }, "pattern": [ @@ -16,14 +16,6 @@ ], "result": { "count": 1, - "item": "theurgy:divination_rod_t1", - "nbt": { - "theurgy:divination.setting.allowed_blocks_tag": "theurgy:divination_rod_t1_allowed_blocks", - "theurgy:divination.setting.disallowed_blocks_tag": "theurgy:divination_rod_t1_disallowed_blocks", - "theurgy:divination.setting.duration": 40, - "theurgy:divination.setting.max_damage": 8, - "theurgy:divination.setting.range": 96, - "theurgy:divination.setting.tier": "minecraft:stone" - } + "id": "theurgy:divination_rod_t1" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t2.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t2.json index 644186af1..12f219f41 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t2.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t2.json @@ -3,16 +3,16 @@ "category": "misc", "key": { "A": { - "tag": "forge:gems/amethyst" + "tag": "c:gems/amethyst" }, "G": { - "tag": "forge:glass" + "tag": "c:glass_blocks" }, "M": { - "tag": "forge:nuggets/gold" + "tag": "c:nuggets/gold" }, "R": { - "tag": "forge:rods/wooden" + "tag": "c:rods/wooden" } }, "pattern": [ @@ -22,14 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:divination_rod_t2", - "nbt": { - "theurgy:divination.setting.allowed_blocks_tag": "theurgy:divination_rod_t2_allowed_blocks", - "theurgy:divination.setting.disallowed_blocks_tag": "theurgy:divination_rod_t2_disallowed_blocks", - "theurgy:divination.setting.duration": 40, - "theurgy:divination.setting.max_damage": 16, - "theurgy:divination.setting.range": 96, - "theurgy:divination.setting.tier": "minecraft:iron" - } + "id": "theurgy:divination_rod_t2" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t3.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t3.json index 3e40a589a..3e34a8f11 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t3.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t3.json @@ -3,16 +3,16 @@ "category": "misc", "key": { "A": { - "tag": "forge:gems/amethyst" + "tag": "c:gems/amethyst" }, "D": { - "tag": "forge:gems/diamond" + "tag": "c:gems/diamond" }, "G": { - "tag": "forge:glass" + "tag": "c:glass_blocks" }, "Q": { - "tag": "forge:gems/quartz" + "tag": "c:gems/quartz" } }, "pattern": [ @@ -22,14 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:divination_rod_t3", - "nbt": { - "theurgy:divination.setting.allowed_blocks_tag": "theurgy:divination_rod_t3_allowed_blocks", - "theurgy:divination.setting.disallowed_blocks_tag": "theurgy:divination_rod_t3_disallowed_blocks", - "theurgy:divination.setting.duration": 40, - "theurgy:divination.setting.max_damage": 32, - "theurgy:divination.setting.range": 96, - "theurgy:divination.setting.tier": "minecraft:diamond" - } + "id": "theurgy:divination_rod_t3" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t4.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t4.json index 6afdd8962..c55159492 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t4.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/divination_rod_t4.json @@ -3,16 +3,16 @@ "category": "misc", "key": { "A": { - "tag": "forge:gems/amethyst" + "tag": "c:gems/amethyst" }, "G": { - "tag": "forge:glass" + "tag": "c:glass_blocks" }, "M": { - "tag": "forge:ores/netherite_scrap" + "tag": "c:ores/netherite_scrap" }, "R": { - "tag": "forge:rods/blaze" + "tag": "c:rods/blaze" } }, "pattern": [ @@ -22,14 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:divination_rod_t4", - "nbt": { - "theurgy:divination.setting.allowed_blocks_tag": "theurgy:divination_rod_t4_allowed_blocks", - "theurgy:divination.setting.disallowed_blocks_tag": "theurgy:divination_rod_t4_disallowed_blocks", - "theurgy:divination.setting.duration": 40, - "theurgy:divination.setting.max_damage": 128, - "theurgy:divination.setting.range": 96, - "theurgy:divination.setting.tier": "minecraft:netherite" - } + "id": "theurgy:divination_rod_t4" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/fermentation_vat.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/fermentation_vat.json index 3697930d8..3c443f383 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/fermentation_vat.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/fermentation_vat.json @@ -3,13 +3,13 @@ "category": "misc", "key": { "C": { - "tag": "forge:storage_blocks/copper" + "tag": "c:storage_blocks/copper" }, "b": { - "tag": "forge:barrels/wooden" + "tag": "c:barrels/wooden" }, "c": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "s": { "tag": "theurgy:alchemical_sulfurs" @@ -22,6 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:fermentation_vat" + "id": "theurgy:fermentation_vat" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator.json index 49873d5a9..b3ed2f19b 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator.json @@ -3,16 +3,16 @@ "category": "misc", "key": { "C": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "G": { - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, "P": { "tag": "minecraft:planks" }, "S": { - "tag": "forge:stone" + "tag": "c:stones" } }, "pattern": [ @@ -22,6 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:incubator" + "id": "theurgy:incubator" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_mercury_vessel.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_mercury_vessel.json index 51d8b47aa..1ab2b4980 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_mercury_vessel.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_mercury_vessel.json @@ -6,10 +6,10 @@ "tag": "theurgy:alchemical_mercuries" }, "S": { - "tag": "forge:stone" + "tag": "c:stones" }, "c": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" } }, "pattern": [ @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:incubator_mercury_vessel" + "id": "theurgy:incubator_mercury_vessel" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_salt_vessel.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_salt_vessel.json index acd855597..27ac53b98 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_salt_vessel.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_salt_vessel.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "S": { - "tag": "forge:stone" + "tag": "c:stones" }, "c": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "s": { "tag": "theurgy:alchemical_salts" @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:incubator_salt_vessel" + "id": "theurgy:incubator_salt_vessel" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_sulfur_vessel.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_sulfur_vessel.json index 298292580..3a8349134 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_sulfur_vessel.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/incubator_sulfur_vessel.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "S": { - "tag": "forge:stone" + "tag": "c:stones" }, "c": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "s": { "tag": "theurgy:alchemical_sulfurs" @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:incubator_sulfur_vessel" + "id": "theurgy:incubator_sulfur_vessel" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/liquefaction_cauldron.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/liquefaction_cauldron.json index d4a3cc56a..e0786e9f2 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/liquefaction_cauldron.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/liquefaction_cauldron.json @@ -6,10 +6,10 @@ "item": "minecraft:cauldron" }, "C": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "S": { - "tag": "forge:stone" + "tag": "c:stones" } }, "pattern": [ @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:liquefaction_cauldron" + "id": "theurgy:liquefaction_cauldron" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_connector_node.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_connector_node.json index 455e92863..db544cb99 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_connector_node.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_connector_node.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "b": { - "tag": "forge:ingots/brick" + "tag": "c:bricks/normal" }, "i": { - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" }, "m": { "item": "theurgy:mercury_shard" @@ -19,6 +19,6 @@ ], "result": { "count": 3, - "item": "theurgy:logistics_connector_node" + "id": "theurgy:logistics_connector_node" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_item_extractor.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_item_extractor.json index d3e557c84..c9704f2c8 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_item_extractor.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_item_extractor.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "c": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "m": { "item": "theurgy:mercury_shard" @@ -15,6 +15,6 @@ ], "result": { "count": 1, - "item": "theurgy:logistics_item_extractor" + "id": "theurgy:logistics_item_extractor" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_item_inserter.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_item_inserter.json index ffe83ef79..89f826694 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_item_inserter.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/logistics_item_inserter.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "c": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "m": { "item": "theurgy:mercury_shard" @@ -15,6 +15,6 @@ ], "result": { "count": 1, - "item": "theurgy:logistics_item_inserter" + "id": "theurgy:logistics_item_inserter" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/mercurial_wand.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/mercurial_wand.json index a756aa2b4..16d472ac5 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/mercurial_wand.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/mercurial_wand.json @@ -3,13 +3,13 @@ "category": "misc", "key": { "c": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "m": { "item": "theurgy:mercury_shard" }, "s": { - "tag": "forge:rods/wooden" + "tag": "c:rods/wooden" } }, "pattern": [ @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:mercurial_wand" + "id": "theurgy:mercurial_wand" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/mercury_catalyst.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/mercury_catalyst.json index f857425fa..b2dffcb0e 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/mercury_catalyst.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/mercury_catalyst.json @@ -3,13 +3,13 @@ "category": "misc", "key": { "Q": { - "tag": "forge:storage_blocks/quartz" + "item": "minecraft:quartz_block" }, "g": { - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, "i": { - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" }, "m": { "tag": "theurgy:alchemical_mercuries" @@ -22,6 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:mercury_catalyst" + "id": "theurgy:mercury_catalyst" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/pyromantic_brazier.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/pyromantic_brazier.json index 2f544fc9b..05df8ef73 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/pyromantic_brazier.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/pyromantic_brazier.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "C": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "S": { - "tag": "forge:stone" + "tag": "c:stones" } }, "pattern": [ @@ -16,6 +16,6 @@ ], "result": { "count": 1, - "item": "theurgy:pyromantic_brazier" + "id": "theurgy:pyromantic_brazier" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_result_pedestal.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_result_pedestal.json index ee9342f74..d0c10efa2 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_result_pedestal.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_result_pedestal.json @@ -6,7 +6,7 @@ "tag": "theurgy:alchemical_sulfurs" }, "g": { - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, "s": { "item": "minecraft:blackstone" @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:reformation_result_pedestal" + "id": "theurgy:reformation_result_pedestal" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_source_pedestal.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_source_pedestal.json index 441b4edf8..f93868947 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_source_pedestal.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_source_pedestal.json @@ -6,7 +6,7 @@ "tag": "theurgy:alchemical_sulfurs" }, "i": { - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" }, "s": { "item": "minecraft:blackstone" @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:reformation_source_pedestal" + "id": "theurgy:reformation_source_pedestal" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_target_pedestal.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_target_pedestal.json index a6384c0c2..761b3b34c 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_target_pedestal.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/reformation_target_pedestal.json @@ -6,10 +6,10 @@ "tag": "theurgy:alchemical_sulfurs" }, "c": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "d": { - "tag": "forge:gems/diamond" + "tag": "c:gems/diamond" }, "s": { "item": "minecraft:blackstone" @@ -22,6 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:reformation_target_pedestal" + "id": "theurgy:reformation_target_pedestal" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sal_ammoniac_accumulator.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sal_ammoniac_accumulator.json index 2e617d50a..01f9124b7 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sal_ammoniac_accumulator.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sal_ammoniac_accumulator.json @@ -3,13 +3,13 @@ "category": "misc", "key": { "I": { - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" }, "R": { - "tag": "forge:rods/wooden" + "tag": "c:rods/wooden" }, "S": { - "tag": "forge:stone" + "tag": "c:stones" } }, "pattern": [ @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:sal_ammoniac_accumulator" + "id": "theurgy:sal_ammoniac_accumulator" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sal_ammoniac_tank.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sal_ammoniac_tank.json index c24e8e8d9..21ee9347a 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sal_ammoniac_tank.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sal_ammoniac_tank.json @@ -3,13 +3,13 @@ "category": "misc", "key": { "C": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "I": { - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" }, "R": { - "tag": "forge:rods/wooden" + "tag": "c:rods/wooden" } }, "pattern": [ @@ -19,6 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:sal_ammoniac_tank" + "id": "theurgy:sal_ammoniac_tank" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_abundant.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_abundant.json index 38c20588d..4e8568b98 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_abundant.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "G": { - "tag": "forge:glass" + "tag": "c:glass_blocks" }, "R": { - "tag": "forge:rods/wooden" + "tag": "c:rods/wooden" }, "S": { "tag": "theurgy:alchemical_sulfurs/abundant" @@ -19,14 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:sulfur_attuned_divination_rod_abundant", - "nbt": { - "theurgy:divination.setting.allowed_blocks_tag": "theurgy:divination_rod_t1_allowed_blocks", - "theurgy:divination.setting.disallowed_blocks_tag": "theurgy:divination_rod_t1_disallowed_blocks", - "theurgy:divination.setting.duration": 40, - "theurgy:divination.setting.max_damage": 16, - "theurgy:divination.setting.range": 96, - "theurgy:divination.setting.tier": "minecraft:stone" - } + "id": "theurgy:sulfur_attuned_divination_rod_abundant" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_common.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_common.json index 455fcd48d..b490e28ca 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_common.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_common.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "G": { - "tag": "forge:glass" + "tag": "c:glass_blocks" }, "R": { - "tag": "forge:rods/wooden" + "tag": "c:rods/wooden" }, "S": { "tag": "theurgy:alchemical_sulfurs/common" @@ -19,14 +19,6 @@ ], "result": { "count": 1, - "item": "theurgy:sulfur_attuned_divination_rod_common", - "nbt": { - "theurgy:divination.setting.allowed_blocks_tag": "theurgy:divination_rod_t1_allowed_blocks", - "theurgy:divination.setting.disallowed_blocks_tag": "theurgy:divination_rod_t1_disallowed_blocks", - "theurgy:divination.setting.duration": 40, - "theurgy:divination.setting.max_damage": 16, - "theurgy:divination.setting.range": 96, - "theurgy:divination.setting.tier": "minecraft:stone" - } + "id": "theurgy:sulfur_attuned_divination_rod_common" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_precious.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_precious.json index 800246183..0a434c553 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_precious.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_precious.json @@ -3,13 +3,13 @@ "category": "misc", "key": { "A": { - "tag": "forge:gems/amethyst" + "tag": "c:gems/amethyst" }, "D": { - "tag": "forge:gems/diamond" + "tag": "c:gems/diamond" }, "G": { - "tag": "forge:glass" + "tag": "c:glass_blocks" }, "S": { "tag": "theurgy:alchemical_sulfurs/precious" @@ -22,14 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:sulfur_attuned_divination_rod_precious", - "nbt": { - "theurgy:divination.setting.allowed_blocks_tag": "theurgy:divination_rod_t3_allowed_blocks", - "theurgy:divination.setting.disallowed_blocks_tag": "theurgy:divination_rod_t3_disallowed_blocks", - "theurgy:divination.setting.duration": 40, - "theurgy:divination.setting.max_damage": 32, - "theurgy:divination.setting.range": 96, - "theurgy:divination.setting.tier": "minecraft:stone" - } + "id": "theurgy:sulfur_attuned_divination_rod_precious" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_rare.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_rare.json index 8f3d55028..12bf7d25f 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_rare.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfur_attuned_divination_rod_rare.json @@ -3,13 +3,13 @@ "category": "misc", "key": { "A": { - "tag": "forge:gems/amethyst" + "tag": "c:gems/amethyst" }, "G": { - "tag": "forge:glass" + "tag": "c:glass_blocks" }, "R": { - "tag": "forge:rods/wooden" + "tag": "c:rods/wooden" }, "S": { "tag": "theurgy:alchemical_sulfurs/rare" @@ -22,14 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:sulfur_attuned_divination_rod_rare", - "nbt": { - "theurgy:divination.setting.allowed_blocks_tag": "theurgy:divination_rod_t2_allowed_blocks", - "theurgy:divination.setting.disallowed_blocks_tag": "theurgy:divination_rod_t2_disallowed_blocks", - "theurgy:divination.setting.duration": 40, - "theurgy:divination.setting.max_damage": 32, - "theurgy:divination.setting.range": 96, - "theurgy:divination.setting.tier": "minecraft:stone" - } + "id": "theurgy:sulfur_attuned_divination_rod_rare" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfuric_flux_emitter.json b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfuric_flux_emitter.json index cb6850bd8..5deea5442 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfuric_flux_emitter.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shaped/sulfuric_flux_emitter.json @@ -6,13 +6,13 @@ "tag": "theurgy:alchemical_sulfurs" }, "a": { - "tag": "forge:gems/sal_ammoniac" + "tag": "c:gems/sal_ammoniac" }, "g": { - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, "s": { - "tag": "forge:stone" + "tag": "c:stones" } }, "pattern": [ @@ -22,6 +22,6 @@ ], "result": { "count": 1, - "item": "theurgy:sulfuric_flux_emitter" + "id": "theurgy:sulfuric_flux_emitter" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shapeless/logistics_item_extractor_from_inserter.json b/src/generated/resources/data/theurgy/recipes/crafting/shapeless/logistics_item_extractor_from_inserter.json index 009683eaa..6f6c7ee64 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shapeless/logistics_item_extractor_from_inserter.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shapeless/logistics_item_extractor_from_inserter.json @@ -8,6 +8,6 @@ ], "result": { "count": 1, - "item": "theurgy:logistics_item_extractor" + "id": "theurgy:logistics_item_extractor" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shapeless/logistics_item_inserter_from_extractor.json b/src/generated/resources/data/theurgy/recipes/crafting/shapeless/logistics_item_inserter_from_extractor.json index 668f8c9a8..6bb95f179 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shapeless/logistics_item_inserter_from_extractor.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shapeless/logistics_item_inserter_from_extractor.json @@ -8,6 +8,6 @@ ], "result": { "count": 1, - "item": "theurgy:logistics_item_inserter" + "id": "theurgy:logistics_item_inserter" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shapeless/sal_ammoniac_crystal_from_sal_ammoniac_bucket.json b/src/generated/resources/data/theurgy/recipes/crafting/shapeless/sal_ammoniac_crystal_from_sal_ammoniac_bucket.json index 44c803f1e..b8a5a08cf 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shapeless/sal_ammoniac_crystal_from_sal_ammoniac_bucket.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shapeless/sal_ammoniac_crystal_from_sal_ammoniac_bucket.json @@ -8,6 +8,6 @@ ], "result": { "count": 1, - "item": "theurgy:sal_ammoniac_crystal" + "id": "theurgy:sal_ammoniac_crystal" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/crafting/shapeless/the_hermetica.json b/src/generated/resources/data/theurgy/recipes/crafting/shapeless/the_hermetica.json index d872d1de7..0fb6cf85a 100644 --- a/src/generated/resources/data/theurgy/recipes/crafting/shapeless/the_hermetica.json +++ b/src/generated/resources/data/theurgy/recipes/crafting/shapeless/the_hermetica.json @@ -6,17 +6,17 @@ "item": "minecraft:book" }, { - "tag": "forge:sand" + "tag": "c:sands" }, { - "tag": "forge:sand" + "tag": "c:sands" } ], "result": { - "count": 1, - "item": "modonomicon:modonomicon", - "nbt": { + "components": { "modonomicon:book_id": "theurgy:the_hermetica" - } + }, + "count": 1, + "id": "modonomicon:modonomicon" } } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_abundant_from_common.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_abundant_from_common.json index 59b0353b1..e4e55f752 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_abundant_from_common.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_abundant_from_common.json @@ -2,7 +2,7 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 10, "ingredients": [ @@ -12,8 +12,9 @@ } ], "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_gems_abundant" + "id": "theurgy:alchemical_sulfur_gems_abundant" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_abundant.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_abundant.json index aecf0ee9b..befdb37b1 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_abundant.json @@ -2,12 +2,12 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 10, "ingredients": [ { - "count": 4, + "count": 1, "item": "theurgy:alchemical_sulfur_gems_abundant" }, { @@ -16,8 +16,9 @@ } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_common" + "id": "theurgy:alchemical_sulfur_gems_common" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_rare.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_rare.json index f2e1b66a2..23b7eea6e 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_rare.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_common_from_rare.json @@ -2,7 +2,7 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 15, "ingredients": [ @@ -12,8 +12,9 @@ } ], "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_gems_common" + "id": "theurgy:alchemical_sulfur_gems_common" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_precious_from_rare.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_precious_from_rare.json index 6fa0d0fea..e1eedb498 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_precious_from_rare.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_precious_from_rare.json @@ -2,12 +2,12 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 50, "ingredients": [ { - "count": 4, + "count": 1, "item": "theurgy:alchemical_sulfur_gems_rare" }, { @@ -16,8 +16,9 @@ } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_precious" + "id": "theurgy:alchemical_sulfur_gems_precious" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_common.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_common.json index 437cb95e4..dd6f485a1 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_common.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_common.json @@ -2,12 +2,12 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 15, "ingredients": [ { - "count": 4, + "count": 1, "item": "theurgy:alchemical_sulfur_gems_common" }, { @@ -16,8 +16,9 @@ } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_rare" + "id": "theurgy:alchemical_sulfur_gems_rare" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_precious.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_precious.json index dd52a88a2..e0e5dbd35 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_precious.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_gems_rare_from_precious.json @@ -2,7 +2,7 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 50, "ingredients": [ @@ -12,8 +12,9 @@ } ], "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_gems_rare" + "id": "theurgy:alchemical_sulfur_gems_rare" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_abundant_from_common.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_abundant_from_common.json index 7401d9346..1825e2c20 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_abundant_from_common.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_abundant_from_common.json @@ -2,7 +2,7 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 10, "ingredients": [ @@ -12,8 +12,9 @@ } ], "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_metals_abundant" + "id": "theurgy:alchemical_sulfur_metals_abundant" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_abundant.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_abundant.json index 7745fb01a..2c67ba787 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_abundant.json @@ -2,12 +2,12 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 10, "ingredients": [ { - "count": 4, + "count": 1, "item": "theurgy:alchemical_sulfur_metals_abundant" }, { @@ -16,8 +16,9 @@ } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_common" + "id": "theurgy:alchemical_sulfur_metals_common" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_rare.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_rare.json index 3a929ada6..756715651 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_rare.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_common_from_rare.json @@ -2,7 +2,7 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 15, "ingredients": [ @@ -12,8 +12,9 @@ } ], "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_metals_common" + "id": "theurgy:alchemical_sulfur_metals_common" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_precious_from_rare.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_precious_from_rare.json index 15dbed5f5..0f29271f3 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_precious_from_rare.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_precious_from_rare.json @@ -2,12 +2,12 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 50, "ingredients": [ { - "count": 4, + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" }, { @@ -16,8 +16,9 @@ } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_precious" + "id": "theurgy:alchemical_sulfur_metals_precious" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_common.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_common.json index a219d8208..919eba493 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_common.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_common.json @@ -2,12 +2,12 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 15, "ingredients": [ { - "count": 4, + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" }, { @@ -16,8 +16,9 @@ } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_rare" + "id": "theurgy:alchemical_sulfur_metals_rare" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_precious.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_precious.json index f43826403..b8a351832 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_precious.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_metals_rare_from_precious.json @@ -2,7 +2,7 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 50, "ingredients": [ @@ -12,8 +12,9 @@ } ], "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_metals_rare" + "id": "theurgy:alchemical_sulfur_metals_rare" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_abundant_from_common.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_abundant_from_common.json index 80e76f8da..f7dcf3d2e 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_abundant_from_common.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_abundant_from_common.json @@ -2,7 +2,7 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 10, "ingredients": [ @@ -12,8 +12,9 @@ } ], "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_other_minerals_abundant" + "id": "theurgy:alchemical_sulfur_other_minerals_abundant" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_abundant.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_abundant.json index 5c4204b89..2c7efbb47 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_abundant.json @@ -2,12 +2,12 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 10, "ingredients": [ { - "count": 4, + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_abundant" }, { @@ -16,8 +16,9 @@ } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_common" + "id": "theurgy:alchemical_sulfur_other_minerals_common" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_rare.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_rare.json index bbbf9da0c..5da9b31ca 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_rare.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_common_from_rare.json @@ -2,7 +2,7 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 15, "ingredients": [ @@ -12,8 +12,9 @@ } ], "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_other_minerals_common" + "id": "theurgy:alchemical_sulfur_other_minerals_common" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_precious_from_rare.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_precious_from_rare.json index fdacd3a03..563696b30 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_precious_from_rare.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_precious_from_rare.json @@ -2,12 +2,12 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 50, "ingredients": [ { - "count": 4, + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_rare" }, { @@ -16,8 +16,9 @@ } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_precious" + "id": "theurgy:alchemical_sulfur_other_minerals_precious" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_common.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_common.json index 9e2059f02..32ba048db 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_common.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_common.json @@ -2,12 +2,12 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 15, "ingredients": [ { - "count": 4, + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_common" }, { @@ -16,8 +16,9 @@ } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_rare" + "id": "theurgy:alchemical_sulfur_other_minerals_rare" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_precious.json b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_precious.json index e6f6f0c8c..1695ec041 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_precious.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/alchemical_sulfur_other_minerals_rare_from_precious.json @@ -2,7 +2,7 @@ "type": "theurgy:digestion", "category": "misc", "fluid": { - "tag": "theurgy:sal_ammoniac" + "fluid": "theurgy:sal_ammoniac" }, "fluidAmount": 50, "ingredients": [ @@ -12,8 +12,9 @@ } ], "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_other_minerals_rare" + "id": "theurgy:alchemical_sulfur_other_minerals_rare" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/digestion/purified_gold.json b/src/generated/resources/data/theurgy/recipes/digestion/purified_gold.json index 03baf966b..4a1ea75d4 100644 --- a/src/generated/resources/data/theurgy/recipes/digestion/purified_gold.json +++ b/src/generated/resources/data/theurgy/recipes/digestion/purified_gold.json @@ -1,10 +1,12 @@ { - "neoforge:conditions": [ + "type": "theurgy:digestion", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" } }, { @@ -15,16 +17,14 @@ } } ], - "type": "theurgy:digestion", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 1000, "ingredients": [ { "count": 1, - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, { "count": 1, @@ -32,8 +32,9 @@ } ], "result": { + "type": "theurgy:item", "count": 20, - "item": "theurgy:purified_gold" + "id": "theurgy:purified_gold" }, "time": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/beef.json b/src/generated/resources/data/theurgy/recipes/distillation/beef.json index 9dea49f55..aaff98e10 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/beef.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/beef.json @@ -6,8 +6,9 @@ }, "ingredientCount": 2, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/bread.json b/src/generated/resources/data/theurgy/recipes/distillation/bread.json index 1f3e85a61..e34668982 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/bread.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/bread.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/chicken.json b/src/generated/resources/data/theurgy/recipes/distillation/chicken.json index 7116eb386..eae89977b 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/chicken.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/chicken.json @@ -6,8 +6,9 @@ }, "ingredientCount": 2, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/cobblestone.json b/src/generated/resources/data/theurgy/recipes/distillation/cobblestones.json similarity index 65% rename from src/generated/resources/data/theurgy/recipes/distillation/cobblestone.json rename to src/generated/resources/data/theurgy/recipes/distillation/cobblestones.json index 6f29496bb..427ac8e7f 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/cobblestone.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/cobblestones.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:cobblestone" + "tag": "c:cobblestones" } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { - "tag": "forge:cobblestone" + "tag": "c:cobblestones" }, "ingredientCount": 10, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/cod.json b/src/generated/resources/data/theurgy/recipes/distillation/cod.json index 14d9bc960..641248b74 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/cod.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/cod.json @@ -6,8 +6,9 @@ }, "ingredientCount": 2, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/cooked_beef.json b/src/generated/resources/data/theurgy/recipes/distillation/cooked_beef.json index 4d99ed1b1..34c6e6b43 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/cooked_beef.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/cooked_beef.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/cooked_chicken.json b/src/generated/resources/data/theurgy/recipes/distillation/cooked_chicken.json index 898acafd5..b01ab7552 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/cooked_chicken.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/cooked_chicken.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/cooked_cod.json b/src/generated/resources/data/theurgy/recipes/distillation/cooked_cod.json index 74f5186fc..100a1b1b0 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/cooked_cod.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/cooked_cod.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/cooked_porkchop.json b/src/generated/resources/data/theurgy/recipes/distillation/cooked_porkchop.json index 59e10ccf4..f8783f027 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/cooked_porkchop.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/cooked_porkchop.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/cooked_rabbit.json b/src/generated/resources/data/theurgy/recipes/distillation/cooked_rabbit.json index be622e9e7..1a39d18a8 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/cooked_rabbit.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/cooked_rabbit.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/cooked_salmon.json b/src/generated/resources/data/theurgy/recipes/distillation/cooked_salmon.json index 4667692d8..0c5ba3523 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/cooked_salmon.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/cooked_salmon.json @@ -6,8 +6,9 @@ }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/crops.json b/src/generated/resources/data/theurgy/recipes/distillation/crops.json index 2e8b431f9..98d1be3ac 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/crops.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/crops.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { - "tag": "forge:crops" + "tag": "c:crops" }, "ingredientCount": 3, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/dirt.json b/src/generated/resources/data/theurgy/recipes/distillation/dirt.json index 775f1efc4..b39887ede 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/dirt.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/dirt.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "minecraft:dirt" }, "ingredientCount": 25, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/dyes.json b/src/generated/resources/data/theurgy/recipes/distillation/dyes.json index 151e23acc..190166e90 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/dyes.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/dyes.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:dyes" + "tag": "c:dyes" } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { - "tag": "forge:dyes" + "tag": "c:dyes" }, "ingredientCount": 3, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/flowers.json b/src/generated/resources/data/theurgy/recipes/distillation/flowers.json index 0af3cd42f..92bd9f3ab 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/flowers.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/flowers.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "minecraft:flowers" }, "ingredientCount": 3, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.high.json b/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.high.json index cc7f3da70..4e8720e46 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.high.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.high.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:gems/mercury/high" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 10, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.low.json b/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.low.json index 72008477a..7bb825ca8 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.low.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.low.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:gems/mercury/low" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.medium.json b/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.medium.json index 42e1792ef..6608e7eeb 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.medium.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/gems.mercury.medium.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:gems/mercury/medium" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/sandstone.json b/src/generated/resources/data/theurgy/recipes/distillation/glass_blocks.json similarity index 65% rename from src/generated/resources/data/theurgy/recipes/distillation/sandstone.json rename to src/generated/resources/data/theurgy/recipes/distillation/glass_blocks.json index 3dd74bf29..8aaee71d9 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/sandstone.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/glass_blocks.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sandstone" + "tag": "c:glass_blocks" } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { - "tag": "forge:sandstone" + "tag": "c:glass_blocks" }, "ingredientCount": 10, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/sand.json b/src/generated/resources/data/theurgy/recipes/distillation/gravels.json similarity index 67% rename from src/generated/resources/data/theurgy/recipes/distillation/sand.json rename to src/generated/resources/data/theurgy/recipes/distillation/gravels.json index e4a414ce5..5ab55f4eb 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/sand.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/gravels.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sand" + "tag": "c:gravels" } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { - "tag": "forge:sand" + "tag": "c:gravels" }, "ingredientCount": 15, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/leaves.json b/src/generated/resources/data/theurgy/recipes/distillation/leaves.json index b8bcd5e8e..60c87d719 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/leaves.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/leaves.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "minecraft:leaves" }, "ingredientCount": 5, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/logs.json b/src/generated/resources/data/theurgy/recipes/distillation/logs.json index 3adb036f4..45601abec 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/logs.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/logs.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "minecraft:logs" }, "ingredientCount": 2, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.high.json b/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.high.json index c9952ec0a..c12722c5c 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.high.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.high.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:metals/mercury/high" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 10, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.low.json b/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.low.json index b4c5b826e..d65d2db05 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.low.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.low.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:metals/mercury/low" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.medium.json b/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.medium.json index 280bef9ad..9355b273f 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.medium.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/metals.mercury.medium.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:metals/mercury/medium" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.high.json b/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.high.json index 350790d11..c5f82253e 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.high.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.high.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:ores/mercury/high" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 50, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.low.json b/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.low.json index 99ea9de08..2eb1f2f7b 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.low.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.low.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:ores/mercury/low" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.medium.json b/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.medium.json index abced835a..baf4ac7dc 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.medium.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/ores.mercury.medium.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:ores/mercury/medium" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 25, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.high.json b/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.high.json index e8ba80b6f..9c1dc4b1b 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.high.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.high.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:other_minerals/mercury/high" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 10, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.low.json b/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.low.json index f18b54ebc..58bc80ba6 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.low.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.low.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:other_minerals/mercury/low" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.medium.json b/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.medium.json index 23257e5ed..d937442d8 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.medium.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/other_minerals.mercury.medium.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:other_minerals/mercury/medium" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/planks.json b/src/generated/resources/data/theurgy/recipes/distillation/planks.json index 1b5da1421..6b716e621 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/planks.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/planks.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "minecraft:planks" }, "ingredientCount": 8, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/porkchop.json b/src/generated/resources/data/theurgy/recipes/distillation/porkchop.json index 252c11ebe..4bf623ba2 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/porkchop.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/porkchop.json @@ -6,8 +6,9 @@ }, "ingredientCount": 2, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/rabbit.json b/src/generated/resources/data/theurgy/recipes/distillation/rabbit.json index 148912c87..37b609546 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/rabbit.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/rabbit.json @@ -6,8 +6,9 @@ }, "ingredientCount": 2, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.high.json b/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.high.json index 19cac5a55..7e2ca7578 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.high.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.high.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:raw_materials/mercury/high" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 10, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.low.json b/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.low.json index 5dc4287e5..b606cf21d 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.low.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.low.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:raw_materials/mercury/low" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.medium.json b/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.medium.json index 04a9c2465..610ffc7aa 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.medium.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/raw_materials.mercury.medium.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "theurgy:raw_materials/mercury/medium" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/salmon.json b/src/generated/resources/data/theurgy/recipes/distillation/salmon.json index a40f909d3..6ef342523 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/salmon.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/salmon.json @@ -6,8 +6,9 @@ }, "ingredientCount": 2, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/gravel.json b/src/generated/resources/data/theurgy/recipes/distillation/sands.json similarity index 67% rename from src/generated/resources/data/theurgy/recipes/distillation/gravel.json rename to src/generated/resources/data/theurgy/recipes/distillation/sands.json index f9cb250d5..9bc1ee6d7 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/gravel.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/sands.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gravel" + "tag": "c:sands" } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { - "tag": "forge:gravel" + "tag": "c:sands" }, "ingredientCount": 15, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/stone.json b/src/generated/resources/data/theurgy/recipes/distillation/sandstone.blocks.json similarity index 64% rename from src/generated/resources/data/theurgy/recipes/distillation/stone.json rename to src/generated/resources/data/theurgy/recipes/distillation/sandstone.blocks.json index e138e1781..6b5aa9bf4 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/stone.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/sandstone.blocks.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:stone" + "tag": "c:sandstone/blocks" } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { - "tag": "forge:stone" + "tag": "c:sandstone/blocks" }, "ingredientCount": 10, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/saplings.json b/src/generated/resources/data/theurgy/recipes/distillation/saplings.json index 8d92417f4..fe7108998 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/saplings.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/saplings.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "minecraft:saplings" }, "ingredientCount": 3, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/stone_bricks.json b/src/generated/resources/data/theurgy/recipes/distillation/stone_bricks.json index 6348a604d..dafae87f9 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/stone_bricks.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/stone_bricks.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "minecraft:stone_bricks" }, "ingredientCount": 10, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/glass.json b/src/generated/resources/data/theurgy/recipes/distillation/stones.json similarity index 67% rename from src/generated/resources/data/theurgy/recipes/distillation/glass.json rename to src/generated/resources/data/theurgy/recipes/distillation/stones.json index a3988fd21..4cac2d7eb 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/glass.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/stones.json @@ -1,22 +1,23 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:glass" + "tag": "c:stones" } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { - "tag": "forge:glass" + "tag": "c:stones" }, "ingredientCount": 10, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/distillation/wool.json b/src/generated/resources/data/theurgy/recipes/distillation/wool.json index 0a5505c5e..7a2b23a6d 100644 --- a/src/generated/resources/data/theurgy/recipes/distillation/wool.json +++ b/src/generated/resources/data/theurgy/recipes/distillation/wool.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:distillation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,14 @@ } } ], - "type": "theurgy:distillation", - "category": "misc", "ingredient": { "tag": "minecraft:wool" }, "ingredientCount": 1, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:mercury_shard" + "id": "theurgy:mercury_shard" }, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_crops.json index 7715c9ed6..fe030a5bb 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 125, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/gems/abundant" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_abundant" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_sugars.json similarity index 76% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_sugars.json index 592cbb393..b4175ac03 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_abundant_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 125, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/gems/abundant" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_abundant" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_crops.json index 84142de74..b0e5c4b70 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 250, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/gems/common" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_common" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_sugars.json similarity index 76% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_sugars.json index e06314c8b..034e9fdb7 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_common_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 250, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/gems/common" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_common" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_crops.json index d18a68ed5..4ab5451e3 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 1000, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/gems/precious" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_precious" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_sugars.json similarity index 76% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_sugars.json index 5ebba9843..bcc223390 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_precious_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 1000, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/gems/precious" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_precious" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_crops.json index d863b6819..c2d461982 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 500, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/gems/rare" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_rare" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_sugars.json similarity index 76% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_sugars.json index e909fdc06..63e77e467 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_gems_rare_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 500, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/gems/rare" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_rare" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_crops.json index 9049f3c06..a08e8a4f4 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 125, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/metals/abundant" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_abundant" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_sugars.json similarity index 75% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_sugars.json index 9cd204082..d1c66d3d0 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_abundant_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 125, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/metals/abundant" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_abundant" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_crops.json index b6f63a41a..bb661ada0 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 250, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/metals/common" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_common" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_sugars.json similarity index 76% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_sugars.json index 863b5bd5b..83b209c83 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_common_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 250, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/metals/common" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_common" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_crops.json index 96068525c..aa63d8c4e 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 1000, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/metals/precious" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_precious" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_sugars.json similarity index 76% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_sugars.json index 1814f76ac..8466c9542 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_precious_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 1000, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/metals/precious" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_precious" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_crops.json index a56aaff42..b62f221a8 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 500, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/metals/rare" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_rare" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_sugars.json similarity index 76% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_sugars.json index dbcce6cb4..273d781e2 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_metals_rare_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 500, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/metals/rare" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_rare" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_crops.json index 8689a9243..a00c72357 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 125, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/other_minerals/abundant" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_abundant" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_sugars.json similarity index 75% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_sugars.json index ad7302b37..d6c6f0a80 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_abundant_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 125, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/other_minerals/abundant" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_abundant" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_crops.json index 9cc8ddc1a..242f4978f 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 250, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/other_minerals/common" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_common" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_sugars.json similarity index 75% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_sugars.json index f7f170491..7ed86c41d 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_common_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 250, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/other_minerals/common" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_common" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_crops.json index 3b994dacb..b5f0ef4aa 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 1000, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/other_minerals/precious" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_precious" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_sugars.json similarity index 75% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_sugars.json index 746fcce7a..c6ec34637 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_precious_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 1000, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/other_minerals/precious" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_precious" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_crops.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_crops.json index f60107de1..9db93c603 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_crops.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_crops.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:crops" + "tag": "c:crops" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 500, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/other_minerals/rare" }, { - "tag": "forge:crops" + "tag": "c:crops" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_rare" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_sugar.json b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_sugars.json similarity index 75% rename from src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_sugar.json rename to src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_sugars.json index a9d5880ae..9a2570949 100644 --- a/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_sugar.json +++ b/src/generated/resources/data/theurgy/recipes/fermentation/alchemical_sulfur_other_minerals_rare_using_sugars.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:fermentation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -11,14 +13,12 @@ "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:sugar" + "tag": "c:sugars" } } ], - "type": "theurgy:fermentation", - "category": "misc", "fluid": { - "tag": "minecraft:water" + "fluid": "minecraft:water" }, "fluidAmount": 500, "ingredients": [ @@ -26,12 +26,13 @@ "tag": "theurgy:alchemical_sulfurs/other_minerals/rare" }, { - "tag": "forge:sugar" + "tag": "c:sugars" } ], "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_other_minerals_rare" + "id": "theurgy:mercury_shard" }, "time": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/incubation/coals_from_alchemical_sulfur_coal.json b/src/generated/resources/data/theurgy/recipes/incubation/coals_from_alchemical_sulfur_coal.json index 193e98dc5..ce6264899 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/coals_from_alchemical_sulfur_coal.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/coals_from_alchemical_sulfur_coal.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,19 +10,21 @@ } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, "tag": "minecraft:coals" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_coal" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/dusts_redstone_from_alchemical_sulfur_redstone.json b/src/generated/resources/data/theurgy/recipes/incubation/dusts_redstone_from_alchemical_sulfur_redstone.json index 635920c57..b41512047 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/dusts_redstone_from_alchemical_sulfur_redstone.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/dusts_redstone_from_alchemical_sulfur_redstone.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:dusts/redstone" + "tag": "c:dusts/redstone" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:dusts/redstone" + "tag": "c:dusts/redstone" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_redstone" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_amethyst_from_alchemical_sulfur_amethyst.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_amethyst_from_alchemical_sulfur_amethyst.json index beb6469ae..2a20872ec 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_amethyst_from_alchemical_sulfur_amethyst.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_amethyst_from_alchemical_sulfur_amethyst.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/amethyst" + "tag": "c:gems/amethyst" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/amethyst" + "tag": "c:gems/amethyst" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_amethyst" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_apatite_from_alchemical_sulfur_apatite.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_apatite_from_alchemical_sulfur_apatite.json index 5b6a157db..464fe8f8a 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_apatite_from_alchemical_sulfur_apatite.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_apatite_from_alchemical_sulfur_apatite.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/apatite" + "tag": "c:gems/apatite" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/apatite" + "tag": "c:gems/apatite" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_apatite" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_diamond_from_alchemical_sulfur_diamond.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_diamond_from_alchemical_sulfur_diamond.json index 3ab9bcee1..cee7f7480 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_diamond_from_alchemical_sulfur_diamond.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_diamond_from_alchemical_sulfur_diamond.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/diamond" + "tag": "c:gems/diamond" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/diamond" + "tag": "c:gems/diamond" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_diamond" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_emerald_from_alchemical_sulfur_emerald.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_emerald_from_alchemical_sulfur_emerald.json index e0b2a09c7..5e1d28a4c 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_emerald_from_alchemical_sulfur_emerald.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_emerald_from_alchemical_sulfur_emerald.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/emerald" + "tag": "c:gems/emerald" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/emerald" + "tag": "c:gems/emerald" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_emerald" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_fluorite_from_alchemical_sulfur_fluorite.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_fluorite_from_alchemical_sulfur_fluorite.json index 2aec83ae0..1594f64f7 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_fluorite_from_alchemical_sulfur_fluorite.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_fluorite_from_alchemical_sulfur_fluorite.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/fluorite" + "tag": "c:gems/fluorite" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/fluorite" + "tag": "c:gems/fluorite" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_fluorite" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_lapis_from_alchemical_sulfur_lapis.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_lapis_from_alchemical_sulfur_lapis.json index 42c3a9bdc..997983311 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_lapis_from_alchemical_sulfur_lapis.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_lapis_from_alchemical_sulfur_lapis.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/lapis" + "tag": "c:gems/lapis" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/lapis" + "tag": "c:gems/lapis" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_lapis" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_peridot_from_alchemical_sulfur_peridot.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_peridot_from_alchemical_sulfur_peridot.json index 38187a334..19bd461b8 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_peridot_from_alchemical_sulfur_peridot.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_peridot_from_alchemical_sulfur_peridot.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/peridot" + "tag": "c:gems/peridot" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/peridot" + "tag": "c:gems/peridot" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_peridot" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_prismarine_from_alchemical_sulfur_prismarine.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_prismarine_from_alchemical_sulfur_prismarine.json index 939d73579..78170f7d7 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_prismarine_from_alchemical_sulfur_prismarine.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_prismarine_from_alchemical_sulfur_prismarine.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/prismarine" + "tag": "c:gems/prismarine" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/prismarine" + "tag": "c:gems/prismarine" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_prismarine" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_quartz_from_alchemical_sulfur_quartz.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_quartz_from_alchemical_sulfur_quartz.json index d0dccda3a..b8d8eec96 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_quartz_from_alchemical_sulfur_quartz.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_quartz_from_alchemical_sulfur_quartz.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/quartz" + "tag": "c:gems/quartz" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/quartz" + "tag": "c:gems/quartz" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_quartz" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_ruby_from_alchemical_sulfur_ruby.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_ruby_from_alchemical_sulfur_ruby.json index 32bf90141..51d3dfae7 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_ruby_from_alchemical_sulfur_ruby.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_ruby_from_alchemical_sulfur_ruby.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/ruby" + "tag": "c:gems/ruby" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/ruby" + "tag": "c:gems/ruby" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_ruby" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_sal_ammoniac_from_alchemical_sulfur_sal_ammoniac.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_sal_ammoniac_from_alchemical_sulfur_sal_ammoniac.json index ff52c7262..5b1262f85 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_sal_ammoniac_from_alchemical_sulfur_sal_ammoniac.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_sal_ammoniac_from_alchemical_sulfur_sal_ammoniac.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/sal_ammoniac" + "tag": "c:gems/sal_ammoniac" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/sal_ammoniac" + "tag": "c:gems/sal_ammoniac" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_sal_ammoniac" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_sapphire_from_alchemical_sulfur_sapphire.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_sapphire_from_alchemical_sulfur_sapphire.json index 3dc078b33..61b98bb78 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_sapphire_from_alchemical_sulfur_sapphire.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_sapphire_from_alchemical_sulfur_sapphire.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/sapphire" + "tag": "c:gems/sapphire" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/sapphire" + "tag": "c:gems/sapphire" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_sapphire" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/gems_sulfur_from_alchemical_sulfur_sulfur.json b/src/generated/resources/data/theurgy/recipes/incubation/gems_sulfur_from_alchemical_sulfur_sulfur.json index 1a470b838..2c35b4d5a 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/gems_sulfur_from_alchemical_sulfur_sulfur.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/gems_sulfur_from_alchemical_sulfur_sulfur.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/sulfur" + "tag": "c:gems/sulfur" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:gems/sulfur" + "tag": "c:gems/sulfur" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_sulfur" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_allthemodium_from_alchemical_sulfur_allthemodium.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_allthemodium_from_alchemical_sulfur_allthemodium.json index 1e7c78eff..977cfc1b0 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_allthemodium_from_alchemical_sulfur_allthemodium.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_allthemodium_from_alchemical_sulfur_allthemodium.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/allthemodium" + "tag": "c:ingots/allthemodium" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/allthemodium" + "tag": "c:ingots/allthemodium" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_allthemodium" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_azure_silver_from_alchemical_sulfur_azure_silver.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_azure_silver_from_alchemical_sulfur_azure_silver.json index 7d5c3658e..8f4174ddc 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_azure_silver_from_alchemical_sulfur_azure_silver.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_azure_silver_from_alchemical_sulfur_azure_silver.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/azure_silver" + "tag": "c:ingots/azure_silver" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/azure_silver" + "tag": "c:ingots/azure_silver" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_azure_silver" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_cinnabar_from_alchemical_sulfur_cinnabar.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_cinnabar_from_alchemical_sulfur_cinnabar.json index a052fbd8c..d4f7755fa 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_cinnabar_from_alchemical_sulfur_cinnabar.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_cinnabar_from_alchemical_sulfur_cinnabar.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/cinnabar" + "tag": "c:ingots/cinnabar" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/cinnabar" + "tag": "c:ingots/cinnabar" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_cinnabar" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_copper_from_alchemical_sulfur_copper.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_copper_from_alchemical_sulfur_copper.json index 436efd343..08689637c 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_copper_from_alchemical_sulfur_copper.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_copper_from_alchemical_sulfur_copper.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_copper" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_crimson_iron_from_alchemical_sulfur_crimson_iron.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_crimson_iron_from_alchemical_sulfur_crimson_iron.json index 9407c148d..84e156454 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_crimson_iron_from_alchemical_sulfur_crimson_iron.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_crimson_iron_from_alchemical_sulfur_crimson_iron.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/crimson_iron" + "tag": "c:ingots/crimson_iron" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/crimson_iron" + "tag": "c:ingots/crimson_iron" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_crimson_iron" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_gold_from_alchemical_sulfur_gold.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_gold_from_alchemical_sulfur_gold.json index 99d4c64ac..89c4be667 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_gold_from_alchemical_sulfur_gold.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_gold_from_alchemical_sulfur_gold.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_gold" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_iridium_from_alchemical_sulfur_iridium.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_iridium_from_alchemical_sulfur_iridium.json index a4a686db1..ea241bcf4 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_iridium_from_alchemical_sulfur_iridium.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_iridium_from_alchemical_sulfur_iridium.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/iridium" + "tag": "c:ingots/iridium" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/iridium" + "tag": "c:ingots/iridium" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_iridium" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_iron_from_alchemical_sulfur_iron.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_iron_from_alchemical_sulfur_iron.json index 92b0a4266..2e182ba0a 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_iron_from_alchemical_sulfur_iron.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_iron_from_alchemical_sulfur_iron.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_iron" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_lead_from_alchemical_sulfur_lead.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_lead_from_alchemical_sulfur_lead.json index 94e8a7f7f..f00c8823a 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_lead_from_alchemical_sulfur_lead.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_lead_from_alchemical_sulfur_lead.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/lead" + "tag": "c:ingots/lead" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/lead" + "tag": "c:ingots/lead" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_lead" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_netherite_from_alchemical_sulfur_netherite.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_netherite_from_alchemical_sulfur_netherite.json index 5d096c311..84ef5af06 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_netherite_from_alchemical_sulfur_netherite.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_netherite_from_alchemical_sulfur_netherite.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/netherite" + "tag": "c:ingots/netherite" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/netherite" + "tag": "c:ingots/netherite" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_netherite" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_nickel_from_alchemical_sulfur_nickel.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_nickel_from_alchemical_sulfur_nickel.json index def0a7d31..bffd7fe4f 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_nickel_from_alchemical_sulfur_nickel.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_nickel_from_alchemical_sulfur_nickel.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/nickel" + "tag": "c:ingots/nickel" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/nickel" + "tag": "c:ingots/nickel" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_nickel" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_osmium_from_alchemical_sulfur_osmium.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_osmium_from_alchemical_sulfur_osmium.json index e69108514..4873a40fc 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_osmium_from_alchemical_sulfur_osmium.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_osmium_from_alchemical_sulfur_osmium.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/osmium" + "tag": "c:ingots/osmium" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/osmium" + "tag": "c:ingots/osmium" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_osmium" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_platinum_from_alchemical_sulfur_platinum.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_platinum_from_alchemical_sulfur_platinum.json index 3044335d1..013cd8bf2 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_platinum_from_alchemical_sulfur_platinum.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_platinum_from_alchemical_sulfur_platinum.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/platinum" + "tag": "c:ingots/platinum" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/platinum" + "tag": "c:ingots/platinum" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_platinum" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_silver_from_alchemical_sulfur_silver.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_silver_from_alchemical_sulfur_silver.json index 966b46ae4..2ee48300d 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_silver_from_alchemical_sulfur_silver.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_silver_from_alchemical_sulfur_silver.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/silver" + "tag": "c:ingots/silver" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/silver" + "tag": "c:ingots/silver" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_silver" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_tin_from_alchemical_sulfur_tin.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_tin_from_alchemical_sulfur_tin.json index ed4c91188..3daa2a869 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_tin_from_alchemical_sulfur_tin.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_tin_from_alchemical_sulfur_tin.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/tin" + "tag": "c:ingots/tin" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/tin" + "tag": "c:ingots/tin" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_tin" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_unobtainium_from_alchemical_sulfur_unobtainium.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_unobtainium_from_alchemical_sulfur_unobtainium.json index 79f3eba1a..1f2e471e7 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_unobtainium_from_alchemical_sulfur_unobtainium.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_unobtainium_from_alchemical_sulfur_unobtainium.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/unobtainium" + "tag": "c:ingots/unobtainium" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/unobtainium" + "tag": "c:ingots/unobtainium" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_unobtainium" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_uranium_from_alchemical_sulfur_uranium.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_uranium_from_alchemical_sulfur_uranium.json index 88b8c078e..cc618e3fc 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_uranium_from_alchemical_sulfur_uranium.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_uranium_from_alchemical_sulfur_uranium.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/uranium" + "tag": "c:ingots/uranium" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/uranium" + "tag": "c:ingots/uranium" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_uranium" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_vibranium_from_alchemical_sulfur_vibranium.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_vibranium_from_alchemical_sulfur_vibranium.json index 1dbbee735..11c00b7c2 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_vibranium_from_alchemical_sulfur_vibranium.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_vibranium_from_alchemical_sulfur_vibranium.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/vibranium" + "tag": "c:ingots/vibranium" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/vibranium" + "tag": "c:ingots/vibranium" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_vibranium" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/ingots_zinc_from_alchemical_sulfur_zinc.json b/src/generated/resources/data/theurgy/recipes/incubation/ingots_zinc_from_alchemical_sulfur_zinc.json index af4301bd8..22867f3d9 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/ingots_zinc_from_alchemical_sulfur_zinc.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/ingots_zinc_from_alchemical_sulfur_zinc.json @@ -1,26 +1,30 @@ { - "neoforge:conditions": [ + "type": "theurgy:incubation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/zinc" + "tag": "c:ingots/zinc" } } ], - "type": "theurgy:incubation", - "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:tag", "count": 1, - "tag": "forge:ingots/zinc" + "tag": "c:ingots/zinc" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_mineral" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_zinc" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/incubation/wheat.json b/src/generated/resources/data/theurgy/recipes/incubation/wheat.json index cbf819162..727c19cde 100644 --- a/src/generated/resources/data/theurgy/recipes/incubation/wheat.json +++ b/src/generated/resources/data/theurgy/recipes/incubation/wheat.json @@ -2,16 +2,20 @@ "type": "theurgy:incubation", "category": "misc", "mercury": { + "count": 1, "item": "theurgy:mercury_shard" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "minecraft:wheat" + "id": "minecraft:wheat" }, "salt": { + "count": 1, "item": "theurgy:alchemical_salt_crops" }, "sulfur": { + "count": 1, "item": "theurgy:alchemical_sulfur_wheat" }, "time": 100 diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ingots_allthemodium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ingots_allthemodium.json index 20cbb142d..af3d6ab3d 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ingots_allthemodium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ingots_allthemodium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/allthemodium" + "tag": "c:ingots/allthemodium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/allthemodium" + "tag": "c:ingots/allthemodium" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_allthemodium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/allthemodium" - } + "id": "theurgy:alchemical_sulfur_allthemodium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ores_allthemodium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ores_allthemodium.json index bcdfc6a6b..943787581 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ores_allthemodium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_ores_allthemodium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/allthemodium" + "tag": "c:ores/allthemodium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/allthemodium" + "tag": "c:ores/allthemodium" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_allthemodium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/allthemodium" - } + "id": "theurgy:alchemical_sulfur_allthemodium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_raw_materials_allthemodium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_raw_materials_allthemodium.json index a5ded9b20..3c386835a 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_raw_materials_allthemodium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_allthemodium_from_raw_materials_allthemodium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/allthemodium" + "tag": "c:raw_materials/allthemodium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/allthemodium" + "tag": "c:raw_materials/allthemodium" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_allthemodium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/allthemodium" - } + "id": "theurgy:alchemical_sulfur_allthemodium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_amethyst_from_gems_amethyst.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_amethyst_from_gems_amethyst.json index 0643c37af..54e9a4218 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_amethyst_from_gems_amethyst.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_amethyst_from_gems_amethyst.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/amethyst" + "tag": "c:gems/amethyst" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/amethyst" + "tag": "c:gems/amethyst" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_amethyst", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/amethyst" - } + "id": "theurgy:alchemical_sulfur_amethyst" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_gems_apatite.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_gems_apatite.json index eca65c220..7918e6892 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_gems_apatite.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_gems_apatite.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/apatite" + "tag": "c:gems/apatite" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/apatite" + "tag": "c:gems/apatite" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_apatite", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/apatite" - } + "id": "theurgy:alchemical_sulfur_apatite" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_ores_apatite.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_ores_apatite.json index 1163388fb..99f740f27 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_ores_apatite.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_apatite_from_ores_apatite.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/apatite" + "tag": "c:ores/apatite" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/apatite" + "tag": "c:ores/apatite" }, "result": { + "type": "theurgy:item", "count": 9, - "item": "theurgy:alchemical_sulfur_apatite", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/apatite" - } + "id": "theurgy:alchemical_sulfur_apatite" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ingots_azure_silver.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ingots_azure_silver.json index 8ccaab0d4..49dd01bc6 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ingots_azure_silver.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ingots_azure_silver.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/azure_silver" + "tag": "c:ingots/azure_silver" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/azure_silver" + "tag": "c:ingots/azure_silver" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_azure_silver", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/azure_silver" - } + "id": "theurgy:alchemical_sulfur_azure_silver" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ores_azure_silver.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ores_azure_silver.json index ae4ae2da4..47f5d6d46 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ores_azure_silver.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_ores_azure_silver.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/azure_silver" + "tag": "c:ores/azure_silver" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/azure_silver" + "tag": "c:ores/azure_silver" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_azure_silver", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/azure_silver" - } + "id": "theurgy:alchemical_sulfur_azure_silver" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_raw_materials_azure_silver.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_raw_materials_azure_silver.json index 6462149c8..1be337b4b 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_raw_materials_azure_silver.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_azure_silver_from_raw_materials_azure_silver.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/azure_silver" + "tag": "c:raw_materials/azure_silver" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/azure_silver" + "tag": "c:raw_materials/azure_silver" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_azure_silver", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/azure_silver" - } + "id": "theurgy:alchemical_sulfur_azure_silver" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ingots_cinnabar.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ingots_cinnabar.json index 6dd4ae68a..60e6ff599 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ingots_cinnabar.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ingots_cinnabar.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/cinnabar" + "tag": "c:ingots/cinnabar" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/cinnabar" + "tag": "c:ingots/cinnabar" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_cinnabar", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/cinnabar" - } + "id": "theurgy:alchemical_sulfur_cinnabar" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ores_cinnabar.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ores_cinnabar.json index b1b36b4c1..7dc6fc56e 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ores_cinnabar.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_ores_cinnabar.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/cinnabar" + "tag": "c:ores/cinnabar" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/cinnabar" + "tag": "c:ores/cinnabar" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_cinnabar", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/cinnabar" - } + "id": "theurgy:alchemical_sulfur_cinnabar" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_raw_materials_cinnabar.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_raw_materials_cinnabar.json index 359c3533b..bdd196855 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_raw_materials_cinnabar.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_cinnabar_from_raw_materials_cinnabar.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/cinnabar" + "tag": "c:raw_materials/cinnabar" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/cinnabar" + "tag": "c:raw_materials/cinnabar" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_cinnabar", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/cinnabar" - } + "id": "theurgy:alchemical_sulfur_cinnabar" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_coals.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_coals.json index d71d49096..73ab33c2f 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_coals.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_coals.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,21 +10,17 @@ } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { "tag": "minecraft:coals" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_coal", - "nbt": { - "theurgy:sulfur.source.id": "#minecraft:coals" - } + "id": "theurgy:alchemical_sulfur_coal" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_ores_coal.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_ores_coal.json index 2cc8bfa31..de7ceb0d1 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_ores_coal.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_coal_from_ores_coal.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/coal" + "tag": "c:ores/coal" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/coal" + "tag": "c:ores/coal" }, "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_coal", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/coal" - } + "id": "theurgy:alchemical_sulfur_coal" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ingots_copper.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ingots_copper.json index a9be119ae..e077fbea9 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ingots_copper.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ingots_copper.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/copper" + "tag": "c:ingots/copper" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_copper", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/copper" - } + "id": "theurgy:alchemical_sulfur_copper" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ores_copper.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ores_copper.json index e1959eb30..3c859520e 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ores_copper.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_ores_copper.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/copper" + "tag": "c:ores/copper" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/copper" + "tag": "c:ores/copper" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_copper", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/copper" - } + "id": "theurgy:alchemical_sulfur_copper" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_raw_materials_copper.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_raw_materials_copper.json index 78b359340..0101d634b 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_raw_materials_copper.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_copper_from_raw_materials_copper.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/copper" + "tag": "c:raw_materials/copper" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/copper" + "tag": "c:raw_materials/copper" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_copper", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/copper" - } + "id": "theurgy:alchemical_sulfur_copper" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ingots_crimson_iron.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ingots_crimson_iron.json index 3baa37045..8938055db 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ingots_crimson_iron.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ingots_crimson_iron.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/crimson_iron" + "tag": "c:ingots/crimson_iron" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/crimson_iron" + "tag": "c:ingots/crimson_iron" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_crimson_iron", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/crimson_iron" - } + "id": "theurgy:alchemical_sulfur_crimson_iron" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 20, + "solventAmount": 20, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ores_crimson_iron.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ores_crimson_iron.json index e856aab93..cb88c22ba 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ores_crimson_iron.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_ores_crimson_iron.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/crimson_iron" + "tag": "c:ores/crimson_iron" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/crimson_iron" + "tag": "c:ores/crimson_iron" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_crimson_iron", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/crimson_iron" - } + "id": "theurgy:alchemical_sulfur_crimson_iron" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 20, + "solventAmount": 20, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_raw_materials_crimson_iron.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_raw_materials_crimson_iron.json index b5d8d50d6..96693a2fd 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_raw_materials_crimson_iron.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_crimson_iron_from_raw_materials_crimson_iron.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/crimson_iron" + "tag": "c:raw_materials/crimson_iron" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/crimson_iron" + "tag": "c:raw_materials/crimson_iron" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_crimson_iron", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/crimson_iron" - } + "id": "theurgy:alchemical_sulfur_crimson_iron" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 20, + "solventAmount": 20, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_gems_diamond.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_gems_diamond.json index 533881b21..0616328d9 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_gems_diamond.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_gems_diamond.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/diamond" + "tag": "c:gems/diamond" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/diamond" + "tag": "c:gems/diamond" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_diamond", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/diamond" - } + "id": "theurgy:alchemical_sulfur_diamond" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_ores_diamond.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_ores_diamond.json index 25ac2c46f..c094ba473 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_ores_diamond.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_diamond_from_ores_diamond.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/diamond" + "tag": "c:ores/diamond" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/diamond" + "tag": "c:ores/diamond" }, "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_diamond", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/diamond" - } + "id": "theurgy:alchemical_sulfur_diamond" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_gems_emerald.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_gems_emerald.json index 1320bc376..55faa3d87 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_gems_emerald.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_gems_emerald.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/emerald" + "tag": "c:gems/emerald" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/emerald" + "tag": "c:gems/emerald" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_emerald", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/emerald" - } + "id": "theurgy:alchemical_sulfur_emerald" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_ores_emerald.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_ores_emerald.json index ab9b5f9f3..d66e2fdc7 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_ores_emerald.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_emerald_from_ores_emerald.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/emerald" + "tag": "c:ores/emerald" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/emerald" + "tag": "c:ores/emerald" }, "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_emerald", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/emerald" - } + "id": "theurgy:alchemical_sulfur_emerald" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_gems_fluorite.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_gems_fluorite.json index 6640a7428..6ef2d9727 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_gems_fluorite.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_gems_fluorite.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/fluorite" + "tag": "c:gems/fluorite" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/fluorite" + "tag": "c:gems/fluorite" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_fluorite", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/fluorite" - } + "id": "theurgy:alchemical_sulfur_fluorite" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_ores_fluorite.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_ores_fluorite.json index b5c2cdbec..24396ccb0 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_ores_fluorite.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_fluorite_from_ores_fluorite.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/fluorite" + "tag": "c:ores/fluorite" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/fluorite" + "tag": "c:ores/fluorite" }, "result": { + "type": "theurgy:item", "count": 8, - "item": "theurgy:alchemical_sulfur_fluorite", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/fluorite" - } + "id": "theurgy:alchemical_sulfur_fluorite" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ingots_gold.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ingots_gold.json index 25b14d7dc..1b6f851b5 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ingots_gold.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ingots_gold.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/gold" + "tag": "c:ingots/gold" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gold", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/gold" - } + "id": "theurgy:alchemical_sulfur_gold" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ores_gold.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ores_gold.json index 0105e7a47..d549e2d6c 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ores_gold.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_ores_gold.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/gold" + "tag": "c:ores/gold" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/gold" + "tag": "c:ores/gold" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_gold", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/gold" - } + "id": "theurgy:alchemical_sulfur_gold" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_raw_materials_gold.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_raw_materials_gold.json index 87881700e..a1f40034e 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_raw_materials_gold.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_gold_from_raw_materials_gold.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/gold" + "tag": "c:raw_materials/gold" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/gold" + "tag": "c:raw_materials/gold" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_gold", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/gold" - } + "id": "theurgy:alchemical_sulfur_gold" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ingots_iridium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ingots_iridium.json index 9fe9d47d0..5cce27d9c 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ingots_iridium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ingots_iridium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/iridium" + "tag": "c:ingots/iridium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/iridium" + "tag": "c:ingots/iridium" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_iridium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/iridium" - } + "id": "theurgy:alchemical_sulfur_iridium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ores_iridium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ores_iridium.json index 37a88f612..49b73d9cd 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ores_iridium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_ores_iridium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/iridium" + "tag": "c:ores/iridium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/iridium" + "tag": "c:ores/iridium" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_iridium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/iridium" - } + "id": "theurgy:alchemical_sulfur_iridium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_raw_materials_iridium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_raw_materials_iridium.json index d457e832e..f06da09ae 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_raw_materials_iridium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iridium_from_raw_materials_iridium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/iridium" + "tag": "c:raw_materials/iridium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/iridium" + "tag": "c:raw_materials/iridium" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_iridium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/iridium" - } + "id": "theurgy:alchemical_sulfur_iridium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ingots_iron.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ingots_iron.json index ebc17ae49..58ac84088 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ingots_iron.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ingots_iron.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/iron" + "tag": "c:ingots/iron" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_iron", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/iron" - } + "id": "theurgy:alchemical_sulfur_iron" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ores_iron.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ores_iron.json index c17af22f3..4261e2c37 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ores_iron.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_ores_iron.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/iron" + "tag": "c:ores/iron" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/iron" + "tag": "c:ores/iron" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_iron", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/iron" - } + "id": "theurgy:alchemical_sulfur_iron" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_raw_materials_iron.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_raw_materials_iron.json index 54cf4ea5a..60acc5a50 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_raw_materials_iron.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_iron_from_raw_materials_iron.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/iron" + "tag": "c:raw_materials/iron" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/iron" + "tag": "c:raw_materials/iron" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_iron", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/iron" - } + "id": "theurgy:alchemical_sulfur_iron" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_gems_lapis.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_gems_lapis.json index 9bd988a7d..92589207b 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_gems_lapis.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_gems_lapis.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/lapis" + "tag": "c:gems/lapis" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/lapis" + "tag": "c:gems/lapis" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_lapis", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/lapis" - } + "id": "theurgy:alchemical_sulfur_lapis" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_ores_lapis.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_ores_lapis.json index 697b6567d..092db05bb 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_ores_lapis.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lapis_from_ores_lapis.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/lapis" + "tag": "c:ores/lapis" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/lapis" + "tag": "c:ores/lapis" }, "result": { + "type": "theurgy:item", "count": 12, - "item": "theurgy:alchemical_sulfur_lapis", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/lapis" - } + "id": "theurgy:alchemical_sulfur_lapis" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ingots_lead.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ingots_lead.json index 047bfcb60..267fc44d5 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ingots_lead.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ingots_lead.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/lead" + "tag": "c:ingots/lead" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/lead" + "tag": "c:ingots/lead" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_lead", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/lead" - } + "id": "theurgy:alchemical_sulfur_lead" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ores_lead.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ores_lead.json index d2076b68b..47989cf57 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ores_lead.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_ores_lead.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/lead" + "tag": "c:ores/lead" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/lead" + "tag": "c:ores/lead" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_lead", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/lead" - } + "id": "theurgy:alchemical_sulfur_lead" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_raw_materials_lead.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_raw_materials_lead.json index cab56cbb6..f95abec10 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_raw_materials_lead.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_lead_from_raw_materials_lead.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/lead" + "tag": "c:raw_materials/lead" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/lead" + "tag": "c:raw_materials/lead" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_lead", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/lead" - } + "id": "theurgy:alchemical_sulfur_lead" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_logs_from_logs.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_logs_from_logs.json index 9e0acfde3..7a6df5e02 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_logs_from_logs.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_logs_from_logs.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,21 +10,17 @@ } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { "tag": "minecraft:logs" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_logs", - "nbt": { - "theurgy:sulfur.source.id": "#minecraft:logs" - } + "id": "theurgy:alchemical_sulfur_logs" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ingots_netherite.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ingots_netherite.json index 6bf635af6..25947174a 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ingots_netherite.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ingots_netherite.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/netherite" + "tag": "c:ingots/netherite" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/netherite" + "tag": "c:ingots/netherite" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_netherite", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/netherite" - } + "id": "theurgy:alchemical_sulfur_netherite" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ores_netherite_scrap.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ores_netherite_scrap.json index bcff93f5a..e4932f1cd 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ores_netherite_scrap.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_netherite_from_ores_netherite_scrap.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/netherite_scrap" + "tag": "c:ores/netherite_scrap" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/netherite_scrap" + "tag": "c:ores/netherite_scrap" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_netherite", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/netherite_scrap" - } + "id": "theurgy:alchemical_sulfur_netherite" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ingots_nickel.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ingots_nickel.json index 86e75b456..d1ec885b3 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ingots_nickel.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ingots_nickel.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/nickel" + "tag": "c:ingots/nickel" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/nickel" + "tag": "c:ingots/nickel" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_nickel", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/nickel" - } + "id": "theurgy:alchemical_sulfur_nickel" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ores_nickel.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ores_nickel.json index 15f6c2830..36c6dbc50 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ores_nickel.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_ores_nickel.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/nickel" + "tag": "c:ores/nickel" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/nickel" + "tag": "c:ores/nickel" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_nickel", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/nickel" - } + "id": "theurgy:alchemical_sulfur_nickel" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_raw_materials_nickel.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_raw_materials_nickel.json index 38e5aba92..5ba6632a1 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_raw_materials_nickel.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_nickel_from_raw_materials_nickel.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/nickel" + "tag": "c:raw_materials/nickel" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/nickel" + "tag": "c:raw_materials/nickel" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_nickel", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/nickel" - } + "id": "theurgy:alchemical_sulfur_nickel" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ingots_osmium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ingots_osmium.json index 0c4fc02af..56d88d5e1 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ingots_osmium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ingots_osmium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/osmium" + "tag": "c:ingots/osmium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/osmium" + "tag": "c:ingots/osmium" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_osmium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/osmium" - } + "id": "theurgy:alchemical_sulfur_osmium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ores_osmium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ores_osmium.json index 242e514b6..d261f540c 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ores_osmium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_ores_osmium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/osmium" + "tag": "c:ores/osmium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/osmium" + "tag": "c:ores/osmium" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_osmium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/osmium" - } + "id": "theurgy:alchemical_sulfur_osmium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_raw_materials_osmium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_raw_materials_osmium.json index 563f0c523..7f1585f8e 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_raw_materials_osmium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_osmium_from_raw_materials_osmium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/osmium" + "tag": "c:raw_materials/osmium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/osmium" + "tag": "c:raw_materials/osmium" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_osmium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/osmium" - } + "id": "theurgy:alchemical_sulfur_osmium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_gems_peridot.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_gems_peridot.json index f2b1e0f50..9fcccb29f 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_gems_peridot.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_gems_peridot.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/peridot" + "tag": "c:gems/peridot" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/peridot" + "tag": "c:gems/peridot" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_peridot", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/peridot" - } + "id": "theurgy:alchemical_sulfur_peridot" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_ores_peridot.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_ores_peridot.json index 46e3e8f1e..b1313069c 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_ores_peridot.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_peridot_from_ores_peridot.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/peridot" + "tag": "c:ores/peridot" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/peridot" + "tag": "c:ores/peridot" }, "result": { + "type": "theurgy:item", "count": 8, - "item": "theurgy:alchemical_sulfur_peridot", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/peridot" - } + "id": "theurgy:alchemical_sulfur_peridot" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ingots_platinum.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ingots_platinum.json index cf51a814a..f45390d84 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ingots_platinum.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ingots_platinum.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/platinum" + "tag": "c:ingots/platinum" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/platinum" + "tag": "c:ingots/platinum" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_platinum", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/platinum" - } + "id": "theurgy:alchemical_sulfur_platinum" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 20, + "solventAmount": 20, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ores_platinum.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ores_platinum.json index be2045c79..0272b6901 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ores_platinum.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_ores_platinum.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/platinum" + "tag": "c:ores/platinum" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/platinum" + "tag": "c:ores/platinum" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_platinum", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/platinum" - } + "id": "theurgy:alchemical_sulfur_platinum" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 20, + "solventAmount": 20, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_raw_materials_platinum.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_raw_materials_platinum.json index 2dd32d967..5a9fa2cbb 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_raw_materials_platinum.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_platinum_from_raw_materials_platinum.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/platinum" + "tag": "c:raw_materials/platinum" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/platinum" + "tag": "c:raw_materials/platinum" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_platinum", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/platinum" - } + "id": "theurgy:alchemical_sulfur_platinum" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 20, + "solventAmount": 20, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_prismarine_from_gems_prismarine.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_prismarine_from_gems_prismarine.json index d1c5665da..556fefb0c 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_prismarine_from_gems_prismarine.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_prismarine_from_gems_prismarine.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/prismarine" + "tag": "c:gems/prismarine" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/prismarine" + "tag": "c:gems/prismarine" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_prismarine", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/prismarine" - } + "id": "theurgy:alchemical_sulfur_prismarine" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_gems_quartz.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_gems_quartz.json index a18caa8dc..57df98a7e 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_gems_quartz.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_gems_quartz.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/quartz" + "tag": "c:gems/quartz" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/quartz" + "tag": "c:gems/quartz" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_quartz", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/quartz" - } + "id": "theurgy:alchemical_sulfur_quartz" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_ores_quartz.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_ores_quartz.json index 1aa395d14..e7197fd49 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_ores_quartz.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_quartz_from_ores_quartz.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/quartz" + "tag": "c:ores/quartz" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/quartz" + "tag": "c:ores/quartz" }, "result": { + "type": "theurgy:item", "count": 10, - "item": "theurgy:alchemical_sulfur_quartz", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/quartz" - } + "id": "theurgy:alchemical_sulfur_quartz" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_dusts_redstone.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_dusts_redstone.json index 21129cbe3..014952a9a 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_dusts_redstone.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_dusts_redstone.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:dusts/redstone" + "tag": "c:dusts/redstone" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:dusts/redstone" + "tag": "c:dusts/redstone" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_redstone", - "nbt": { - "theurgy:sulfur.source.id": "#forge:dusts/redstone" - } + "id": "theurgy:alchemical_sulfur_redstone" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_ores_redstone.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_ores_redstone.json index 4243a951a..1e10e5a21 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_ores_redstone.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_redstone_from_ores_redstone.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/redstone" + "tag": "c:ores/redstone" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/redstone" + "tag": "c:ores/redstone" }, "result": { + "type": "theurgy:item", "count": 9, - "item": "theurgy:alchemical_sulfur_redstone", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/redstone" - } + "id": "theurgy:alchemical_sulfur_redstone" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_gems_ruby.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_gems_ruby.json index 82dc09752..9ea74e66d 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_gems_ruby.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_gems_ruby.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/ruby" + "tag": "c:gems/ruby" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/ruby" + "tag": "c:gems/ruby" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_ruby", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/ruby" - } + "id": "theurgy:alchemical_sulfur_ruby" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_ores_ruby.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_ores_ruby.json index c00e9bdb0..6ebc0ada9 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_ores_ruby.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_ruby_from_ores_ruby.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/ruby" + "tag": "c:ores/ruby" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/ruby" + "tag": "c:ores/ruby" }, "result": { + "type": "theurgy:item", "count": 8, - "item": "theurgy:alchemical_sulfur_ruby", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/ruby" - } + "id": "theurgy:alchemical_sulfur_ruby" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_gems_sal_ammoniac.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_gems_sal_ammoniac.json index e3b45cd79..115f95cc8 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_gems_sal_ammoniac.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_gems_sal_ammoniac.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/sal_ammoniac" + "tag": "c:gems/sal_ammoniac" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/sal_ammoniac" + "tag": "c:gems/sal_ammoniac" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_sal_ammoniac", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/sal_ammoniac" - } + "id": "theurgy:alchemical_sulfur_sal_ammoniac" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_ores_sal_ammoniac.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_ores_sal_ammoniac.json index 50c6eb1f6..d861d4fd9 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_ores_sal_ammoniac.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sal_ammoniac_from_ores_sal_ammoniac.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/sal_ammoniac" + "tag": "c:ores/sal_ammoniac" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/sal_ammoniac" + "tag": "c:ores/sal_ammoniac" }, "result": { + "type": "theurgy:item", "count": 6, - "item": "theurgy:alchemical_sulfur_sal_ammoniac", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/sal_ammoniac" - } + "id": "theurgy:alchemical_sulfur_sal_ammoniac" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_gems_sapphire.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_gems_sapphire.json index ab0363798..128e469ee 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_gems_sapphire.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_gems_sapphire.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/sapphire" + "tag": "c:gems/sapphire" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/sapphire" + "tag": "c:gems/sapphire" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_sapphire", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/sapphire" - } + "id": "theurgy:alchemical_sulfur_sapphire" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_ores_sapphire.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_ores_sapphire.json index fceade712..5b0dc871a 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_ores_sapphire.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sapphire_from_ores_sapphire.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/sapphire" + "tag": "c:ores/sapphire" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/sapphire" + "tag": "c:ores/sapphire" }, "result": { + "type": "theurgy:item", "count": 8, - "item": "theurgy:alchemical_sulfur_sapphire", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/sapphire" - } + "id": "theurgy:alchemical_sulfur_sapphire" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 15, + "solventAmount": 15, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ingots_silver.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ingots_silver.json index 6a8010a0f..250dc21f1 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ingots_silver.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ingots_silver.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/silver" + "tag": "c:ingots/silver" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/silver" + "tag": "c:ingots/silver" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_silver", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/silver" - } + "id": "theurgy:alchemical_sulfur_silver" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ores_silver.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ores_silver.json index a2ab9cca6..628dd88aa 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ores_silver.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_ores_silver.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/silver" + "tag": "c:ores/silver" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/silver" + "tag": "c:ores/silver" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_silver", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/silver" - } + "id": "theurgy:alchemical_sulfur_silver" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_raw_materials_silver.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_raw_materials_silver.json index 53a2ff556..bf3a0307f 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_raw_materials_silver.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_silver_from_raw_materials_silver.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/silver" + "tag": "c:raw_materials/silver" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/silver" + "tag": "c:raw_materials/silver" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_silver", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/silver" - } + "id": "theurgy:alchemical_sulfur_silver" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_gems_sulfur.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_gems_sulfur.json index db125767a..e19922425 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_gems_sulfur.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_gems_sulfur.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:gems/sulfur" + "tag": "c:gems/sulfur" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:gems/sulfur" + "tag": "c:gems/sulfur" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_sulfur", - "nbt": { - "theurgy:sulfur.source.id": "#forge:gems/sulfur" - } + "id": "theurgy:alchemical_sulfur_sulfur" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_ores_sulfur.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_ores_sulfur.json index 0f3bbfd45..5d811b85f 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_ores_sulfur.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_sulfur_from_ores_sulfur.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/sulfur" + "tag": "c:ores/sulfur" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/sulfur" + "tag": "c:ores/sulfur" }, "result": { + "type": "theurgy:item", "count": 6, - "item": "theurgy:alchemical_sulfur_sulfur", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/sulfur" - } + "id": "theurgy:alchemical_sulfur_sulfur" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ingots_tin.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ingots_tin.json index 9e0ce6977..b828bbdaa 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ingots_tin.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ingots_tin.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/tin" + "tag": "c:ingots/tin" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/tin" + "tag": "c:ingots/tin" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_tin", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/tin" - } + "id": "theurgy:alchemical_sulfur_tin" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ores_tin.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ores_tin.json index 075c75ea1..e1b3fe4a1 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ores_tin.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_ores_tin.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/tin" + "tag": "c:ores/tin" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/tin" + "tag": "c:ores/tin" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_tin", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/tin" - } + "id": "theurgy:alchemical_sulfur_tin" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_raw_materials_tin.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_raw_materials_tin.json index 65dd0d072..476ee5605 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_raw_materials_tin.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_tin_from_raw_materials_tin.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/tin" + "tag": "c:raw_materials/tin" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/tin" + "tag": "c:raw_materials/tin" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_tin", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/tin" - } + "id": "theurgy:alchemical_sulfur_tin" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ingots_unobtainium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ingots_unobtainium.json index bb641d029..a20c8e360 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ingots_unobtainium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ingots_unobtainium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/unobtainium" + "tag": "c:ingots/unobtainium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/unobtainium" + "tag": "c:ingots/unobtainium" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_unobtainium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/unobtainium" - } + "id": "theurgy:alchemical_sulfur_unobtainium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ores_unobtainium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ores_unobtainium.json index b0d4ff861..996b85a43 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ores_unobtainium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_ores_unobtainium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/unobtainium" + "tag": "c:ores/unobtainium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/unobtainium" + "tag": "c:ores/unobtainium" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_unobtainium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/unobtainium" - } + "id": "theurgy:alchemical_sulfur_unobtainium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_raw_materials_unobtainium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_raw_materials_unobtainium.json index 2bebab016..4bb78d783 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_raw_materials_unobtainium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_unobtainium_from_raw_materials_unobtainium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/unobtainium" + "tag": "c:raw_materials/unobtainium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/unobtainium" + "tag": "c:raw_materials/unobtainium" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_unobtainium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/unobtainium" - } + "id": "theurgy:alchemical_sulfur_unobtainium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 100, + "solventAmount": 100, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ingots_uranium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ingots_uranium.json index 4076f8e0e..d97aeb2a4 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ingots_uranium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ingots_uranium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/uranium" + "tag": "c:ingots/uranium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/uranium" + "tag": "c:ingots/uranium" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_uranium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/uranium" - } + "id": "theurgy:alchemical_sulfur_uranium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ores_uranium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ores_uranium.json index 9e7f9615f..2755c34b9 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ores_uranium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_ores_uranium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/uranium" + "tag": "c:ores/uranium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/uranium" + "tag": "c:ores/uranium" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_uranium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/uranium" - } + "id": "theurgy:alchemical_sulfur_uranium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_raw_materials_uranium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_raw_materials_uranium.json index 115ea2a1d..05b106ecf 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_raw_materials_uranium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_uranium_from_raw_materials_uranium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/uranium" + "tag": "c:raw_materials/uranium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/uranium" + "tag": "c:raw_materials/uranium" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_uranium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/uranium" - } + "id": "theurgy:alchemical_sulfur_uranium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ingots_vibranium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ingots_vibranium.json index 8db607eae..0a7b67742 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ingots_vibranium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ingots_vibranium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/vibranium" + "tag": "c:ingots/vibranium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/vibranium" + "tag": "c:ingots/vibranium" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_vibranium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/vibranium" - } + "id": "theurgy:alchemical_sulfur_vibranium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 20, + "solventAmount": 20, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ores_vibranium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ores_vibranium.json index ea79bbefb..cd97b6079 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ores_vibranium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_ores_vibranium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/vibranium" + "tag": "c:ores/vibranium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/vibranium" + "tag": "c:ores/vibranium" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_vibranium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/vibranium" - } + "id": "theurgy:alchemical_sulfur_vibranium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 20, + "solventAmount": 20, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_raw_materials_vibranium.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_raw_materials_vibranium.json index bf7833286..a237b2566 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_raw_materials_vibranium.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_vibranium_from_raw_materials_vibranium.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/vibranium" + "tag": "c:raw_materials/vibranium" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/vibranium" + "tag": "c:raw_materials/vibranium" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_vibranium", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/vibranium" - } + "id": "theurgy:alchemical_sulfur_vibranium" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 20, + "solventAmount": 20, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_wheat.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_wheat.json index bda8c6cca..6bac00428 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_wheat.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_wheat.json @@ -5,15 +5,13 @@ "item": "minecraft:wheat" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_wheat", - "nbt": { - "theurgy:sulfur.source.id": "minecraft:wheat" - } + "id": "theurgy:alchemical_sulfur_wheat" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ingots_zinc.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ingots_zinc.json index fa5a2e50b..272e604c1 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ingots_zinc.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ingots_zinc.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ingots/zinc" + "tag": "c:ingots/zinc" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ingots/zinc" + "tag": "c:ingots/zinc" }, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_zinc", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ingots/zinc" - } + "id": "theurgy:alchemical_sulfur_zinc" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ores_zinc.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ores_zinc.json index 73c9a5e7d..3292e5a31 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ores_zinc.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_ores_zinc.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:ores/zinc" + "tag": "c:ores/zinc" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:ores/zinc" + "tag": "c:ores/zinc" }, "result": { + "type": "theurgy:item", "count": 5, - "item": "theurgy:alchemical_sulfur_zinc", - "nbt": { - "theurgy:sulfur.source.id": "#forge:ores/zinc" - } + "id": "theurgy:alchemical_sulfur_zinc" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_raw_materials_zinc.json b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_raw_materials_zinc.json index f1c9a8705..1c9dc462b 100644 --- a/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_raw_materials_zinc.json +++ b/src/generated/resources/data/theurgy/recipes/liquefaction/alchemical_sulfur_zinc_from_raw_materials_zinc.json @@ -1,28 +1,26 @@ { - "neoforge:conditions": [ + "type": "theurgy:liquefaction", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { "type": "neoforge:tag_empty", - "tag": "forge:raw_materials/zinc" + "tag": "c:raw_materials/zinc" } } ], - "type": "theurgy:liquefaction", - "category": "misc", "ingredient": { - "tag": "forge:raw_materials/zinc" + "tag": "c:raw_materials/zinc" }, "result": { + "type": "theurgy:item", "count": 3, - "item": "theurgy:alchemical_sulfur_zinc", - "nbt": { - "theurgy:sulfur.source.id": "#forge:raw_materials/zinc" - } + "id": "theurgy:alchemical_sulfur_zinc" }, "solvent": { "fluid": "theurgy:sal_ammoniac" }, - "solvent_amount": 10, + "solventAmount": 10, "time": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfur_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfur_gems_rare.json index b62474f94..87ee67178 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfur_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfur_gems_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_amethyst" + "id": "theurgy:alchemical_sulfur_amethyst" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfurs_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfurs_gems_rare.json index 0cb40d44f..5c72f9cfa 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfurs_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_amethyst_from_alchemical_sulfurs_gems_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_amethyst" + "id": "theurgy:alchemical_sulfur_amethyst" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfur_gems_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfur_gems_abundant.json index c515730c2..50d8f5eb5 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfur_gems_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfur_gems_abundant.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_apatite" + "id": "theurgy:alchemical_sulfur_apatite" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfurs_gems_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfurs_gems_abundant.json index 1ea7f2587..77ab195d8 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfurs_gems_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_apatite_from_alchemical_sulfurs_gems_abundant.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_apatite" + "id": "theurgy:alchemical_sulfur_apatite" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfur_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfur_metals_rare.json index 4ca50e555..841ed1af2 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfur_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfur_metals_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_azure_silver" + "id": "theurgy:alchemical_sulfur_azure_silver" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfurs_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfurs_metals_rare.json index d791470e2..dfa80a49b 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfurs_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_azure_silver_from_alchemical_sulfurs_metals_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_azure_silver" + "id": "theurgy:alchemical_sulfur_azure_silver" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfur_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfur_metals_common.json index 9e38f8fd1..71921b0ea 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfur_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfur_metals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_cinnabar" + "id": "theurgy:alchemical_sulfur_cinnabar" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfurs_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfurs_metals_common.json index 9bf9a8f81..63ff586ff 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfurs_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_cinnabar_from_alchemical_sulfurs_metals_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_cinnabar" + "id": "theurgy:alchemical_sulfur_cinnabar" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfur_other_minerals_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfur_other_minerals_abundant.json index 01bd55398..e68f17089 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfur_other_minerals_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfur_other_minerals_abundant.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_coal" + "id": "theurgy:alchemical_sulfur_coal" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfurs_other_minerals_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfurs_other_minerals_abundant.json index d8c074656..9753dbe80 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfurs_other_minerals_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_coal_from_alchemical_sulfurs_other_minerals_abundant.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_coal" + "id": "theurgy:alchemical_sulfur_coal" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/other_minerals/abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfur_metals_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfur_metals_abundant.json index 94d9177bf..47ae78fc1 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfur_metals_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfur_metals_abundant.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_copper" + "id": "theurgy:alchemical_sulfur_copper" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfurs_metals_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfurs_metals_abundant.json index 8e6cb898f..12745b2dd 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfurs_metals_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_copper_from_alchemical_sulfurs_metals_abundant.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_copper" + "id": "theurgy:alchemical_sulfur_copper" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfur_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfur_metals_rare.json index 755236467..adec5d1b1 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfur_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfur_metals_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_crimson_iron" + "id": "theurgy:alchemical_sulfur_crimson_iron" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfurs_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfurs_metals_rare.json index e79c99381..47110f9a4 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfurs_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_crimson_iron_from_alchemical_sulfurs_metals_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_crimson_iron" + "id": "theurgy:alchemical_sulfur_crimson_iron" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfur_gems_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfur_gems_precious.json index 9d3816a39..683df25af 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfur_gems_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfur_gems_precious.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_diamond" + "id": "theurgy:alchemical_sulfur_diamond" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfurs_gems_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfurs_gems_precious.json index bcc66301f..e5050f369 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfurs_gems_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_diamond_from_alchemical_sulfurs_gems_precious.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_diamond" + "id": "theurgy:alchemical_sulfur_diamond" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfur_gems_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfur_gems_precious.json index 4e998b92e..58f3a5d9d 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfur_gems_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfur_gems_precious.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_emerald" + "id": "theurgy:alchemical_sulfur_emerald" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfurs_gems_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfurs_gems_precious.json index cf4051ba9..b1f57e453 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfurs_gems_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_emerald_from_alchemical_sulfurs_gems_precious.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_emerald" + "id": "theurgy:alchemical_sulfur_emerald" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfur_gems_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfur_gems_abundant.json index 615406a18..13b3b3240 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfur_gems_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfur_gems_abundant.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_fluorite" + "id": "theurgy:alchemical_sulfur_fluorite" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfurs_gems_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfurs_gems_abundant.json index cad8a9690..c5b00d1bf 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfurs_gems_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_fluorite_from_alchemical_sulfurs_gems_abundant.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_fluorite" + "id": "theurgy:alchemical_sulfur_fluorite" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_metals_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_metals_abundant.json index 336fdc1dc..7bb5e38b5 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_metals_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_metals_abundant.json @@ -1,16 +1,19 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_abundant" + "id": "theurgy:alchemical_sulfur_gems_abundant" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_abundant" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_other_minerals_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_other_minerals_abundant.json index ed4340436..1676da471 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_other_minerals_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_abundant_from_alchemical_sulfur_other_minerals_abundant.json @@ -1,22 +1,27 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_abundant" + "id": "theurgy:alchemical_sulfur_gems_abundant" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_abundant" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_abundant" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_abundant" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_metals_common.json index 768dee0ec..4310d4a07 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_metals_common.json @@ -1,16 +1,19 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_common" + "id": "theurgy:alchemical_sulfur_gems_common" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_other_minerals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_other_minerals_common.json index bddbe4b20..24c77bebf 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_other_minerals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_common_from_alchemical_sulfur_other_minerals_common.json @@ -1,22 +1,27 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_common" + "id": "theurgy:alchemical_sulfur_gems_common" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_common" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_common" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_common" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_metals_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_metals_precious.json index 60605365c..472f2ebaa 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_metals_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_metals_precious.json @@ -1,16 +1,19 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_precious" + "id": "theurgy:alchemical_sulfur_gems_precious" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_precious" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_other_minerals_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_other_minerals_precious.json index 3fb6ddd2d..1fa80f8d2 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_other_minerals_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_precious_from_alchemical_sulfur_other_minerals_precious.json @@ -1,22 +1,27 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_precious" + "id": "theurgy:alchemical_sulfur_gems_precious" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_precious" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_precious" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_precious" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_metals_rare.json index 4b9e6d412..fc8433748 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_metals_rare.json @@ -1,16 +1,19 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_rare" + "id": "theurgy:alchemical_sulfur_gems_rare" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_other_minerals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_other_minerals_rare.json index 9a5cbe154..4b4d458cd 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_other_minerals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gems_rare_from_alchemical_sulfur_other_minerals_rare.json @@ -1,22 +1,27 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gems_rare" + "id": "theurgy:alchemical_sulfur_gems_rare" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_rare" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_rare" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_rare" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfur_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfur_metals_rare.json index c729b80f2..cf8a5fbe8 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfur_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfur_metals_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gold" + "id": "theurgy:alchemical_sulfur_gold" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfurs_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfurs_metals_rare.json index 16e6c57e2..a2dd93267 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfurs_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_gold_from_alchemical_sulfurs_metals_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_gold" + "id": "theurgy:alchemical_sulfur_gold" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfur_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfur_metals_rare.json index 19ac6354d..09fb9d285 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfur_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfur_metals_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_iridium" + "id": "theurgy:alchemical_sulfur_iridium" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfurs_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfurs_metals_rare.json index 9efbc7d15..681217904 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfurs_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iridium_from_alchemical_sulfurs_metals_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_iridium" + "id": "theurgy:alchemical_sulfur_iridium" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfur_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfur_metals_common.json index 0db8867f4..e84e59d88 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfur_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfur_metals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_iron" + "id": "theurgy:alchemical_sulfur_iron" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfurs_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfurs_metals_common.json index afd5fdf75..47d7821da 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfurs_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_iron_from_alchemical_sulfurs_metals_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_iron" + "id": "theurgy:alchemical_sulfur_iron" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfur_gems_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfur_gems_common.json index db1f580d7..b88202e37 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfur_gems_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfur_gems_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_lapis" + "id": "theurgy:alchemical_sulfur_lapis" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfurs_gems_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfurs_gems_common.json index 47ebc42f6..ca0d66cb4 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfurs_gems_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lapis_from_alchemical_sulfurs_gems_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_lapis" + "id": "theurgy:alchemical_sulfur_lapis" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfur_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfur_metals_common.json index 3dd640456..a4d3ba20c 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfur_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfur_metals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_lead" + "id": "theurgy:alchemical_sulfur_lead" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfurs_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfurs_metals_common.json index df784e89f..0c3d2ce38 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfurs_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_lead_from_alchemical_sulfurs_metals_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_lead" + "id": "theurgy:alchemical_sulfur_lead" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_gems_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_gems_abundant.json index 6033e9d9b..9a769cefe 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_gems_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_gems_abundant.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_sulfur_metals_abundant" + "id": "theurgy:alchemical_sulfur_metals_abundant" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_other_minerals_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_other_minerals_abundant.json index fb55ae4a1..ecc6d39da 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_other_minerals_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_abundant_from_alchemical_sulfur_other_minerals_abundant.json @@ -1,16 +1,19 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_abundant" + "id": "theurgy:alchemical_sulfur_metals_abundant" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_abundant" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_gems_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_gems_common.json index e6dc66b6a..73c0e2dee 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_gems_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_gems_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_sulfur_metals_common" + "id": "theurgy:alchemical_sulfur_metals_common" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_other_minerals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_other_minerals_common.json index 61fdffdae..18df2752c 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_other_minerals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_common_from_alchemical_sulfur_other_minerals_common.json @@ -1,16 +1,19 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_common" + "id": "theurgy:alchemical_sulfur_metals_common" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_common" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_gems_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_gems_precious.json index d56c04e98..28e49fde7 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_gems_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_gems_precious.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_sulfur_metals_precious" + "id": "theurgy:alchemical_sulfur_metals_precious" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_other_minerals_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_other_minerals_precious.json index e6c31c298..84f77a82a 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_other_minerals_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_precious_from_alchemical_sulfur_other_minerals_precious.json @@ -1,16 +1,19 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_precious" + "id": "theurgy:alchemical_sulfur_metals_precious" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_precious" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_gems_rare.json index 700594de0..9c33f078c 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_gems_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_sulfur_metals_rare" + "id": "theurgy:alchemical_sulfur_metals_rare" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_other_minerals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_other_minerals_rare.json index 64ea665c3..bcfcfbc36 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_other_minerals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_metals_rare_from_alchemical_sulfur_other_minerals_rare.json @@ -1,16 +1,19 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_metals_rare" + "id": "theurgy:alchemical_sulfur_metals_rare" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_rare" }, { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfur_metals_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfur_metals_precious.json index 5fcb1bdd4..877010029 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfur_metals_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfur_metals_precious.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_netherite" + "id": "theurgy:alchemical_sulfur_netherite" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfurs_metals_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfurs_metals_precious.json index 826c5286f..10614e36d 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfurs_metals_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_netherite_from_alchemical_sulfurs_metals_precious.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_netherite" + "id": "theurgy:alchemical_sulfur_netherite" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfur_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfur_metals_common.json index e153ccc56..d873d8216 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfur_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfur_metals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_nickel" + "id": "theurgy:alchemical_sulfur_nickel" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfurs_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfurs_metals_common.json index 91d48aa98..67e935cb9 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfurs_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_nickel_from_alchemical_sulfurs_metals_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_nickel" + "id": "theurgy:alchemical_sulfur_nickel" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfur_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfur_metals_common.json index 90c1b4815..a1381d0a2 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfur_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfur_metals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_osmium" + "id": "theurgy:alchemical_sulfur_osmium" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfurs_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfurs_metals_common.json index 6f0d86f72..8b7f3a5b5 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfurs_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_osmium_from_alchemical_sulfurs_metals_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_osmium" + "id": "theurgy:alchemical_sulfur_osmium" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_gems_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_gems_abundant.json index 65e0e5d85..045bfef26 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_gems_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_gems_abundant.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_other_minerals_abundant" + "id": "theurgy:alchemical_sulfur_other_minerals_abundant" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_metals_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_metals_abundant.json index d5a7f327f..d70bf5884 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_metals_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_abundant_from_alchemical_sulfur_metals_abundant.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_sulfur_other_minerals_abundant" + "id": "theurgy:alchemical_sulfur_other_minerals_abundant" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_gems_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_gems_common.json index 603e68efe..0b9f40ea7 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_gems_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_gems_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_other_minerals_common" + "id": "theurgy:alchemical_sulfur_other_minerals_common" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_metals_common.json index efbb9d20e..52c4b4be2 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_common_from_alchemical_sulfur_metals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_sulfur_other_minerals_common" + "id": "theurgy:alchemical_sulfur_other_minerals_common" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_gems_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_gems_precious.json index a95b7896f..93b7e22f0 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_gems_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_gems_precious.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_other_minerals_precious" + "id": "theurgy:alchemical_sulfur_other_minerals_precious" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_metals_precious.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_metals_precious.json index 5f2c42bef..0e7a5568a 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_metals_precious.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_precious_from_alchemical_sulfur_metals_precious.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 200, + "mercuryFlux": 200, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_sulfur_other_minerals_precious" + "id": "theurgy:alchemical_sulfur_other_minerals_precious" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_precious" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_gems_rare.json index aabb9da55..c319b3a4b 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_gems_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 4, - "item": "theurgy:alchemical_sulfur_other_minerals_rare" + "id": "theurgy:alchemical_sulfur_other_minerals_rare" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_metals_rare.json index 0f6f4f63b..e9cb11954 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_other_minerals_rare_from_alchemical_sulfur_metals_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 2, - "item": "theurgy:alchemical_sulfur_other_minerals_rare" + "id": "theurgy:alchemical_sulfur_other_minerals_rare" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfur_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfur_gems_rare.json index b8c7c983d..6956a3a90 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfur_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfur_gems_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_peridot" + "id": "theurgy:alchemical_sulfur_peridot" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfurs_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfurs_gems_rare.json index 4e03fb98e..e00670f52 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfurs_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_peridot_from_alchemical_sulfurs_gems_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_peridot" + "id": "theurgy:alchemical_sulfur_peridot" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfur_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfur_metals_rare.json index 3917d1182..db8e37e50 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfur_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfur_metals_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_platinum" + "id": "theurgy:alchemical_sulfur_platinum" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfurs_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfurs_metals_rare.json index 8ba1d9148..a97e890a7 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfurs_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_platinum_from_alchemical_sulfurs_metals_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_platinum" + "id": "theurgy:alchemical_sulfur_platinum" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfur_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfur_gems_rare.json index 843589187..18eb57e46 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfur_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfur_gems_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_prismarine" + "id": "theurgy:alchemical_sulfur_prismarine" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfurs_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfurs_gems_rare.json index 854caedb0..f5b6f41e7 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfurs_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_prismarine_from_alchemical_sulfurs_gems_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_prismarine" + "id": "theurgy:alchemical_sulfur_prismarine" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfur_gems_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfur_gems_common.json index aa724e570..3b7c7bc5e 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfur_gems_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfur_gems_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_quartz" + "id": "theurgy:alchemical_sulfur_quartz" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfurs_gems_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfurs_gems_common.json index d1a24c9da..aea01749e 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfurs_gems_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_quartz_from_alchemical_sulfurs_gems_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_quartz" + "id": "theurgy:alchemical_sulfur_quartz" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfur_other_minerals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfur_other_minerals_common.json index 332da801b..84bc07624 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfur_other_minerals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfur_other_minerals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_redstone" + "id": "theurgy:alchemical_sulfur_redstone" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfurs_other_minerals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfurs_other_minerals_common.json index 1903fcc01..c2db680e7 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfurs_other_minerals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_redstone_from_alchemical_sulfurs_other_minerals_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_redstone" + "id": "theurgy:alchemical_sulfur_redstone" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/other_minerals/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfur_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfur_gems_rare.json index 5814b6ea1..b68fa95e4 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfur_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfur_gems_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_ruby" + "id": "theurgy:alchemical_sulfur_ruby" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfurs_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfurs_gems_rare.json index 27331e8e5..e6ebb2364 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfurs_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_ruby_from_alchemical_sulfurs_gems_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_ruby" + "id": "theurgy:alchemical_sulfur_ruby" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfur_gems_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfur_gems_abundant.json index 6c422c371..4de7860a8 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfur_gems_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfur_gems_abundant.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_sal_ammoniac" + "id": "theurgy:alchemical_sulfur_sal_ammoniac" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfurs_gems_abundant.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfurs_gems_abundant.json index 9abd450fc..2ba53b025 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfurs_gems_abundant.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sal_ammoniac_from_alchemical_sulfurs_gems_abundant.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 50, + "mercuryFlux": 50, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_sal_ammoniac" + "id": "theurgy:alchemical_sulfur_sal_ammoniac" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/abundant" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfur_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfur_gems_rare.json index d10147e59..4e8051813 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfur_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfur_gems_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_sapphire" + "id": "theurgy:alchemical_sulfur_sapphire" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_gems_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfurs_gems_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfurs_gems_rare.json index 7c52d1ffe..56313eb37 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfurs_gems_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sapphire_from_alchemical_sulfurs_gems_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_sapphire" + "id": "theurgy:alchemical_sulfur_sapphire" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/gems/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfur_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfur_metals_rare.json index a95522145..17058c581 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfur_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfur_metals_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_silver" + "id": "theurgy:alchemical_sulfur_silver" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfurs_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfurs_metals_rare.json index 4ec0fd3b1..92fc67c8e 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfurs_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_silver_from_alchemical_sulfurs_metals_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_silver" + "id": "theurgy:alchemical_sulfur_silver" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfur_other_minerals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfur_other_minerals_common.json index b3a0d338a..9809d4b91 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfur_other_minerals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfur_other_minerals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_sulfur" + "id": "theurgy:alchemical_sulfur_sulfur" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_other_minerals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfurs_other_minerals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfurs_other_minerals_common.json index a0bc97dc5..06db3f669 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfurs_other_minerals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_sulfur_from_alchemical_sulfurs_other_minerals_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_sulfur" + "id": "theurgy:alchemical_sulfur_sulfur" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/other_minerals/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfur_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfur_metals_common.json index 8569b5477..f27226d53 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfur_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfur_metals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_tin" + "id": "theurgy:alchemical_sulfur_tin" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfurs_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfurs_metals_common.json index 98eb59d9d..1ff0973f5 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfurs_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_tin_from_alchemical_sulfurs_metals_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_tin" + "id": "theurgy:alchemical_sulfur_tin" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfur_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfur_metals_rare.json index 83db75ffd..092fdb3eb 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfur_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfur_metals_rare.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_uranium" + "id": "theurgy:alchemical_sulfur_uranium" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfurs_metals_rare.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfurs_metals_rare.json index 9660fa060..236c42a81 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfurs_metals_rare.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_uranium_from_alchemical_sulfurs_metals_rare.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 150, + "mercuryFlux": 150, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_uranium" + "id": "theurgy:alchemical_sulfur_uranium" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/rare" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfur_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfur_metals_common.json index 062797593..865fa1b06 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfur_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfur_metals_common.json @@ -1,13 +1,15 @@ { "type": "theurgy:reformation", "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_zinc" + "id": "theurgy:alchemical_sulfur_zinc" }, "sources": [ { + "count": 1, "item": "theurgy:alchemical_sulfur_metals_common" } ], diff --git a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfurs_metals_common.json b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfurs_metals_common.json index 19f5b5513..3ae1d4897 100644 --- a/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfurs_metals_common.json +++ b/src/generated/resources/data/theurgy/recipes/reformation/alchemical_sulfur_zinc_from_alchemical_sulfurs_metals_common.json @@ -1,5 +1,7 @@ { - "neoforge:conditions": [ + "type": "theurgy:reformation", + "category": "misc", + "conditions": [ { "type": "neoforge:not", "value": { @@ -8,15 +10,15 @@ } } ], - "type": "theurgy:reformation", - "category": "misc", - "mercury_flux": 100, + "mercuryFlux": 100, "result": { + "type": "theurgy:item", "count": 1, - "item": "theurgy:alchemical_sulfur_zinc" + "id": "theurgy:alchemical_sulfur_zinc" }, "sources": [ { + "count": 1, "tag": "theurgy:alchemical_sulfurs/metals/common" } ], diff --git a/src/generated/resources/data/theurgy/tags/blocks/divination_rod_t1_allowed_blocks.json b/src/generated/resources/data/theurgy/tags/blocks/divination_rod_t1_allowed_blocks.json index cdab1e7da..faa30192e 100644 --- a/src/generated/resources/data/theurgy/tags/blocks/divination_rod_t1_allowed_blocks.json +++ b/src/generated/resources/data/theurgy/tags/blocks/divination_rod_t1_allowed_blocks.json @@ -1,9 +1,9 @@ { "values": [ "minecraft:sugar_cane", - "#forge:ores", - "#forge:sand", - "#forge:stone", + "#c:ores", + "#c:sandstone/blocks", + "#c:stones", "#minecraft:logs" ] } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/tags/blocks/divination_rod_t2_allowed_blocks.json b/src/generated/resources/data/theurgy/tags/blocks/divination_rod_t2_allowed_blocks.json index 9339e6a5f..d207d66d3 100644 --- a/src/generated/resources/data/theurgy/tags/blocks/divination_rod_t2_allowed_blocks.json +++ b/src/generated/resources/data/theurgy/tags/blocks/divination_rod_t2_allowed_blocks.json @@ -1,6 +1,6 @@ { "values": [ "#theurgy:divination_rod_t1_allowed_blocks", - "#forge:obsidian" + "#c:obsidians" ] } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/tags/items/alchemical_sulfurs.json b/src/generated/resources/data/theurgy/tags/items/alchemical_sulfurs.json index 4324cb627..2f61f17d3 100644 --- a/src/generated/resources/data/theurgy/tags/items/alchemical_sulfurs.json +++ b/src/generated/resources/data/theurgy/tags/items/alchemical_sulfurs.json @@ -1,6 +1,5 @@ { "values": [ - "theurgy:alchemical_sulfur_generic", "theurgy:alchemical_sulfur_logs", "theurgy:alchemical_sulfur_wheat", "theurgy:alchemical_sulfur_iron", diff --git a/src/generated/resources/data/theurgy/tags/items/gems/mercury/high.json b/src/generated/resources/data/theurgy/tags/items/gems/mercury/high.json index 5b66a7b71..a32f75ddd 100644 --- a/src/generated/resources/data/theurgy/tags/items/gems/mercury/high.json +++ b/src/generated/resources/data/theurgy/tags/items/gems/mercury/high.json @@ -1,6 +1,6 @@ { "values": [ - "#forge:gems/diamond", - "#forge:gems/emerald" + "#c:gems/diamond", + "#c:gems/emerald" ] } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/tags/items/gems/mercury/low.json b/src/generated/resources/data/theurgy/tags/items/gems/mercury/low.json index c1a7a614c..668d765b2 100644 --- a/src/generated/resources/data/theurgy/tags/items/gems/mercury/low.json +++ b/src/generated/resources/data/theurgy/tags/items/gems/mercury/low.json @@ -1,13 +1,9 @@ { "values": [ - "#forge:gems/lapis", - "#forge:gems/quartz", + "#c:gems/lapis", + "#c:gems/quartz", { - "id": "#forge:gems/cinnabar", - "required": false - }, - { - "id": "#forge:gems/apatite", + "id": "#c:gems/apatite", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/gems/mercury/medium.json b/src/generated/resources/data/theurgy/tags/items/gems/mercury/medium.json index b83bb0755..bf76a66e1 100644 --- a/src/generated/resources/data/theurgy/tags/items/gems/mercury/medium.json +++ b/src/generated/resources/data/theurgy/tags/items/gems/mercury/medium.json @@ -1,22 +1,22 @@ { "values": [ - "#forge:gems/amethyst", - "#forge:gems/prismarine", - "#forge:gems/sal_ammoniac", + "#c:gems/amethyst", + "#c:gems/prismarine", + "#c:gems/sal_ammoniac", { - "id": "#forge:gems/ruby", + "id": "#c:gems/ruby", "required": false }, { - "id": "#forge:gems/peridot", + "id": "#c:gems/peridot", "required": false }, { - "id": "#forge:gems/fluorite", + "id": "#c:gems/fluorite", "required": false }, { - "id": "#forge:gems/sapphire", + "id": "#c:gems/sapphire", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/metals/mercury/high.json b/src/generated/resources/data/theurgy/tags/items/metals/mercury/high.json index 80913a0f5..6039d0331 100644 --- a/src/generated/resources/data/theurgy/tags/items/metals/mercury/high.json +++ b/src/generated/resources/data/theurgy/tags/items/metals/mercury/high.json @@ -1,16 +1,16 @@ { "values": [ - "#forge:ingots/netherite", + "#c:ingots/netherite", { - "id": "#forge:ingots/allthemodium", + "id": "#c:ingots/allthemodium", "required": false }, { - "id": "#forge:ingots/unobtainium", + "id": "#c:ingots/unobtainium", "required": false }, { - "id": "#forge:ingots/vibranium", + "id": "#c:ingots/vibranium", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/metals/mercury/low.json b/src/generated/resources/data/theurgy/tags/items/metals/mercury/low.json index 50cb0e33b..51beb93bf 100644 --- a/src/generated/resources/data/theurgy/tags/items/metals/mercury/low.json +++ b/src/generated/resources/data/theurgy/tags/items/metals/mercury/low.json @@ -1,29 +1,29 @@ { "values": [ - "#forge:ingots/iron", - "#forge:ingots/copper", + "#c:ingots/iron", + "#c:ingots/copper", { - "id": "#forge:ingots/zinc", + "id": "#c:ingots/zinc", "required": false }, { - "id": "#forge:ingots/osmium", + "id": "#c:ingots/osmium", "required": false }, { - "id": "#forge:ingots/nickel", + "id": "#c:ingots/nickel", "required": false }, { - "id": "#forge:ingots/lead", + "id": "#c:ingots/lead", "required": false }, { - "id": "#forge:ingots/tin", + "id": "#c:ingots/tin", "required": false }, { - "id": "#forge:ingots/cinnabar", + "id": "#c:ingots/cinnabar", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/metals/mercury/medium.json b/src/generated/resources/data/theurgy/tags/items/metals/mercury/medium.json index 6559d2439..4ddbe21f2 100644 --- a/src/generated/resources/data/theurgy/tags/items/metals/mercury/medium.json +++ b/src/generated/resources/data/theurgy/tags/items/metals/mercury/medium.json @@ -1,28 +1,28 @@ { "values": [ - "#forge:ingots/gold", + "#c:ingots/gold", { - "id": "#forge:ingots/uranium", + "id": "#c:ingots/uranium", "required": false }, { - "id": "#forge:ingots/silver", + "id": "#c:ingots/silver", "required": false }, { - "id": "#forge:ingots/azure_silver", + "id": "#c:ingots/azure_silver", "required": false }, { - "id": "#forge:ingots/iridium", + "id": "#c:ingots/iridium", "required": false }, { - "id": "#forge:ingots/crimson_iron", + "id": "#c:ingots/crimson_iron", "required": false }, { - "id": "#forge:ingots/platinum", + "id": "#c:ingots/platinum", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/ores/mercury/high.json b/src/generated/resources/data/theurgy/tags/items/ores/mercury/high.json index f453cac8f..691441cd4 100644 --- a/src/generated/resources/data/theurgy/tags/items/ores/mercury/high.json +++ b/src/generated/resources/data/theurgy/tags/items/ores/mercury/high.json @@ -1,18 +1,18 @@ { "values": [ - "#forge:ores/diamond", - "#forge:ores/emerald", - "#forge:ores/netherite_scrap", + "#c:ores/diamond", + "#c:ores/emerald", + "#c:ores/netherite_scrap", { - "id": "#forge:ores/allthemodium", + "id": "#c:ores/allthemodium", "required": false }, { - "id": "#forge:ores/unobtainium", + "id": "#c:ores/unobtainium", "required": false }, { - "id": "#forge:ores/vibranium", + "id": "#c:ores/vibranium", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/ores/mercury/low.json b/src/generated/resources/data/theurgy/tags/items/ores/mercury/low.json index f4fb75df1..f8f84d4f2 100644 --- a/src/generated/resources/data/theurgy/tags/items/ores/mercury/low.json +++ b/src/generated/resources/data/theurgy/tags/items/ores/mercury/low.json @@ -1,41 +1,41 @@ { "values": [ - "#forge:ores/iron", - "#forge:ores/copper", - "#forge:ores/lapis", - "#forge:ores/quartz", - "#forge:ores/redstone", - "#forge:ores/coal", + "#c:ores/iron", + "#c:ores/copper", + "#c:ores/lapis", + "#c:ores/quartz", + "#c:ores/redstone", + "#c:ores/coal", { - "id": "#forge:ores/zinc", + "id": "#c:ores/zinc", "required": false }, { - "id": "#forge:ores/osmium", + "id": "#c:ores/osmium", "required": false }, { - "id": "#forge:ores/nickel", + "id": "#c:ores/nickel", "required": false }, { - "id": "#forge:ores/lead", + "id": "#c:ores/lead", "required": false }, { - "id": "#forge:ores/tin", + "id": "#c:ores/tin", "required": false }, { - "id": "#forge:ores/cinnabar", + "id": "#c:ores/cinnabar", "required": false }, { - "id": "#forge:ores/apatite", + "id": "#c:ores/apatite", "required": false }, { - "id": "#forge:ores/sulfur", + "id": "#c:ores/sulfur", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/ores/mercury/medium.json b/src/generated/resources/data/theurgy/tags/items/ores/mercury/medium.json index 61b7a4a45..078891f2d 100644 --- a/src/generated/resources/data/theurgy/tags/items/ores/mercury/medium.json +++ b/src/generated/resources/data/theurgy/tags/items/ores/mercury/medium.json @@ -1,44 +1,44 @@ { "values": [ - "#forge:ores/gold", + "#c:ores/gold", { - "id": "#forge:ores/azure_silver", + "id": "#c:ores/azure_silver", "required": false }, { - "id": "#forge:ores/silver", + "id": "#c:ores/silver", "required": false }, { - "id": "#forge:ores/uranium", + "id": "#c:ores/uranium", "required": false }, { - "id": "#forge:ores/iridium", + "id": "#c:ores/iridium", "required": false }, { - "id": "#forge:ores/platinum", + "id": "#c:ores/platinum", "required": false }, { - "id": "#forge:ores/crimson_iron", + "id": "#c:ores/crimson_iron", "required": false }, { - "id": "#forge:ores/ruby", + "id": "#c:ores/ruby", "required": false }, { - "id": "#forge:ores/peridot", + "id": "#c:ores/peridot", "required": false }, { - "id": "#forge:ores/fluorite", + "id": "#c:ores/fluorite", "required": false }, { - "id": "#forge:ores/sapphire", + "id": "#c:ores/sapphire", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/other_minerals.json b/src/generated/resources/data/theurgy/tags/items/other_minerals.json index b35bcf1e2..f1a004fea 100644 --- a/src/generated/resources/data/theurgy/tags/items/other_minerals.json +++ b/src/generated/resources/data/theurgy/tags/items/other_minerals.json @@ -1,6 +1,6 @@ { "values": [ "#minecraft:coals", - "#forge:dusts/redstone" + "#c:dusts/redstone" ] } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/tags/items/other_minerals/mercury/low.json b/src/generated/resources/data/theurgy/tags/items/other_minerals/mercury/low.json index b35bcf1e2..f1a004fea 100644 --- a/src/generated/resources/data/theurgy/tags/items/other_minerals/mercury/low.json +++ b/src/generated/resources/data/theurgy/tags/items/other_minerals/mercury/low.json @@ -1,6 +1,6 @@ { "values": [ "#minecraft:coals", - "#forge:dusts/redstone" + "#c:dusts/redstone" ] } \ No newline at end of file diff --git a/src/generated/resources/data/theurgy/tags/items/other_minerals/mercury/medium.json b/src/generated/resources/data/theurgy/tags/items/other_minerals/mercury/medium.json index 6dee9b614..6d8ba34d1 100644 --- a/src/generated/resources/data/theurgy/tags/items/other_minerals/mercury/medium.json +++ b/src/generated/resources/data/theurgy/tags/items/other_minerals/mercury/medium.json @@ -1,7 +1,7 @@ { "values": [ { - "id": "#forge:gems/sulfur", + "id": "#c:gems/sulfur", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/high.json b/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/high.json index 75fd04279..c76002af8 100644 --- a/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/high.json +++ b/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/high.json @@ -1,15 +1,15 @@ { "values": [ { - "id": "#forge:raw_materials/allthemodium", + "id": "#c:raw_materials/allthemodium", "required": false }, { - "id": "#forge:raw_materials/unobtainium", + "id": "#c:raw_materials/unobtainium", "required": false }, { - "id": "#forge:raw_materials/vibranium", + "id": "#c:raw_materials/vibranium", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/low.json b/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/low.json index b846d5eb7..a31084fb1 100644 --- a/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/low.json +++ b/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/low.json @@ -1,29 +1,29 @@ { "values": [ - "#forge:raw_materials/iron", - "#forge:raw_materials/copper", + "#c:raw_materials/iron", + "#c:raw_materials/copper", { - "id": "#forge:raw_materials/zinc", + "id": "#c:raw_materials/zinc", "required": false }, { - "id": "#forge:raw_materials/osmium", + "id": "#c:raw_materials/osmium", "required": false }, { - "id": "#forge:raw_materials/nickel", + "id": "#c:raw_materials/nickel", "required": false }, { - "id": "#forge:raw_materials/lead", + "id": "#c:raw_materials/lead", "required": false }, { - "id": "#forge:raw_materials/tin", + "id": "#c:raw_materials/tin", "required": false }, { - "id": "#forge:raw_materials/cinnabar", + "id": "#c:raw_materials/cinnabar", "required": false } ] diff --git a/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/medium.json b/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/medium.json index ca0eaae07..6816e795a 100644 --- a/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/medium.json +++ b/src/generated/resources/data/theurgy/tags/items/raw_materials/mercury/medium.json @@ -1,28 +1,28 @@ { "values": [ - "#forge:raw_materials/gold", + "#c:raw_materials/gold", { - "id": "#forge:raw_materials/uranium", + "id": "#c:raw_materials/uranium", "required": false }, { - "id": "#forge:raw_materials/silver", + "id": "#c:raw_materials/silver", "required": false }, { - "id": "#forge:raw_materials/azure_silver", + "id": "#c:raw_materials/azure_silver", "required": false }, { - "id": "#forge:raw_materials/iridium", + "id": "#c:raw_materials/iridium", "required": false }, { - "id": "#forge:raw_materials/crimson_iron", + "id": "#c:raw_materials/crimson_iron", "required": false }, { - "id": "#forge:raw_materials/platinum", + "id": "#c:raw_materials/platinum", "required": false } ] diff --git a/src/main/java/com/klikli_dev/theurgy/Theurgy.java b/src/main/java/com/klikli_dev/theurgy/Theurgy.java index 1cde85420..d06ef06a9 100644 --- a/src/main/java/com/klikli_dev/theurgy/Theurgy.java +++ b/src/main/java/com/klikli_dev/theurgy/Theurgy.java @@ -18,10 +18,10 @@ import com.klikli_dev.theurgy.content.apparatus.mercurycatalyst.MercuryCatalystBlock; import com.klikli_dev.theurgy.content.apparatus.salammoniacaccumulator.render.SalAmmoniacAccumulatorRenderer; import com.klikli_dev.theurgy.content.apparatus.salammoniactank.render.SalAmmoniacTankRenderer; -import com.klikli_dev.theurgy.content.item.salt.AlchemicalSaltItem; -import com.klikli_dev.theurgy.content.item.sulfur.AlchemicalSulfurItem; import com.klikli_dev.theurgy.content.item.divinationrod.DivinationRodItem; import com.klikli_dev.theurgy.content.item.mode.ModeItem; +import com.klikli_dev.theurgy.content.item.salt.AlchemicalSaltItem; +import com.klikli_dev.theurgy.content.item.sulfur.AlchemicalSulfurItem; import com.klikli_dev.theurgy.content.render.*; import com.klikli_dev.theurgy.content.render.itemhud.ItemHUD; import com.klikli_dev.theurgy.content.render.outliner.Outliner; @@ -47,7 +47,7 @@ import net.minecraft.world.phys.Vec3; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.IEventBus; -import net.neoforged.fml.ModLoadingContext; +import net.neoforged.fml.ModContainer; import net.neoforged.fml.common.Mod; import net.neoforged.fml.config.ModConfig; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; @@ -55,14 +55,12 @@ import net.neoforged.fml.event.lifecycle.FMLDedicatedServerSetupEvent; import net.neoforged.fml.loading.FMLEnvironment; import net.neoforged.neoforge.client.event.*; -import net.neoforged.neoforge.client.gui.overlay.VanillaGuiOverlay; +import net.neoforged.neoforge.client.gui.VanillaGuiLayers; import net.neoforged.neoforge.client.model.DynamicFluidContainerModel; import net.neoforged.neoforge.common.NeoForge; -import net.neoforged.neoforge.event.TickEvent; import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent; import net.neoforged.neoforge.registries.DeferredHolder; import org.slf4j.Logger; -import software.bernie.geckolib.GeckoLib; @Mod(Theurgy.MODID) @@ -72,12 +70,12 @@ public class Theurgy { public static Theurgy INSTANCE; - public Theurgy(IEventBus modEventBus) { + public Theurgy(IEventBus modEventBus, ModContainer modContainer) { INSTANCE = this; - ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, ServerConfig.get().spec); - ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, CommonConfig.get().spec); - ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ClientConfig.get().spec); + modContainer.registerConfig(ModConfig.Type.SERVER, ServerConfig.get().spec); + modContainer.registerConfig(ModConfig.Type.COMMON, CommonConfig.get().spec); + modContainer.registerConfig(ModConfig.Type.CLIENT, ClientConfig.get().spec); ItemRegistry.ITEMS.register(modEventBus); CreativeModeTabRegistry.CREATIVE_MODE_TABS.register(modEventBus); @@ -94,13 +92,16 @@ public Theurgy(IEventBus modEventBus) { RecipeSerializerRegistry.RECIPE_SERIALIZERS.register(modEventBus); RecipeTypeRegistry.RECIPE_TYPES.register(modEventBus); ConditionRegistry.CONDITION_SERIALIZERS.register(modEventBus); - IngredientTypeRegistry.INGREDIENT_TYPES.register(modEventBus); + RecipeResultRegistry.RECIPE_RESULT_TYPES.register(modEventBus); + DataComponentRegistry.DATA_COMPONENTS.register(modEventBus); modEventBus.addListener(this::onCommonSetup); modEventBus.addListener(this::onServerSetup); modEventBus.addListener(Networking::register); modEventBus.addListener(TheurgyDataGenerators::onGatherData); + + modEventBus.addListener(TheurgyRegistries::onRegisterRegistries); modEventBus.addListener(SulfurRegistry::onBuildCreativeModTabs); modEventBus.addListener(SaltRegistry::onBuildCreativeModTabs); modEventBus.addListener(CapabilityRegistry::onRegisterCapabilities); @@ -131,8 +132,6 @@ public Theurgy(IEventBus modEventBus) { NeoForge.EVENT_BUS.addListener(KeyMappingsRegistry::onKeyInput); NeoForge.EVENT_BUS.addListener(KeyMappingsRegistry::onMouseInput); } - - GeckoLib.initialize(modEventBus); } public static ResourceLocation loc(String path) { @@ -157,30 +156,24 @@ public static void onClientSetup(FMLClientSetupEvent event) { PageRenderers.onClientSetup(event); - NeoForge.EVENT_BUS.addListener((TickEvent.ClientTickEvent e) -> { - if (e.phase == TickEvent.Phase.END) { - ClientTicks.endClientTick(Minecraft.getInstance()); - } + NeoForge.EVENT_BUS.addListener((ClientTickEvent.Post e) -> { + ClientTicks.endClientTick(Minecraft.getInstance()); }); - NeoForge.EVENT_BUS.addListener((TickEvent.RenderTickEvent e) -> { - if (e.phase == TickEvent.Phase.START) { - ClientTicks.renderTickStart(e.renderTickTime); - } else { - ClientTicks.renderTickEnd(); - } + NeoForge.EVENT_BUS.addListener((RenderFrameEvent.Pre e) -> { + ClientTicks.renderTickStart(e.getPartialTick()); + + }); + NeoForge.EVENT_BUS.addListener((RenderFrameEvent.Post e) -> { + ClientTicks.renderTickEnd(); }); LOGGER.info("Client setup complete."); } - public static void onClientTick(TickEvent.ClientTickEvent event) { + public static void onClientTick(ClientTickEvent.Post event) { if (Minecraft.getInstance().level == null || Minecraft.getInstance().player == null) return; - if (event.phase == TickEvent.Phase.START) { - return; - } - Outliner.get().tick(); BlockRegistry.CALORIC_FLUX_EMITTER.get().selectionBehaviour().tick(Minecraft.getInstance().player); BlockRegistry.SULFURIC_FLUX_EMITTER.get().selectionBehaviour().tick(Minecraft.getInstance().player); @@ -208,7 +201,7 @@ public static void onRenderLevelStage(RenderLevelStageEvent event) { } public static void onRecipesUpdated(RecipesUpdatedEvent event) { - //now disable rendering of sulfurs that have no recipe -> otherwise we see "no source" sulfurs in tag recipes + //now disable rendering of sulfurs that have no recipe in modonomicon -> otherwise we see "no source" sulfurs in tag recipes //See also JeiPlugin.registerRecipes var registryAccess = Minecraft.getInstance().level.registryAccess(); var liquefactionRecipes = event.getRecipeManager().getAllRecipesFor(RecipeTypeRegistry.LIQUEFACTION.get()); @@ -274,8 +267,8 @@ public static void onRegisterBlockColors(RegisterColorHandlersEvent.Block event) event.register(MercuryCatalystBlock::getBlockColor, BlockRegistry.MERCURY_CATALYST.get()); } - public static void onRegisterGuiOverlays(RegisterGuiOverlaysEvent event) { - event.registerAbove(VanillaGuiOverlay.HOTBAR.id(), Theurgy.loc("item_hud"), ItemHUD.get()); + public static void onRegisterGuiOverlays(RegisterGuiLayersEvent event) { + event.registerAbove(VanillaGuiLayers.HOTBAR, Theurgy.loc("item_hud"), ItemHUD.get()); } public static void onMouseScrolling(InputEvent.MouseScrollingEvent event) { @@ -310,13 +303,11 @@ public static void onRightClick(PlayerInteractEvent.RightClickBlock event) { public static void onLeftClick(PlayerInteractEvent.LeftClickBlock event) { if (BlockRegistry.CALORIC_FLUX_EMITTER.get().selectionBehaviour().onLeftClickBlock(event.getLevel(), event.getEntity(), event.getHand(), event.getPos(), event.getFace())) { event.setCanceled(true); - event.setCancellationResult(InteractionResult.SUCCESS); return; } if (BlockRegistry.SULFURIC_FLUX_EMITTER.get().selectionBehaviour().onLeftClickBlock(event.getLevel(), event.getEntity(), event.getHand(), event.getPos(), event.getFace())) { event.setCanceled(true); - event.setCancellationResult(InteractionResult.SUCCESS); } } } diff --git a/src/main/java/com/klikli_dev/theurgy/TheurgyConstants.java b/src/main/java/com/klikli_dev/theurgy/TheurgyConstants.java index 13d9f4831..e2d42bbc7 100644 --- a/src/main/java/com/klikli_dev/theurgy/TheurgyConstants.java +++ b/src/main/java/com/klikli_dev/theurgy/TheurgyConstants.java @@ -71,9 +71,9 @@ public static class Mode { public static final String MERCURIAL_WAND_SET_SELECTED_DIRECTION = PREFIX + "mercurial_wand.set_selected_direction"; public static final String MERCURIAL_WAND_SET_SELECTED_DIRECTION_WITH_TARGET = PREFIX + "mercurial_wand.set_selected_direction.with_target"; public static final String MERCURIAL_WAND_SET_SELECTED_DIRECTION_SUCCESS = PREFIX + "mercurial_wand.set_selected_direction.success"; - public static final String MERCURIAL_WAND_ROTATE_SELECTED_DIRECTION = PREFIX + "mercurial_wand.rotate_selected_direction"; - public static final String MERCURIAL_WAND_ROTATE_SELECTED_DIRECTION_WITH_TARGET = PREFIX + "mercurial_wand.rotate_selected_direction.with_target"; - public static final String MERCURIAL_WAND_ROTATE_SELECTED_DIRECTION_SUCCESS = PREFIX + "mercurial_wand.rotate_selected_direction.success"; + public static final String MERCURIAL_WAND_CYCLE_SELECTED_DIRECTION = PREFIX + "mercurial_wand.rotate_selected_direction"; + public static final String MERCURIAL_WAND_CYCLE_SELECTED_DIRECTION_WITH_TARGET = PREFIX + "mercurial_wand.rotate_selected_direction.with_target"; + public static final String MERCURIAL_WAND_CYCLE_SELECTED_DIRECTION_SUCCESS = PREFIX + "mercurial_wand.rotate_selected_direction.success"; public static final String MERCURIAL_WAND_SWITCH_LOGISTICS_ENABLED = PREFIX + "mercurial_wand.switch_logistics_enabled"; public static final String MERCURIAL_WAND_SWITCH_LOGISTICS_ENABLED_HUD = PREFIX + "mercurial_wand.switch_logistics_enabled.hud"; public static final String MERCURIAL_WAND_SWITCH_LOGISTICS_ENABLED_SUCCESS = PREFIX + "mercurial_wand.switch_logistics_enabled.success"; diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationAnimationBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationAnimationBehaviour.java index 2081d2dd5..cc4c912c8 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationAnimationBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationAnimationBehaviour.java @@ -6,10 +6,10 @@ import com.klikli_dev.theurgy.content.behaviour.animation.AnimationBehaviour; import software.bernie.geckolib.animatable.GeoBlockEntity; -import software.bernie.geckolib.core.animation.AnimationController; -import software.bernie.geckolib.core.animation.AnimationState; -import software.bernie.geckolib.core.animation.RawAnimation; -import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.animation.AnimationController; +import software.bernie.geckolib.animation.AnimationState; +import software.bernie.geckolib.animation.PlayState; +import software.bernie.geckolib.animation.RawAnimation; public class CalcinationAnimationBehaviour extends AnimationBehaviour { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationCraftingBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationCraftingBehaviour.java index ed749ba6f..d04f62d2c 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationCraftingBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationCraftingBehaviour.java @@ -30,7 +30,7 @@ public CalcinationCraftingBehaviour(BlockEntity blockEntity, Supplier getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { - this.storageBehaviour.readNetwork(tag); - this.craftingBehaviour.readNetwork(tag); + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.readNetwork(pTag, pRegistries); + this.craftingBehaviour.readNetwork(pTag, pRegistries); } - public void writeNetwork(CompoundTag tag) { - this.storageBehaviour.writeNetwork(tag); - this.craftingBehaviour.writeNetwork(tag); + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.writeNetwork(pTag, pRegistries); + this.craftingBehaviour.writeNetwork(pTag, pRegistries); } public void tickServer() { @@ -92,24 +92,24 @@ public void tickServer() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - pTag.put("heatReceiver", this.heatReceiver.serializeNBT()); + pTag.put("heatReceiver", this.heatReceiver.serializeNBT(pRegistries)); - this.storageBehaviour.saveAdditional(pTag); - this.craftingBehaviour.saveAdditional(pTag); + this.storageBehaviour.saveAdditional(pTag, pRegistries); + this.craftingBehaviour.saveAdditional(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); if (pTag.contains("heatReceiver")) - this.heatReceiver.deserializeNBT(pTag.get("heatReceiver")); + this.heatReceiver.deserializeNBT(pRegistries, pTag.get("heatReceiver")); - this.storageBehaviour.load(pTag); - this.craftingBehaviour.load(pTag); + this.storageBehaviour.loadAdditional(pTag, pRegistries); + this.craftingBehaviour.loadAdditional(pTag, pRegistries); } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationOvenBlockItem.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationOvenBlockItem.java index f32fb123a..f4b2df2e6 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationOvenBlockItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationOvenBlockItem.java @@ -10,8 +10,8 @@ import net.minecraft.world.level.block.Block; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.function.Consumer; diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationStorageBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationStorageBehaviour.java index 28fdf6d05..564318f64 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationStorageBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/calcinationoven/CalcinationStorageBehaviour.java @@ -7,6 +7,7 @@ import com.klikli_dev.theurgy.content.behaviour.storage.StorageBehaviour; import com.klikli_dev.theurgy.content.storage.MonitoredItemStackHandler; import com.klikli_dev.theurgy.content.storage.PreventInsertWrapper; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.entity.BlockEntity; @@ -46,25 +47,25 @@ public CalcinationStorageBehaviour(BlockEntity blockEntity, Supplier new EncoderException("Failed to encode: " + e + " " + this.selectedPoints))); + pTag.put("mercuryFluxStorage", this.mercuryFluxStorage.serializeNBT(pRegistries)); + pTag.put("selectedPoints", CaloricFluxEmitterSelectedPoint.LIST_CODEC.encodeStart(NbtOps.INSTANCE, this.selectedPoints).getOrThrow((e) -> new EncoderException("Failed to encode: " + e + " " + this.selectedPoints))); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); if (pTag.contains("mercuryFluxStorage")) //get instead of getCompound here because the storage serializes as int tag - this.mercuryFluxStorage.deserializeNBT(pTag.get("mercuryFluxStorage")); + this.mercuryFluxStorage.deserializeNBT(pRegistries, pTag.get("mercuryFluxStorage")); if (pTag.contains("selectedPoints")) { - this.selectedPoints = Util.getOrThrow(CaloricFluxEmitterSelectedPoint.LIST_CODEC.parse(NbtOps.INSTANCE, pTag.get("selectedPoints")), (e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("selectedPoints"))); + this.selectedPoints = CaloricFluxEmitterSelectedPoint.LIST_CODEC.parse(NbtOps.INSTANCE, pTag.get("selectedPoints")).getOrThrow((e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("selectedPoints"))); } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/caloricfluxemitter/CaloricFluxEmitterSelectedPoint.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/caloricfluxemitter/CaloricFluxEmitterSelectedPoint.java index eab95feea..5a7cc3ef3 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/caloricfluxemitter/CaloricFluxEmitterSelectedPoint.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/caloricfluxemitter/CaloricFluxEmitterSelectedPoint.java @@ -7,10 +7,13 @@ import com.klikli_dev.theurgy.TheurgyConstants; import com.klikli_dev.theurgy.content.behaviour.selection.SelectedPoint; import com.klikli_dev.theurgy.content.render.Color; +import com.klikli_dev.theurgy.logistics.Wire; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.BlockPos; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; @@ -24,6 +27,12 @@ public class CaloricFluxEmitterSelectedPoint extends SelectedPoint STREAM_CODEC = StreamCodec.composite( + BlockPos.STREAM_CODEC, + SelectedPoint::getBlockPos, + CaloricFluxEmitterSelectedPoint::new + ); + public static final Codec> LIST_CODEC = Codec.list(CODEC); public static final Color color = new Color(0xDDC166, false); diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionCachedCheck.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionCachedCheck.java index 42100fe43..028f2d333 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionCachedCheck.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionCachedCheck.java @@ -6,7 +6,6 @@ import com.klikli_dev.theurgy.content.recipe.DigestionRecipe; import com.klikli_dev.theurgy.content.recipe.wrapper.RecipeWrapperWithFluid; -import com.mojang.datafixers.util.Pair; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeHolder; @@ -33,34 +32,32 @@ public DigestionCachedCheck(RecipeType type) { this.internal = RecipeManager.createCheck(type); } - private Optional>> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { - + private Optional> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { var recipeManager = level.getRecipeManager(); - var map = recipeManager.byType(this.type); if (lastRecipe != null) { - var recipe = map.get(lastRecipe); + + var recipe = recipeManager.byKeyTyped(this.type, lastRecipe); //test only the ingredient without the (separate) fluid ingredient check that the recipe.matches() would. if (recipe != null && recipe.value().getIngredients().stream().anyMatch(i -> i.test(stack))) { - return Optional.of(Pair.of(lastRecipe, recipe)); + return Optional.of(recipe); } } - return map.entrySet().stream().filter((entry) -> entry.getValue().value().getIngredients().stream().anyMatch(i -> i.test(stack))).findFirst().map((entry) -> Pair.of(entry.getKey(), entry.getValue())); + return recipeManager.byType(this.type).stream().filter((entry) -> entry.value().getIngredients().stream().anyMatch(i -> i.test(stack))).findFirst(); } - private Optional>> getRecipeFor(FluidStack stack, Level level, @Nullable ResourceLocation lastRecipe) { - + private Optional> getRecipeFor(FluidStack stack, Level level, @Nullable ResourceLocation lastRecipe) { var recipeManager = level.getRecipeManager(); - var map = recipeManager.byType(this.type); if (lastRecipe != null) { - var recipe = map.get(lastRecipe); + + var recipe = recipeManager.byKeyTyped(this.type, lastRecipe); //test only the fluid without the (separate) item ingredients check that the recipe.matches() would. if (recipe != null && recipe.value().getFluid().test(stack)) { - return Optional.of(Pair.of(lastRecipe, recipe)); + return Optional.of(recipe); } } - return map.entrySet().stream().filter((entry) -> entry.getValue().value().getFluid().test(stack)).findFirst().map((entry) -> Pair.of(entry.getKey(), entry.getValue())); + return recipeManager.byType(this.type).stream().filter((entry) -> entry.value().getFluid().test(stack)).findFirst(); } /** @@ -69,9 +66,9 @@ private Optional>> getRecip public Optional> getRecipeFor(ItemStack stack, Level level) { var optional = this.getRecipeFor(stack, level, this.lastRecipe); if (optional.isPresent()) { - var pair = optional.get(); - this.lastRecipe = pair.getFirst(); - return Optional.of(pair.getSecond()); + var recipeHolder = optional.get(); + this.lastRecipe = recipeHolder.id(); + return optional; } else { return Optional.empty(); } @@ -83,9 +80,9 @@ public Optional> getRecipeFor(ItemStack stack, Lev public Optional> getRecipeFor(FluidStack stack, Level level) { var optional = this.getRecipeFor(stack, level, this.lastRecipe); if (optional.isPresent()) { - var pair = optional.get(); - this.lastRecipe = pair.getFirst(); - return Optional.of(pair.getSecond()); + var recipeHolder = optional.get(); + this.lastRecipe = recipeHolder.id(); + return optional; } else { return Optional.empty(); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionCraftingBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionCraftingBehaviour.java index 816528a30..99452ba81 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionCraftingBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionCraftingBehaviour.java @@ -35,7 +35,7 @@ public DigestionCraftingBehaviour(BlockEntity blockEntity, Supplier getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { - this.storageBehaviour.readNetwork(tag); - this.craftingBehaviour.readNetwork(tag); + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.readNetwork(tag, pRegistries); + this.craftingBehaviour.readNetwork(tag, pRegistries); } - public void writeNetwork(CompoundTag tag) { - this.storageBehaviour.writeNetwork(tag); - this.craftingBehaviour.writeNetwork(tag); + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.writeNetwork(tag, pRegistries); + this.craftingBehaviour.writeNetwork(tag, pRegistries); } public void tickServer() { @@ -98,19 +99,19 @@ public boolean hasInput() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - this.storageBehaviour.saveAdditional(pTag); - this.craftingBehaviour.saveAdditional(pTag); + this.storageBehaviour.saveAdditional(pTag, pRegistries); + this.craftingBehaviour.saveAdditional(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); - this.storageBehaviour.load(pTag); - this.craftingBehaviour.load(pTag); + this.storageBehaviour.loadAdditional(pTag, pRegistries); + this.craftingBehaviour.loadAdditional(pTag, pRegistries); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionVatInteractionBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionVatInteractionBehaviour.java index 7ed21ceff..13f3f18d1 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionVatInteractionBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/digestionvat/DigestionVatInteractionBehaviour.java @@ -12,21 +12,24 @@ import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; public class DigestionVatInteractionBehaviour extends GenericVatInteractionBehaviour { + @Override - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + public ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { var blockEntity = pLevel.getBlockEntity(pPos); if (!(blockEntity instanceof DigestionVatBlockEntity vat)) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - return super.use(pState, pLevel, pPos, pPlayer, pHand, pHit); + return super.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult); } @Override @@ -38,4 +41,6 @@ protected void showNoRecipeMessage(Level level, Player player) { protected void showClosedMessage(Level level, Player player) { player.displayClientMessage(Component.translatable(TheurgyConstants.I18n.Behaviour.INTERACTION_DIGESTION_VAT_CLOSED).withStyle(ChatFormatting.RED), true); } + + } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillationCachedCheck.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillationCachedCheck.java index c8303efdc..9d36ea1da 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillationCachedCheck.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillationCachedCheck.java @@ -32,19 +32,18 @@ public DistillationCachedCheck(RecipeType type) { this.internal = RecipeManager.createCheck(type); } - private Optional>> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { - + private Optional> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { var recipeManager = level.getRecipeManager(); - var map = recipeManager.byType(this.type); if (lastRecipe != null) { - var recipe = map.get(lastRecipe); + + var recipe = recipeManager.byKeyTyped(this.type, lastRecipe); //test only the ingredient without the (separate) ingredient count check that the recipe.matches() would. if (recipe != null && recipe.value().getIngredient().test(stack)) { - return Optional.of(Pair.of(lastRecipe, recipe)); + return Optional.of(recipe); } } - return map.entrySet().stream().filter((entry) -> entry.getValue().value().getIngredient().test(stack)).findFirst().map((entry) -> Pair.of(entry.getKey(), entry.getValue())); + return recipeManager.byType(this.type).stream().filter((entry) -> entry.value().getIngredient().test(stack)).findFirst(); } /** @@ -53,9 +52,9 @@ private Optional>> getRe public Optional> getRecipeFor(ItemStack stack, Level level) { var optional = this.getRecipeFor(stack, level, this.lastRecipe); if (optional.isPresent()) { - var pair = optional.get(); - this.lastRecipe = pair.getFirst(); - return Optional.of(pair.getSecond()); + var recipeHolder = optional.get(); + this.lastRecipe = recipeHolder.id(); + return optional; } else { return Optional.empty(); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillationCraftingBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillationCraftingBehaviour.java index 2e272a012..75117e57f 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillationCraftingBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillationCraftingBehaviour.java @@ -28,7 +28,7 @@ public DistillationCraftingBehaviour(BlockEntity blockEntity, Supplier { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlock.java index fbdd747ca..23f53f421 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlock.java @@ -12,6 +12,7 @@ import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -129,8 +130,7 @@ public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe @@ -138,11 +138,11 @@ public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Pla //handle top block pPos = pState.getValue(HALF) == DoubleBlockHalf.UPPER ? pPos.below() : pPos; - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlockEntity.java index d7ed2fee8..24005dd68 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlockEntity.java @@ -9,6 +9,7 @@ import com.klikli_dev.theurgy.content.capability.DefaultHeatReceiver; import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -18,14 +19,13 @@ import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.animatable.GeoBlockEntity; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; -import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; public class DistillerBlockEntity extends BlockEntity implements GeoBlockEntity { - public DefaultHeatReceiver heatReceiver; public DistillationStorageBehaviour storageBehaviour; @@ -48,15 +48,15 @@ public DistillerBlockEntity(BlockPos pPos, BlockState pBlockState) { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -66,21 +66,21 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { - this.storageBehaviour.readNetwork(tag); - this.craftingBehaviour.readNetwork(tag); + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.readNetwork(tag, pRegistries); + this.craftingBehaviour.readNetwork(tag, pRegistries); } - public void writeNetwork(CompoundTag tag) { - this.storageBehaviour.writeNetwork(tag); - this.craftingBehaviour.writeNetwork(tag); + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.writeNetwork(tag, pRegistries);; + this.craftingBehaviour.writeNetwork(tag, pRegistries);; } public void tickServer() { @@ -91,24 +91,24 @@ public void tickServer() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - pTag.put("heatReceiver", this.heatReceiver.serializeNBT()); + pTag.put("heatReceiver", this.heatReceiver.serializeNBT(pRegistries)); - this.storageBehaviour.saveAdditional(pTag); - this.craftingBehaviour.saveAdditional(pTag); + this.storageBehaviour.saveAdditional(pTag, pRegistries); + this.craftingBehaviour.saveAdditional(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); if (pTag.contains("heatReceiver")) - this.heatReceiver.deserializeNBT(pTag.get("heatReceiver")); + this.heatReceiver.deserializeNBT(pRegistries, pTag.get("heatReceiver")); - this.storageBehaviour.load(pTag); - this.craftingBehaviour.load(pTag); + this.storageBehaviour.loadAdditional(pTag, pRegistries); + this.craftingBehaviour.loadAdditional(pTag, pRegistries); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlockItem.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlockItem.java index c2e480f2b..76552e597 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlockItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/DistillerBlockItem.java @@ -10,8 +10,8 @@ import net.minecraft.world.level.block.Block; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.function.Consumer; diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/render/DistillerModel.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/render/DistillerModel.java index 23b93580f..d2c30c8ca 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/render/DistillerModel.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/distiller/render/DistillerModel.java @@ -6,7 +6,7 @@ import com.klikli_dev.theurgy.Theurgy; import net.minecraft.resources.ResourceLocation; -import software.bernie.geckolib.core.animatable.GeoAnimatable; +import software.bernie.geckolib.animatable.GeoAnimatable; import software.bernie.geckolib.model.GeoModel; public class DistillerModel extends GeoModel { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationCachedCheck.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationCachedCheck.java index d69eb5c4f..7fdf6668b 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationCachedCheck.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationCachedCheck.java @@ -6,7 +6,6 @@ import com.klikli_dev.theurgy.content.recipe.FermentationRecipe; import com.klikli_dev.theurgy.content.recipe.wrapper.RecipeWrapperWithFluid; -import com.mojang.datafixers.util.Pair; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeHolder; @@ -33,34 +32,32 @@ public FermentationCachedCheck(RecipeType type) { this.internal = RecipeManager.createCheck(type); } - private Optional>> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { - + private Optional> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { var recipeManager = level.getRecipeManager(); - var map = recipeManager.byType(this.type); if (lastRecipe != null) { - var recipe = map.get(lastRecipe); + + var recipe = recipeManager.byKeyTyped(this.type, lastRecipe); //test only the ingredient without the (separate) fluid ingredient check that the recipe.matches() would. if (recipe != null && recipe.value().getIngredients().stream().anyMatch(i -> i.test(stack))) { - return Optional.of(Pair.of(lastRecipe, recipe)); + return Optional.of(recipe); } } - return map.entrySet().stream().filter((entry) -> entry.getValue().value().getIngredients().stream().anyMatch(i -> i.test(stack))).findFirst().map((entry) -> Pair.of(entry.getKey(), entry.getValue())); + return recipeManager.byType(this.type).stream().filter((entry) -> entry.value().getIngredients().stream().anyMatch(i -> i.test(stack))).findFirst(); } - private Optional>> getRecipeFor(FluidStack stack, Level level, @Nullable ResourceLocation lastRecipe) { - + private Optional> getRecipeFor(FluidStack stack, Level level, @Nullable ResourceLocation lastRecipe) { var recipeManager = level.getRecipeManager(); - var map = recipeManager.byType(this.type); if (lastRecipe != null) { - var recipe = map.get(lastRecipe); + + var recipe = recipeManager.byKeyTyped(this.type, lastRecipe); //test only the fluid without the (separate) item ingredients check that the recipe.matches() would. if (recipe != null && recipe.value().getFluid().test(stack)) { - return Optional.of(Pair.of(lastRecipe, recipe)); + return Optional.of(recipe); } } - return map.entrySet().stream().filter((entry) -> entry.getValue().value().getFluid().test(stack)).findFirst().map((entry) -> Pair.of(entry.getKey(), entry.getValue())); + return recipeManager.byType(this.type).stream().filter((entry) -> entry.value().getFluid().test(stack)).findFirst(); } /** @@ -69,9 +66,9 @@ private Optional>> getRe public Optional> getRecipeFor(ItemStack stack, Level level) { var optional = this.getRecipeFor(stack, level, this.lastRecipe); if (optional.isPresent()) { - var pair = optional.get(); - this.lastRecipe = pair.getFirst(); - return Optional.of(pair.getSecond()); + var recipeHolder = optional.get(); + this.lastRecipe = recipeHolder.id(); + return optional; } else { return Optional.empty(); } @@ -83,9 +80,9 @@ public Optional> getRecipeFor(ItemStack stack, public Optional> getRecipeFor(FluidStack stack, Level level) { var optional = this.getRecipeFor(stack, level, this.lastRecipe); if (optional.isPresent()) { - var pair = optional.get(); - this.lastRecipe = pair.getFirst(); - return Optional.of(pair.getSecond()); + var recipeHolder = optional.get(); + this.lastRecipe = recipeHolder.id(); + return optional; } else { return Optional.empty(); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationCraftingBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationCraftingBehaviour.java index e7dad27d4..d0b396c63 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationCraftingBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationCraftingBehaviour.java @@ -35,7 +35,7 @@ public FermentationCraftingBehaviour(BlockEntity blockEntity, Supplier getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { - this.storageBehaviour.readNetwork(tag); - this.craftingBehaviour.readNetwork(tag); + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.readNetwork(tag, pRegistries); + this.craftingBehaviour.readNetwork(tag, pRegistries); } - public void writeNetwork(CompoundTag tag) { - this.storageBehaviour.writeNetwork(tag); - this.craftingBehaviour.writeNetwork(tag); + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.writeNetwork(tag, pRegistries);; + this.craftingBehaviour.writeNetwork(tag, pRegistries);; } public void tickServer() { @@ -94,19 +95,19 @@ public boolean hasInput() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - this.storageBehaviour.saveAdditional(pTag); - this.craftingBehaviour.saveAdditional(pTag); + this.storageBehaviour.saveAdditional(pTag, pRegistries); + this.craftingBehaviour.saveAdditional(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); - this.storageBehaviour.load(pTag); - this.craftingBehaviour.load(pTag); + this.storageBehaviour.loadAdditional(pTag, pRegistries); + this.craftingBehaviour.loadAdditional(pTag, pRegistries); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationVatInteractionBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationVatInteractionBehaviour.java index cb95a51ac..27507a5c9 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationVatInteractionBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/fermentationvat/FermentationVatInteractionBehaviour.java @@ -5,6 +5,7 @@ package com.klikli_dev.theurgy.content.apparatus.fermentationvat; import com.klikli_dev.theurgy.TheurgyConstants; +import com.klikli_dev.theurgy.content.apparatus.digestionvat.DigestionVatBlockEntity; import com.klikli_dev.theurgy.content.behaviour.interaction.GenericVatInteractionBehaviour; import com.klikli_dev.theurgy.content.recipe.FermentationRecipe; import net.minecraft.ChatFormatting; @@ -12,21 +13,24 @@ import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; public class FermentationVatInteractionBehaviour extends GenericVatInteractionBehaviour { + @Override - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + public ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { var blockEntity = pLevel.getBlockEntity(pPos); if (!(blockEntity instanceof FermentationVatBlockEntity vat)) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - return super.use(pState, pLevel, pPos, pPlayer, pHand, pHit); + return super.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult); } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorBlock.java index 7130a4b10..950ce5fbf 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorBlock.java @@ -14,6 +14,7 @@ import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -159,9 +160,9 @@ public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) return pState.getValue(HALF) == DoubleBlockHalf.LOWER || belowState.is(this); } + @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe @@ -169,11 +170,11 @@ public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Pla //handle top block pPos = pState.getValue(HALF) == DoubleBlockHalf.UPPER ? pPos.below() : pPos; - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorBlockEntity.java index 1d664802e..f7c4c52ff 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorBlockEntity.java @@ -13,6 +13,7 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; @@ -70,15 +71,15 @@ public void sendBlockUpdated() { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -88,24 +89,24 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("outputInventory")) - this.outputInventory.deserializeNBT(pTag.getCompound("outputInventory")); + this.outputInventory.deserializeNBT(pRegistries, pTag.getCompound("outputInventory")); - this.craftingBehaviour.readNetwork(pTag); + this.craftingBehaviour.readNetwork(pTag, pRegistries); } - public void writeNetwork(CompoundTag pTag) { - pTag.put("outputInventory", this.outputInventory.serializeNBT()); + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + pTag.put("outputInventory", this.outputInventory.serializeNBT(pRegistries)); - this.craftingBehaviour.writeNetwork(pTag); + this.craftingBehaviour.writeNetwork(pTag, pRegistries); } public void tickServer() { @@ -137,22 +138,22 @@ public void tickClient() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - pTag.put("heatReceiver", this.heatReceiver.serializeNBT()); + pTag.put("heatReceiver", this.heatReceiver.serializeNBT(pRegistries)); - this.writeNetwork(pTag); + this.writeNetwork(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); if (pTag.contains("heatReceiver")) - this.heatReceiver.deserializeNBT(pTag.get("heatReceiver")); + this.heatReceiver.deserializeNBT(pRegistries, pTag.get("heatReceiver")); - this.readNetwork(pTag); + this.readNetwork(pTag, pRegistries); } private void checkForVessel(BlockPos pos) { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlock.java index 292700ab6..47b2bbabb 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlock.java @@ -11,7 +11,9 @@ import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; @@ -55,16 +57,15 @@ public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) { } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlockEntity.java index d7adec8fb..9c6b36735 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlockEntity.java @@ -8,6 +8,7 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import com.klikli_dev.theurgy.registry.ItemTagRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -20,8 +21,8 @@ import net.neoforged.neoforge.items.ItemStackHandler; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.animatable.GeoBlockEntity; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; @@ -43,15 +44,15 @@ public void sendBlockUpdated() { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -61,34 +62,34 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("inputInventory")) - this.inputInventory.deserializeNBT(pTag.getCompound("inputInventory")); + this.inputInventory.deserializeNBT(pRegistries, pTag.getCompound("inputInventory")); } - public void writeNetwork(CompoundTag pTag) { - pTag.put("inputInventory", this.inputInventory.serializeNBT()); + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + pTag.put("inputInventory", this.inputInventory.serializeNBT(pRegistries)); } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - this.writeNetwork(pTag); + this.writeNetwork(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); - this.readNetwork(pTag); + this.readNetwork(pTag, pRegistries); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlockItem.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlockItem.java index ccd98005a..a36d877fd 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlockItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorMercuryVesselBlockItem.java @@ -10,8 +10,8 @@ import net.minecraft.world.level.block.Block; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.function.Consumer; diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlock.java index dfc4e817a..96db36ec9 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlock.java @@ -11,7 +11,9 @@ import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; @@ -43,17 +45,16 @@ public void onRemove(BlockState pState, Level pLevel, BlockPos pPos, BlockState } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlockEntity.java index bc5152578..fdd0fa3f0 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlockEntity.java @@ -8,6 +8,7 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import com.klikli_dev.theurgy.registry.ItemTagRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -20,8 +21,8 @@ import net.neoforged.neoforge.items.ItemStackHandler; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.animatable.GeoBlockEntity; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; @@ -45,15 +46,15 @@ public void sendBlockUpdated() { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -63,34 +64,34 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("inputInventory")) - this.inputInventory.deserializeNBT(pTag.getCompound("inputInventory")); + this.inputInventory.deserializeNBT(pRegistries, pTag.getCompound("inputInventory")); } - public void writeNetwork(CompoundTag pTag) { - pTag.put("inputInventory", this.inputInventory.serializeNBT()); + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + pTag.put("inputInventory", this.inputInventory.serializeNBT(pRegistries)); } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - this.writeNetwork(pTag); + this.writeNetwork(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); - this.readNetwork(pTag); + this.readNetwork(pTag, pRegistries); } public void setIncubator(IncubatorBlockEntity incubator) { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlockItem.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlockItem.java index a7932bd37..b2b85ac5b 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlockItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSaltVesselBlockItem.java @@ -10,8 +10,8 @@ import net.minecraft.world.level.block.Block; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.function.Consumer; diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlock.java index 2414b2693..868b5905f 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlock.java @@ -11,7 +11,9 @@ import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; @@ -55,16 +57,15 @@ public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) { } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlockEntity.java index c5194f49e..77c04c243 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlockEntity.java @@ -8,6 +8,7 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import com.klikli_dev.theurgy.registry.ItemTagRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -20,8 +21,8 @@ import net.neoforged.neoforge.items.ItemStackHandler; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.animatable.GeoBlockEntity; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; @@ -45,15 +46,15 @@ public void sendBlockUpdated() { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -63,34 +64,34 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("inputInventory")) - this.inputInventory.deserializeNBT(pTag.getCompound("inputInventory")); + this.inputInventory.deserializeNBT(pRegistries, pTag.getCompound("inputInventory")); } - public void writeNetwork(CompoundTag pTag) { - pTag.put("inputInventory", this.inputInventory.serializeNBT()); + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + pTag.put("inputInventory", this.inputInventory.serializeNBT(pRegistries)); } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - this.writeNetwork(pTag); + this.writeNetwork(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); - this.readNetwork(pTag); + this.readNetwork(pTag, pRegistries); } public void setIncubator(IncubatorBlockEntity incubator) { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlockItem.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlockItem.java index 4656efbe6..e00f89f3c 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlockItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/IncubatorSulfurVesselBlockItem.java @@ -10,8 +10,8 @@ import net.minecraft.world.level.block.Block; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.function.Consumer; diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorMercuryVesselModel.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorMercuryVesselModel.java index d836c87c7..fbd7f7788 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorMercuryVesselModel.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorMercuryVesselModel.java @@ -6,7 +6,7 @@ import com.klikli_dev.theurgy.Theurgy; import net.minecraft.resources.ResourceLocation; -import software.bernie.geckolib.core.animatable.GeoAnimatable; +import software.bernie.geckolib.animatable.GeoAnimatable; import software.bernie.geckolib.model.GeoModel; public class IncubatorMercuryVesselModel extends GeoModel { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorSaltVesselModel.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorSaltVesselModel.java index 14af003fb..041c06c10 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorSaltVesselModel.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorSaltVesselModel.java @@ -6,7 +6,7 @@ import com.klikli_dev.theurgy.Theurgy; import net.minecraft.resources.ResourceLocation; -import software.bernie.geckolib.core.animatable.GeoAnimatable; +import software.bernie.geckolib.animatable.GeoAnimatable; import software.bernie.geckolib.model.GeoModel; public class IncubatorSaltVesselModel extends GeoModel { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorSulfurVesselModel.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorSulfurVesselModel.java index c657a93d6..e29f67c90 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorSulfurVesselModel.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/incubator/render/IncubatorSulfurVesselModel.java @@ -6,7 +6,7 @@ import com.klikli_dev.theurgy.Theurgy; import net.minecraft.resources.ResourceLocation; -import software.bernie.geckolib.core.animatable.GeoAnimatable; +import software.bernie.geckolib.animatable.GeoAnimatable; import software.bernie.geckolib.model.GeoModel; public class IncubatorSulfurVesselModel extends GeoModel { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCachedCheck.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCachedCheck.java index 750a8c355..e0d12c5e0 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCachedCheck.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCachedCheck.java @@ -32,19 +32,18 @@ public LiquefactionCachedCheck(RecipeType type) { this.internal = RecipeManager.createCheck(type); } - private Optional>> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { - + private Optional> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { var recipeManager = level.getRecipeManager(); - var map = recipeManager.byType(this.type); if (lastRecipe != null) { - var recipe = map.get(lastRecipe); + + var recipe = recipeManager.byKeyTyped(this.type, lastRecipe); //test only the ingredient without the (separate) solvent fluid ingredient check that the recipe.matches() would. if (recipe != null && recipe.value().getIngredient().test(stack)) { - return Optional.of(Pair.of(lastRecipe, recipe)); + return Optional.of(recipe); } } - return map.entrySet().stream().filter((entry) -> entry.getValue().value().getIngredient().test(stack)).findFirst().map((entry) -> Pair.of(entry.getKey(), entry.getValue())); + return recipeManager.byType(this.type).stream().filter((entry) -> entry.value().getIngredient().test(stack)).findFirst(); } /** @@ -53,9 +52,9 @@ private Optional>> getRe public Optional> getRecipeFor(ItemStack stack, Level level) { var optional = this.getRecipeFor(stack, level, this.lastRecipe); if (optional.isPresent()) { - var pair = optional.get(); - this.lastRecipe = pair.getFirst(); - return Optional.of(pair.getSecond()); + var recipeHolder = optional.get(); + this.lastRecipe = recipeHolder.id(); + return optional; } else { return Optional.empty(); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCauldronBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCauldronBlock.java index 3c3967c63..1ff1bdda6 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCauldronBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCauldronBlock.java @@ -13,7 +13,7 @@ import net.minecraft.core.Direction; import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -130,8 +130,7 @@ public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe @@ -139,15 +138,15 @@ public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Pla //handle top block pPos = pState.getValue(HALF) == DoubleBlockHalf.UPPER ? pPos.below() : pPos; - if (this.fluidHandlerBehaviour.useFluidHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.fluidHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCauldronBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCauldronBlockEntity.java index 234dacb05..f918cf7d8 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCauldronBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCauldronBlockEntity.java @@ -10,6 +10,7 @@ import com.klikli_dev.theurgy.content.particle.coloredbubble.ColoredBubbleParticleProvider; import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -43,15 +44,15 @@ public LiquefactionCauldronBlockEntity(BlockPos pPos, BlockState pBlockState) { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -61,21 +62,21 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { - this.storageBehaviour.readNetwork(tag); - this.craftingBehaviour.readNetwork(tag); + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.readNetwork(tag, pRegistries); + this.craftingBehaviour.readNetwork(tag, pRegistries); } - public void writeNetwork(CompoundTag tag) { - this.storageBehaviour.writeNetwork(tag); - this.craftingBehaviour.writeNetwork(tag); + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.storageBehaviour.writeNetwork(tag, pRegistries);; + this.craftingBehaviour.writeNetwork(tag, pRegistries);; } public void sendBlockUpdated() { @@ -108,23 +109,23 @@ public void tickClient() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - pTag.put("heatReceiver", this.heatReceiver.serializeNBT()); + pTag.put("heatReceiver", this.heatReceiver.serializeNBT(pRegistries)); - this.storageBehaviour.saveAdditional(pTag); - this.craftingBehaviour.saveAdditional(pTag); + this.storageBehaviour.saveAdditional(pTag, pRegistries); + this.craftingBehaviour.saveAdditional(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); if (pTag.contains("heatReceiver")) - this.heatReceiver.deserializeNBT(pTag.get("heatReceiver")); + this.heatReceiver.deserializeNBT(pRegistries, pTag.get("heatReceiver")); - this.storageBehaviour.load(pTag); - this.craftingBehaviour.load(pTag); + this.storageBehaviour.loadAdditional(pTag, pRegistries); + this.craftingBehaviour.loadAdditional(pTag, pRegistries); } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCraftingBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCraftingBehaviour.java index fd950c01e..30dbbd546 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCraftingBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/liquefactioncauldron/LiquefactionCraftingBehaviour.java @@ -34,7 +34,7 @@ public LiquefactionCraftingBehaviour(BlockEntity blockEntity, Supplier> getStatusHighlights() { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -67,19 +68,19 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { - this.leafNode().readNetwork(tag); + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.leafNode().readNetwork(tag, pRegistries); } - public void writeNetwork(CompoundTag tag) { - this.leafNode().writeNetwork(tag); + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.leafNode().writeNetwork(tag, pRegistries);; } protected void sendBlockUpdated() { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/logisticsitemconnector/inserter/LogisticsItemInserterBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/logisticsitemconnector/inserter/LogisticsItemInserterBehaviour.java index 9917b0b11..69cc6742d 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/logisticsitemconnector/inserter/LogisticsItemInserterBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/logisticsitemconnector/inserter/LogisticsItemInserterBehaviour.java @@ -8,6 +8,7 @@ import com.klikli_dev.theurgy.logistics.Logistics; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.properties.BlockStateProperties; @@ -66,18 +67,18 @@ protected void onEnabledChanged() { } @Override - public void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + public void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); } @Override - public void writeNetwork(CompoundTag pTag) { - super.writeNetwork(pTag); + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.writeNetwork(pTag, pRegistries); pTag.putBoolean("enabled", this.enabled); if (this.directionOverride != null) @@ -85,8 +86,8 @@ public void writeNetwork(CompoundTag pTag) { } @Override - public void readNetwork(CompoundTag pTag) { - super.readNetwork(pTag); + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.readNetwork(pTag, pRegistries); if (pTag.contains("directionOverride")) { this.directionOverride = Direction.from3DDataValue(pTag.getInt("directionOverride")); diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/logisticsitemconnector/inserter/LogisticsItemInserterBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/logisticsitemconnector/inserter/LogisticsItemInserterBlockEntity.java index 36710a952..659efc659 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/logisticsitemconnector/inserter/LogisticsItemInserterBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/logisticsitemconnector/inserter/LogisticsItemInserterBlockEntity.java @@ -8,6 +8,7 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -31,15 +32,15 @@ public LogisticsItemInserterBehaviour leafNode() { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -49,19 +50,19 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { - this.leafNode().readNetwork(tag); + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.leafNode().readNetwork(tag, pRegistries); } - public void writeNetwork(CompoundTag tag) { - this.leafNode().writeNetwork(tag); + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.leafNode().writeNetwork(tag, pRegistries);; } protected void sendBlockUpdated() { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystBlock.java index 88ca7fbb8..f8cdab6f0 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystBlock.java @@ -7,16 +7,15 @@ import com.klikli_dev.theurgy.content.behaviour.itemhandler.ItemHandlerBehaviour; import com.klikli_dev.theurgy.content.behaviour.itemhandler.OneSlotItemHandlerBehaviour; import com.klikli_dev.theurgy.registry.BlockEntityRegistry; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; @@ -57,8 +56,8 @@ public static int getBlockColor(BlockState pState, BlockAndTintGetter pLevel, Bl } public static int getItemColor(ItemStack pStack, int pTintIndex) { - if (pStack.hasTag() && pStack.getTag().contains("BlockEntityTag")) { - var fillLevel = pStack.getTag().getCompound("BlockEntityTag").getInt("mercuryFluxStorage") / (float) MercuryCatalystBlockEntity.CAPACITY; + if (pStack.has(DataComponentRegistry.MERCURY_FLUX_STORAGE.get())) { + var fillLevel = pStack.get(DataComponentRegistry.MERCURY_FLUX_STORAGE.get()) / (float) MercuryCatalystBlockEntity.CAPACITY; return getColorFromFillLevel(fillLevel); } @@ -82,19 +81,19 @@ public static int getColorFromFillLevel(float fillLevel) { } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } + @Nullable @Override public BlockState getStateForPlacement(BlockPlaceContext pContext) { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystBlockEntity.java index b5fe38196..dfd400428 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystBlockEntity.java @@ -11,6 +11,7 @@ import com.klikli_dev.theurgy.registry.CapabilityRegistry; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -49,15 +50,15 @@ public MercuryCatalystBlockEntity(BlockPos pPos, BlockState pBlockState) { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -67,25 +68,25 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { if (tag.contains("mercuryFluxStorage")) { //get instead of getCompound here because the storage serializes as int tag - this.mercuryFluxStorage.deserializeNBT(tag.get("mercuryFluxStorage")); + this.mercuryFluxStorage.deserializeNBT(pRegistries, tag.get("mercuryFluxStorage")); if (this.level != null) { this.level.sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), Block.UPDATE_IMMEDIATE); } } } - public void writeNetwork(CompoundTag tag) { - tag.put("mercuryFluxStorage", this.mercuryFluxStorage.serializeNBT()); + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + tag.put("mercuryFluxStorage", this.mercuryFluxStorage.serializeNBT(pRegistries)); } public void sendBlockUpdated() { @@ -126,23 +127,23 @@ protected void pushMercuryFlux() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - pTag.put("inventory", this.inventory.serializeNBT()); - pTag.put("mercuryFluxStorage", this.mercuryFluxStorage.serializeNBT()); + pTag.put("inventory", this.inventory.serializeNBT(pRegistries)); + pTag.put("mercuryFluxStorage", this.mercuryFluxStorage.serializeNBT(pRegistries)); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); if (pTag.contains("inventory")) - this.inventory.deserializeNBT(pTag.getCompound("inventory")); + this.inventory.deserializeNBT(pRegistries, pTag.getCompound("inventory")); if (pTag.contains("mercuryFluxStorage")) //get instead of getCompound here because the storage serializes as int tag - this.mercuryFluxStorage.deserializeNBT(pTag.get("mercuryFluxStorage")); + this.mercuryFluxStorage.deserializeNBT(pRegistries, pTag.get("mercuryFluxStorage")); } private class Inventory extends MonitoredItemStackHandler { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystCraftingBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystCraftingBehaviour.java index 829a2f157..759a8e8b1 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystCraftingBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/mercurycatalyst/MercuryCatalystCraftingBehaviour.java @@ -8,6 +8,7 @@ import com.klikli_dev.theurgy.content.capability.MercuryFluxStorage; import com.klikli_dev.theurgy.content.recipe.CatalysationRecipe; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; @@ -43,7 +44,7 @@ public MercuryCatalystCraftingBehaviour(BlockEntity blockEntity, Supplier getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("inventory")) - this.inventory.deserializeNBT(pTag.getCompound("inventory")); + this.inventory.deserializeNBT(pRegistries, pTag.getCompound("inventory")); } - public void writeNetwork(CompoundTag pTag) { - pTag.put("inventory", this.inventory.serializeNBT()); + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + pTag.put("inventory", this.inventory.serializeNBT(pRegistries)); } protected int getBurnDuration(ItemStack pFuel) { if (pFuel.isEmpty()) { return 0; } else { - return CommonHooks.getBurnTime(pFuel, RecipeTypeRegistry.PYROMANTIC_BRAZIER.get()); + return pFuel.getBurnTime(RecipeTypeRegistry.PYROMANTIC_BRAZIER.get()); } } @@ -142,22 +144,22 @@ else if (hasFuel) { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); pTag.putShort("remainingLitTime", (short) this.remainingLitTime); - this.writeNetwork(pTag); + this.writeNetwork(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); if (pTag.contains("remainingLitTime")) this.remainingLitTime = pTag.getShort("remainingLitTime"); - this.readNetwork(pTag); + this.readNetwork(pTag, pRegistries); } private class Inventory extends MonitoredItemStackHandler { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationArrayCraftingBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationArrayCraftingBehaviour.java index 3b45dd34a..972899041 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationArrayCraftingBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationArrayCraftingBehaviour.java @@ -36,7 +36,7 @@ public ReformationArrayCraftingBehaviour(BlockEntity blockEntity, Supplier getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("showParticles")) this.showParticles = pTag.getBoolean("showParticles"); - if (pTag.contains("outputInventory")) this.outputInventory.deserializeNBT(pTag.getCompound("outputInventory")); + if (pTag.contains("outputInventory")) this.outputInventory.deserializeNBT(pRegistries, pTag.getCompound("outputInventory")); } - public void writeNetwork(CompoundTag pTag) { + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { this.showParticles = !this.outputInventory.getStackInSlot(0).isEmpty(); pTag.putBoolean("showParticles", this.showParticles); - pTag.put("outputInventory", this.outputInventory.serializeNBT()); + pTag.put("outputInventory", this.outputInventory.serializeNBT(pRegistries)); } public void sendBlockUpdated() { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationSourcePedestalBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationSourcePedestalBlock.java index fa0c63061..09a623ce0 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationSourcePedestalBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationSourcePedestalBlock.java @@ -11,7 +11,9 @@ import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; @@ -33,17 +35,16 @@ public ReformationSourcePedestalBlock(Properties pProperties) { } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationSourcePedestalBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationSourcePedestalBlockEntity.java index 1994f42de..8ac7f6e4b 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationSourcePedestalBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationSourcePedestalBlockEntity.java @@ -10,6 +10,7 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import com.klikli_dev.theurgy.registry.ItemTagRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -64,29 +65,29 @@ public void setRemoved() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - this.writeNetwork(pTag); + this.writeNetwork(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); - this.readNetwork(pTag); + this.readNetwork(pTag, pRegistries); } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -96,23 +97,23 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("showParticles")) this.showParticles = pTag.getBoolean("showParticles"); - if (pTag.contains("inputInventory")) this.inputInventory.deserializeNBT(pTag.getCompound("inputInventory")); + if (pTag.contains("inputInventory")) this.inputInventory.deserializeNBT(pRegistries, pTag.getCompound("inputInventory")); } - public void writeNetwork(CompoundTag pTag) { + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { this.showParticles = !this.inputInventory.getStackInSlot(0).isEmpty(); pTag.putBoolean("showParticles", this.showParticles); - pTag.put("inputInventory", this.inputInventory.serializeNBT()); + pTag.put("inputInventory", this.inputInventory.serializeNBT(pRegistries)); } public void sendBlockUpdated() { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationTargetPedestalBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationTargetPedestalBlock.java index 624b693c0..a82c9e5bc 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationTargetPedestalBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationTargetPedestalBlock.java @@ -11,7 +11,9 @@ import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; @@ -33,17 +35,16 @@ public ReformationTargetPedestalBlock(Properties pProperties) { } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationTargetPedestalBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationTargetPedestalBlockEntity.java index bc4d4fb07..6bd3f047f 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationTargetPedestalBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/ReformationTargetPedestalBlockEntity.java @@ -10,6 +10,7 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import com.klikli_dev.theurgy.registry.ItemTagRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -64,27 +65,27 @@ public void setRemoved() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); - this.writeNetwork(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); + this.writeNetwork(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); - this.readNetwork(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); + this.readNetwork(pTag, pRegistries); } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -94,22 +95,22 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("showParticles")) this.showParticles = pTag.getBoolean("showParticles"); - if (pTag.contains("inputInventory")) this.inputInventory.deserializeNBT(pTag.getCompound("inputInventory")); + if (pTag.contains("inputInventory")) this.inputInventory.deserializeNBT(pRegistries, pTag.getCompound("inputInventory")); } - public void writeNetwork(CompoundTag pTag) { + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { this.showParticles = !this.inputInventory.getStackInSlot(0).isEmpty(); pTag.putBoolean("showParticles", this.showParticles); - pTag.put("inputInventory", this.inputInventory.serializeNBT()); + pTag.put("inputInventory", this.inputInventory.serializeNBT(pRegistries)); } public void sendBlockUpdated() { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterBlock.java index 39fdc7f63..0f933091b 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterBlock.java @@ -13,7 +13,9 @@ import net.minecraft.core.Direction; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; @@ -69,12 +71,10 @@ public SulfuricFluxEmitterInteractionBehaviour interactionBehaviour() { } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { - return this.interactionBehaviour.use(pState, pLevel, pPos, pPlayer, pHand, pHit); + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { + return this.interactionBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult); } - @SuppressWarnings("deprecation") @Override public @NotNull VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterBlockEntity.java index 19ab97442..d7a82fe73 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterBlockEntity.java @@ -15,8 +15,8 @@ import com.klikli_dev.theurgy.util.EntityUtil; import com.mojang.datafixers.util.Pair; import io.netty.handler.codec.EncoderException; -import net.minecraft.Util; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; import net.minecraft.network.Connection; @@ -206,56 +206,56 @@ public void onLoad() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - pTag.put("mercuryFluxStorage", this.mercuryFluxStorage.serializeNBT()); - pTag.put("sourcePedestals", Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.LIST_CODEC.encodeStart(NbtOps.INSTANCE, this.sourcePedestals), (e) -> new EncoderException("Failed to encode: " + e + " " + this.sourcePedestals))); + pTag.put("mercuryFluxStorage", this.mercuryFluxStorage.serializeNBT(pRegistries)); + pTag.put("sourcePedestals", SulfuricFluxEmitterSelectedPoint.LIST_CODEC.encodeStart(NbtOps.INSTANCE, this.sourcePedestals).getOrThrow((e) -> new EncoderException("Failed to encode: " + e + " " + this.sourcePedestals))); if (this.targetPedestal != null) - pTag.put("targetPedestal", Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.CODEC.encodeStart(NbtOps.INSTANCE, this.targetPedestal), (e) -> new EncoderException("Failed to encode: " + e + " " + this.targetPedestal))); + pTag.put("targetPedestal", SulfuricFluxEmitterSelectedPoint.CODEC.encodeStart(NbtOps.INSTANCE, this.targetPedestal).getOrThrow((e) -> new EncoderException("Failed to encode: " + e + " " + this.targetPedestal))); if (this.resultPedestal != null) - pTag.put("resultPedestal", Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.CODEC.encodeStart(NbtOps.INSTANCE, this.resultPedestal), (e) -> new EncoderException("Failed to encode: " + e + " " + this.resultPedestal))); + pTag.put("resultPedestal", SulfuricFluxEmitterSelectedPoint.CODEC.encodeStart(NbtOps.INSTANCE, this.resultPedestal).getOrThrow((e) -> new EncoderException("Failed to encode: " + e + " " + this.resultPedestal))); - this.craftingBehaviour.saveAdditional(pTag); + this.craftingBehaviour.saveAdditional(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); if (pTag.contains("mercuryFluxStorage")) //get instead of getCompound here because the storage serializes as int tag - this.mercuryFluxStorage.deserializeNBT(pTag.get("mercuryFluxStorage")); + this.mercuryFluxStorage.deserializeNBT(pRegistries, pTag.get("mercuryFluxStorage")); if (pTag.contains("sourcePedestals")) { this.sourcePedestals.clear(); - this.sourcePedestals.addAll(Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.LIST_CODEC.parse(NbtOps.INSTANCE, pTag.get("sourcePedestals")), (e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("sourcePedestals")))); + this.sourcePedestals.addAll(SulfuricFluxEmitterSelectedPoint.LIST_CODEC.parse(NbtOps.INSTANCE, pTag.get("sourcePedestals")).getOrThrow((e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("sourcePedestals")))); } if (pTag.contains("targetPedestal")) { - this.targetPedestal = Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.CODEC.parse(NbtOps.INSTANCE, pTag.get("targetPedestal")), (e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("targetPedestal"))); + this.targetPedestal = SulfuricFluxEmitterSelectedPoint.CODEC.parse(NbtOps.INSTANCE, pTag.get("targetPedestal")).getOrThrow((e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("targetPedestal"))); } if (pTag.contains("resultPedestal")) { - this.resultPedestal = Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.CODEC.parse(NbtOps.INSTANCE, pTag.get("resultPedestal")), (e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("resultPedestal"))); + this.resultPedestal = SulfuricFluxEmitterSelectedPoint.CODEC.parse(NbtOps.INSTANCE, pTag.get("resultPedestal")).getOrThrow((e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("resultPedestal"))); } - this.craftingBehaviour.load(pTag); + this.craftingBehaviour.loadAdditional(pTag, pRegistries); } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -265,41 +265,41 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("sourcePedestalsWithContents")) { this.sourcePedestalsWithContents.clear(); - this.sourcePedestalsWithContents.addAll(Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.LIST_CODEC.parse(NbtOps.INSTANCE, pTag.get("sourcePedestalsWithContents")), (e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("sourcePedestalsWithContents")))); + this.sourcePedestalsWithContents.addAll(SulfuricFluxEmitterSelectedPoint.LIST_CODEC.parse(NbtOps.INSTANCE, pTag.get("sourcePedestalsWithContents")).getOrThrow((e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("sourcePedestalsWithContents")))); } if (pTag.contains("targetPedestal")) { - this.targetPedestal = Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.CODEC.parse(NbtOps.INSTANCE, pTag.get("targetPedestal")), (e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("targetPedestal"))); + this.targetPedestal = SulfuricFluxEmitterSelectedPoint.CODEC.parse(NbtOps.INSTANCE, pTag.get("targetPedestal")).getOrThrow((e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("targetPedestal"))); } if (pTag.contains("resultPedestal")) { - this.resultPedestal = Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.CODEC.parse(NbtOps.INSTANCE, pTag.get("resultPedestal")), (e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("resultPedestal"))); + this.resultPedestal = SulfuricFluxEmitterSelectedPoint.CODEC.parse(NbtOps.INSTANCE, pTag.get("resultPedestal")).getOrThrow((e) -> new EncoderException("Failed to decode: " + e + " " + pTag.get("resultPedestal"))); } - this.craftingBehaviour.readNetwork(pTag); + this.craftingBehaviour.readNetwork(pTag, pRegistries); } - public void writeNetwork(CompoundTag pTag) { - pTag.put("sourcePedestalsWithContents", Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.LIST_CODEC.encodeStart(NbtOps.INSTANCE, this.sourcePedestalsWithContents), (e) -> new EncoderException("Failed to encode: " + e + " " + this.sourcePedestalsWithContents))); + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { + pTag.put("sourcePedestalsWithContents", SulfuricFluxEmitterSelectedPoint.LIST_CODEC.encodeStart(NbtOps.INSTANCE, this.sourcePedestalsWithContents).getOrThrow((e) -> new EncoderException("Failed to encode: " + e + " " + this.sourcePedestalsWithContents))); if (this.targetPedestal != null) - pTag.put("targetPedestal", Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.CODEC.encodeStart(NbtOps.INSTANCE, this.targetPedestal), (e) -> new EncoderException("Failed to encode: " + e + " " + this.targetPedestal))); + pTag.put("targetPedestal", SulfuricFluxEmitterSelectedPoint.CODEC.encodeStart(NbtOps.INSTANCE, this.targetPedestal).getOrThrow((e) -> new EncoderException("Failed to encode: " + e + " " + this.targetPedestal))); if (this.resultPedestal != null) - pTag.put("resultPedestal", Util.getOrThrow(SulfuricFluxEmitterSelectedPoint.CODEC.encodeStart(NbtOps.INSTANCE, this.resultPedestal), (e) -> new EncoderException("Failed to encode: " + e + " " + this.resultPedestal))); + pTag.put("resultPedestal", SulfuricFluxEmitterSelectedPoint.CODEC.encodeStart(NbtOps.INSTANCE, this.resultPedestal).getOrThrow((e) -> new EncoderException("Failed to encode: " + e + " " + this.resultPedestal))); - this.craftingBehaviour.writeNetwork(pTag); + this.craftingBehaviour.writeNetwork(pTag, pRegistries); } public SelectionBehaviour getSelectionBehaviour() { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterInteractionBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterInteractionBehaviour.java index c3e1b7f06..428534556 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterInteractionBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterInteractionBehaviour.java @@ -14,8 +14,9 @@ import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; @@ -24,16 +25,16 @@ public class SulfuricFluxEmitterInteractionBehaviour implements InteractionBehaviour { - @Override - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + @Override + public ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { var blockEntity = pLevel.getBlockEntity(pPos); if (!(blockEntity instanceof SulfuricFluxEmitterBlockEntity sulfuricFluxEmitter)) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; if (pLevel.isClientSide) - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; Networking.sendTo((ServerPlayer) pPlayer, new MessageShowSulfuricFluxEmitterStatus( pPos, @@ -46,7 +47,7 @@ public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Pla //this is mainly useful if they removed a pedestal and want it to be recognized it again after rebuilding it sulfuricFluxEmitter.checkValidMultiblockOnNextQuery = true; - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } public void showStatus(Level level, BlockPos pos, Player player) { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterSelectedPoint.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterSelectedPoint.java index 816d145c7..ad8602cfa 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterSelectedPoint.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/reformationarray/SulfuricFluxEmitterSelectedPoint.java @@ -5,17 +5,25 @@ package com.klikli_dev.theurgy.content.apparatus.reformationarray; import com.klikli_dev.theurgy.TheurgyConstants; +import com.klikli_dev.theurgy.content.apparatus.caloricfluxemitter.CaloricFluxEmitterSelectedPoint; import com.klikli_dev.theurgy.content.behaviour.selection.SelectedPoint; import com.klikli_dev.theurgy.content.render.Color; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import io.netty.buffer.ByteBuf; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.util.ByIdMap; import net.minecraft.util.StringRepresentable; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import java.util.List; +import java.util.function.IntFunction; public class SulfuricFluxEmitterSelectedPoint extends SelectedPoint { @@ -28,6 +36,14 @@ public class SulfuricFluxEmitterSelectedPoint extends SelectedPoint> LIST_CODEC = Codec.list(CODEC); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + BlockPos.STREAM_CODEC, + SelectedPoint::getBlockPos, + Type.STREAM_CODEC, + SulfuricFluxEmitterSelectedPoint::getType, + SulfuricFluxEmitterSelectedPoint::new + ); + protected Type type; public SulfuricFluxEmitterSelectedPoint(BlockPos blockPos, Type type) { @@ -71,6 +87,8 @@ public enum Type implements StringRepresentable { TARGET("TARGET", new Color(0x0000FF, false)), RESULT("RESULT", new Color(0x008000, false)); + public static final IntFunction BY_ID = ByIdMap.continuous(Enum::ordinal, values(), ByIdMap.OutOfBoundsStrategy.WRAP); + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, Type::ordinal); private final String name; private final Color color; diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlock.java index 72b5bc5f1..8c6dabb41 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlock.java @@ -13,8 +13,9 @@ import net.minecraft.core.Direction; import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; @@ -50,21 +51,20 @@ public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe - if (this.fluidHandlerBehaviour.useFluidHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.fluidHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - if (this.itemHandlerBehaviour.useItemHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.itemHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlockEntity.java index 3822e5ecd..4b5dc63be 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlockEntity.java @@ -10,6 +10,7 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import com.klikli_dev.theurgy.registry.ItemTagRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -28,8 +29,8 @@ import net.neoforged.neoforge.items.ItemStackHandler; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.animatable.GeoBlockEntity; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.function.Predicate; @@ -60,15 +61,15 @@ public SalAmmoniacAccumulatorBlockEntity(BlockPos pPos, BlockState pState) { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -78,30 +79,30 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { if (tag.contains("waterTank")) { - this.waterTank.readFromNBT(tag.getCompound("waterTank")); + this.waterTank.readFromNBT(pRegistries, tag.getCompound("waterTank")); } if (tag.contains("inventory")) { - this.inventory.deserializeNBT(tag.getCompound("inventory")); + this.inventory.deserializeNBT(pRegistries, tag.getCompound("inventory")); } - this.craftingBehaviour.readNetwork(tag); + this.craftingBehaviour.readNetwork(tag, pRegistries); } - public void writeNetwork(CompoundTag tag) { - tag.put("waterTank", this.waterTank.writeToNBT(new CompoundTag())); - tag.put("inventory", this.inventory.serializeNBT()); + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + tag.put("waterTank", this.waterTank.writeToNBT(pRegistries, new CompoundTag())); + tag.put("inventory", this.inventory.serializeNBT(pRegistries)); - this.craftingBehaviour.writeNetwork(tag); + this.craftingBehaviour.writeNetwork(tag, pRegistries);; } public void sendBlockUpdated() { @@ -128,7 +129,7 @@ public void tickClient() { var fluidClientExtension = IClientFluidTypeExtensions.of(fluidStack.getFluid()); int waterColor = fluidClientExtension.getTintColor(fluidStack); - var particleColor = this.inventory.getStackInSlot(0).is(ItemTagRegistry.SAL_AMMONIAC_GEMS) ? + var particleColor = this.inventory.getStackInSlot(0).is(ItemTagRegistry.GEMS_SAL_AMMONIAC) ? new ParticleColor(255, 192, 128) : ParticleColor.fromInt(waterColor); var fluidHeight = fluidStack.getAmount() / (float) this.waterTank.getCapacity(); @@ -170,26 +171,26 @@ public boolean hasOutputTank() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); - pTag.put("inventory", this.inventory.serializeNBT()); - pTag.put("waterTank", this.waterTank.writeToNBT(new CompoundTag())); + pTag.put("inventory", this.inventory.serializeNBT(pRegistries)); + pTag.put("waterTank", this.waterTank.writeToNBT(pRegistries, new CompoundTag())); - this.craftingBehaviour.saveAdditional(pTag); + this.craftingBehaviour.saveAdditional(pTag, pRegistries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); - if (pTag.contains("inventory")) this.inventory.deserializeNBT(pTag.getCompound("inventory")); + if (pTag.contains("inventory")) this.inventory.deserializeNBT(pRegistries, pTag.getCompound("inventory")); if (pTag.contains("waterTank")) { - this.waterTank.readFromNBT(pTag.getCompound("waterTank")); + this.waterTank.readFromNBT(pRegistries, pTag.getCompound("waterTank")); } - this.craftingBehaviour.load(pTag); + this.craftingBehaviour.loadAdditional(pTag, pRegistries); } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlockItem.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlockItem.java index 154636f99..b8c904188 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlockItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorBlockItem.java @@ -10,8 +10,8 @@ import net.minecraft.world.level.block.Block; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.function.Consumer; diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorCachedCheck.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorCachedCheck.java index e7f7f0338..0a4a7c435 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorCachedCheck.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorCachedCheck.java @@ -6,7 +6,6 @@ import com.klikli_dev.theurgy.content.recipe.AccumulationRecipe; import com.klikli_dev.theurgy.content.recipe.wrapper.RecipeWrapperWithFluid; -import com.mojang.datafixers.util.Pair; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeHolder; @@ -33,34 +32,30 @@ public SalAmmoniacAccumulatorCachedCheck(RecipeType type) { this.internal = RecipeManager.createCheck(type); } - private Optional>> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { - + private Optional> getRecipeFor(ItemStack stack, Level level, @Nullable ResourceLocation lastRecipe) { var recipeManager = level.getRecipeManager(); - var map = recipeManager.byType(this.type); if (lastRecipe != null) { - var recipe = map.get(lastRecipe); + var recipe = recipeManager.byKeyTyped(this.type, lastRecipe); //test only the ingredient without the (separate) evaporate fluid ingredient check that the recipe.matches() would. if (recipe != null && recipe.value().hasSolute() && recipe.value().getSolute().test(stack)) { - return Optional.of(Pair.of(lastRecipe, recipe)); + return Optional.of(recipe); } } - return map.entrySet().stream().filter((entry) -> entry.getValue().value().hasSolute() && entry.getValue().value().getSolute().test(stack)).findFirst().map((entry) -> Pair.of(entry.getKey(), entry.getValue())); + return recipeManager.byType(this.type).stream().filter((entry) -> entry.value().hasSolute() && entry.value().getSolute().test(stack)).findFirst(); } - private Optional>> getRecipeFor(FluidStack stack, Level level, @Nullable ResourceLocation lastRecipe) { - + private Optional> getRecipeFor(FluidStack stack, Level level, @Nullable ResourceLocation lastRecipe) { var recipeManager = level.getRecipeManager(); - var map = recipeManager.byType(this.type); if (lastRecipe != null) { - var recipe = map.get(lastRecipe); + var recipe = recipeManager.byKeyTyped(this.type, lastRecipe); //test only the fluid without the (separate) solute item ingredient check that the recipe.matches() would. if (recipe != null && recipe.value().getEvaporant().test(stack)) { - return Optional.of(Pair.of(lastRecipe, recipe)); + return Optional.of(recipe); } } - return map.entrySet().stream().filter((entry) -> entry.getValue().value().getEvaporant().test(stack)).findFirst().map((entry) -> Pair.of(entry.getKey(), entry.getValue())); + return recipeManager.byType(this.type).stream().filter((entry) -> entry.value().getEvaporant().test(stack)).findFirst(); } /** @@ -69,9 +64,9 @@ private Optional>> getRe public Optional> getRecipeFor(ItemStack stack, Level level) { var optional = this.getRecipeFor(stack, level, this.lastRecipe); if (optional.isPresent()) { - var pair = optional.get(); - this.lastRecipe = pair.getFirst(); - return Optional.of(pair.getSecond()); + var recipeHolder = optional.get(); + this.lastRecipe = recipeHolder.id(); + return optional; } else { return Optional.empty(); } @@ -83,9 +78,9 @@ public Optional> getRecipeFor(ItemStack stack, public Optional> getRecipeFor(FluidStack stack, Level level) { var optional = this.getRecipeFor(stack, level, this.lastRecipe); if (optional.isPresent()) { - var pair = optional.get(); - this.lastRecipe = pair.getFirst(); - return Optional.of(pair.getSecond()); + var recipeHolder = optional.get(); + this.lastRecipe = recipeHolder.id(); + return optional; } else { return Optional.empty(); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorCraftingBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorCraftingBehaviour.java index ba6d887cf..630434501 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorCraftingBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/SalAmmoniacAccumulatorCraftingBehaviour.java @@ -38,7 +38,7 @@ public SalAmmoniacAccumulatorCraftingBehaviour(BlockEntity blockEntity, Supplier @Override public boolean canProcess(ItemStack stack) { - if (ItemHandlerHelper.canItemStacksStack(stack, this.inputInventorySupplier.get().getStackInSlot(0))) + if (ItemStack.isSameItemSameComponents(stack, this.inputInventorySupplier.get().getStackInSlot(0))) return true; //early out if we are already processing this type of item @@ -47,7 +47,7 @@ public boolean canProcess(ItemStack stack) { public boolean canProcess(FluidStack stack) { - if (this.waterTankSupplier.get().getFluidInTank(0).isFluidEqual(stack)) + if (FluidStack.isSameFluidSameComponents(this.waterTankSupplier.get().getFluidInTank(0), stack)) return true; //early out if we are already processing this type of fluid //now we use our custom cached check that checks only liquids: diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/render/SalAmmoniacAccumulatorModel.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/render/SalAmmoniacAccumulatorModel.java index ba1b2f933..8760c1ec5 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/render/SalAmmoniacAccumulatorModel.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniacaccumulator/render/SalAmmoniacAccumulatorModel.java @@ -6,7 +6,7 @@ import com.klikli_dev.theurgy.Theurgy; import net.minecraft.resources.ResourceLocation; -import software.bernie.geckolib.core.animatable.GeoAnimatable; +import software.bernie.geckolib.animatable.GeoAnimatable; import software.bernie.geckolib.model.GeoModel; public class SalAmmoniacAccumulatorModel extends GeoModel { diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlock.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlock.java index 223606322..fd30481a8 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlock.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlock.java @@ -9,8 +9,9 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; @@ -37,17 +38,16 @@ public RenderShape getRenderShape(BlockState pState) { } @Override - @SuppressWarnings("deprecation") - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { //We do not check for client side because // a) returning success causes https://github.com/klikli-dev/theurgy/issues/158 // b) client side BEs are separate objects even in SP, so modification in our behaviours is safe - if (this.fluidHandlerBehaviour.useFluidHandler(pState, pLevel, pPos, pPlayer, pHand, pHit) == InteractionResult.SUCCESS) { - return InteractionResult.SUCCESS; + if (this.fluidHandlerBehaviour.useItemOn(pStack, pState, pLevel, pPos, pPlayer, pHand, pHitResult) == ItemInteractionResult.SUCCESS) { + return ItemInteractionResult.SUCCESS; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlockEntity.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlockEntity.java index f0c7225c6..bc275bf1b 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlockEntity.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlockEntity.java @@ -7,6 +7,7 @@ import com.klikli_dev.theurgy.registry.BlockEntityRegistry; import com.klikli_dev.theurgy.registry.FluidTagRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -20,8 +21,8 @@ import net.neoforged.neoforge.fluids.capability.templates.FluidTank; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.animatable.GeoBlockEntity; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.function.Predicate; @@ -39,15 +40,15 @@ public SalAmmoniacTankBlockEntity(BlockPos pPos, BlockState pBlockState) { } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider pRegistries) { var tag = new CompoundTag(); - this.writeNetwork(tag); + this.writeNetwork(tag, pRegistries); return tag; } @Override - public void handleUpdateTag(CompoundTag tag) { - this.readNetwork(tag); + public void handleUpdateTag(CompoundTag tag, HolderLookup.Provider pRegistries) { + this.readNetwork(tag, pRegistries); } @Nullable @@ -57,21 +58,21 @@ public Packet getUpdatePacket() { } @Override - public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { + public void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet, HolderLookup.Provider pRegistries) { var tag = packet.getTag(); if (tag != null) { - this.readNetwork(tag); + this.readNetwork(tag, pRegistries); } } - public void readNetwork(CompoundTag tag) { + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { if (tag.contains("tank")) { - this.tank.readFromNBT(tag.getCompound("tank")); + this.tank.readFromNBT(pRegistries, tag.getCompound("tank")); } } - public void writeNetwork(CompoundTag tag) { - tag.put("tank", this.tank.writeToNBT(new CompoundTag())); + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { + tag.put("tank", this.tank.writeToNBT(pRegistries, new CompoundTag())); } public void sendBlockUpdated() { @@ -80,17 +81,17 @@ public void sendBlockUpdated() { } @Override - protected void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); - pTag.put("tank", this.tank.writeToNBT(new CompoundTag())); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); + pTag.put("tank", this.tank.writeToNBT(pRegistries, new CompoundTag())); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); if (pTag.contains("tank")) { - this.tank.readFromNBT(pTag.getCompound("tank")); + this.tank.readFromNBT(pRegistries, pTag.getCompound("tank")); } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlockItem.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlockItem.java index 694a608b7..69fa6208c 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlockItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/SalAmmoniacTankBlockItem.java @@ -10,8 +10,8 @@ import net.minecraft.world.level.block.Block; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.function.Consumer; diff --git a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/render/SalAmmoniacTankModel.java b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/render/SalAmmoniacTankModel.java index e1616fcb3..056c358f7 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/render/SalAmmoniacTankModel.java +++ b/src/main/java/com/klikli_dev/theurgy/content/apparatus/salammoniactank/render/SalAmmoniacTankModel.java @@ -6,7 +6,7 @@ import com.klikli_dev.theurgy.Theurgy; import net.minecraft.resources.ResourceLocation; -import software.bernie.geckolib.core.animatable.GeoAnimatable; +import software.bernie.geckolib.animatable.GeoAnimatable; import software.bernie.geckolib.model.GeoModel; public class SalAmmoniacTankModel extends GeoModel { diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/animation/AnimationBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/animation/AnimationBehaviour.java index c2261f093..0bb9f125f 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/animation/AnimationBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/animation/AnimationBehaviour.java @@ -6,9 +6,10 @@ import net.minecraft.world.level.block.entity.BlockEntity; import software.bernie.geckolib.animatable.GeoBlockEntity; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimationState; -import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimationController; +import software.bernie.geckolib.animation.AnimationState; +import software.bernie.geckolib.animation.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; public abstract class AnimationBehaviour { diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/crafting/CraftingBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/crafting/CraftingBehaviour.java index 85e9d295c..7d36fc99a 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/crafting/CraftingBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/crafting/CraftingBehaviour.java @@ -4,6 +4,7 @@ package com.klikli_dev.theurgy.content.behaviour.crafting; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Recipe; @@ -43,19 +44,19 @@ public boolean isProcessing() { return this.isProcessing; } - public void readNetwork(CompoundTag tag) { + public void readNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { this.isProcessing = tag.getBoolean("isProcessing"); } - public void writeNetwork(CompoundTag tag) { + public void writeNetwork(CompoundTag tag, HolderLookup.Provider pRegistries) { tag.putBoolean("isProcessing", this.isProcessing); } - public void saveAdditional(CompoundTag pTag) { + public void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { pTag.putShort("progress", (short) this.progress); } - public void load(CompoundTag pTag) { + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { if (pTag.contains("progress")) this.progress = pTag.getShort("progress"); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/fluidhandler/FluidHandlerBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/fluidhandler/FluidHandlerBehaviour.java index ca160fdcf..4e57d97a1 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/fluidhandler/FluidHandlerBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/fluidhandler/FluidHandlerBehaviour.java @@ -7,12 +7,15 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; public interface FluidHandlerBehaviour { - InteractionResult useFluidHandler(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit); + ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult); + } diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/fluidhandler/OneTankFluidHandlerBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/fluidhandler/OneTankFluidHandlerBehaviour.java index 1f6114386..6d1a24780 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/fluidhandler/OneTankFluidHandlerBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/fluidhandler/OneTankFluidHandlerBehaviour.java @@ -6,7 +6,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -24,9 +24,9 @@ public class OneTankFluidHandlerBehaviour implements FluidHandlerBehaviour { * Default interaction for blocks have a block entity with a fluid handler. */ @Override - public InteractionResult useFluidHandler(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + public ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { if (pHand != InteractionHand.MAIN_HAND) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; var stackInHand = pPlayer.getItemInHand(pHand); var fillStack = stackInHand.copyWithCount(1); //necessary to handle stacks of containers, because FluidUtil only can handle one item at a time @@ -34,34 +34,34 @@ public InteractionResult useFluidHandler(BlockState pState, Level pLevel, BlockP var blockFluidHandler = pLevel.getCapability(Capabilities.FluidHandler.BLOCK, pPos, null); //a block without fluid handler is of no interest if (blockFluidHandler == null) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; if (stackInHand.isEmpty() && pPlayer.isShiftKeyDown()) { //sneaking with empty hand means we're trying to void the liquid blockFluidHandler.drain(Integer.MAX_VALUE, IFluidHandlerItem.FluidAction.EXECUTE); - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } var itemFluidHandler = fillStack.getCapability(Capabilities.FluidHandler.ITEM); //if our item does not have a fluid handler we cannot interact further if (itemFluidHandler == null) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; //first we try to insert var transferredFluid = FluidUtil.tryFluidTransfer(blockFluidHandler, itemFluidHandler, Integer.MAX_VALUE, true); if (this.updateFluidContainerInHand(pPlayer, pHand, stackInHand, itemFluidHandler, transferredFluid)) - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; //if that fails, try to extract transferredFluid = FluidUtil.tryFluidTransfer(itemFluidHandler, blockFluidHandler, Integer.MAX_VALUE, true); if (this.updateFluidContainerInHand(pPlayer, pHand, stackInHand, itemFluidHandler, transferredFluid)) - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } private boolean updateFluidContainerInHand(Player pPlayer, InteractionHand pHand, ItemStack stackInHand, IFluidHandlerItem itemFluidHandler, FluidStack transferredFluid) { @@ -79,4 +79,6 @@ private boolean updateFluidContainerInHand(Player pPlayer, InteractionHand pHand } return false; } + + } diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/interaction/GenericVatInteractionBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/interaction/GenericVatInteractionBehaviour.java index 183f02285..ea2e39757 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/interaction/GenericVatInteractionBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/interaction/GenericVatInteractionBehaviour.java @@ -8,7 +8,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; @@ -19,14 +21,14 @@ public abstract class GenericVatInteractionBehaviour> implements InteractionBehaviour { @Override - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + public ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { if (pHand != InteractionHand.MAIN_HAND) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; var blockEntity = pLevel.getBlockEntity(pPos); if (!(blockEntity instanceof HasCraftingBehaviour)) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; @SuppressWarnings("unchecked") var vat = (HasCraftingBehaviour) blockEntity; //interaction with shift and empty hand opens/closes the vat @@ -35,13 +37,13 @@ public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Pla //if the vat is closed then other interactions are not allowed and we say that, and handle the event to avoid further interaction if (!pState.getValue(BlockStateProperties.OPEN)) { this.showClosedMessage(pLevel, pPlayer); - return InteractionResult.FAIL; + return ItemInteractionResult.FAIL; } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } if (pLevel.isClientSide) - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; var craftingBehaviour = vat.craftingBehaviour(); @@ -54,7 +56,7 @@ public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Pla pLevel.setBlock(pPos, pState.setValue(BlockStateProperties.OPEN, false), Block.UPDATE_CLIENTS); } else { this.showNoRecipeMessage(pLevel, pPlayer); - return InteractionResult.FAIL; + return ItemInteractionResult.FAIL; } } else { //when opening we stop processing (because we want to interrupt the crafting process) @@ -64,7 +66,7 @@ public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Pla blockEntity.setChanged(); } - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/interaction/InteractionBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/interaction/InteractionBehaviour.java index 23b39fbfa..80d2bee80 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/interaction/InteractionBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/interaction/InteractionBehaviour.java @@ -7,11 +7,14 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; public interface InteractionBehaviour { - InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit); + + ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/DynamicOneOutputSlotItemHandlerBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/DynamicOneOutputSlotItemHandlerBehaviour.java index 8865a6def..85206291c 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/DynamicOneOutputSlotItemHandlerBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/DynamicOneOutputSlotItemHandlerBehaviour.java @@ -6,7 +6,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -30,14 +30,14 @@ protected int getMaxInputSlot(IItemHandler handler) { * Default interaction for blocks that have a block entity with an input and an output inventory, where the output inventory has one slot and the input inventory a dynamic acmount of slots, made available as combined inventory with inputs on slot 0 to n-2 and output on slot n-1. */ @Override - public InteractionResult useItemHandler(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + public ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { if (pHand != InteractionHand.MAIN_HAND) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; var blockItemHandler = pLevel.getCapability(Capabilities.ItemHandler.BLOCK, pPos, null); //a block without item handler is of no interest if (blockItemHandler == null) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; var outputSlot = this.getOutputSlot(blockItemHandler); var maxInputSlot = this.getMaxInputSlot(blockItemHandler); @@ -49,7 +49,7 @@ public InteractionResult useItemHandler(BlockState pState, Level pLevel, BlockPo var extracted = blockItemHandler.extractItem(outputSlot, blockItemHandler.getSlotLimit(outputSlot), false); if (!extracted.isEmpty()) { pPlayer.getInventory().placeItemBackInInventory(extracted); - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } //if no output, try take input @@ -57,7 +57,7 @@ public InteractionResult useItemHandler(BlockState pState, Level pLevel, BlockPo extracted = blockItemHandler.extractItem(inputSlot, blockItemHandler.getSlotLimit(inputSlot), false); if (!extracted.isEmpty()) { pPlayer.getInventory().placeItemBackInInventory(extracted); - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } } } else { @@ -66,11 +66,11 @@ public InteractionResult useItemHandler(BlockState pState, Level pLevel, BlockPo var remainder = blockItemHandler.insertItem(inputSlot, stackInHand, false); pPlayer.setItemInHand(pHand, remainder); if (remainder.getCount() != stackInHand.getCount()) { - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } } } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/ItemHandlerBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/ItemHandlerBehaviour.java index 51b721832..97f454ec1 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/ItemHandlerBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/ItemHandlerBehaviour.java @@ -7,12 +7,13 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; public interface ItemHandlerBehaviour { - - InteractionResult useItemHandler(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit); + ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/OneSlotItemHandlerBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/OneSlotItemHandlerBehaviour.java index d649a23e2..8e570dc20 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/OneSlotItemHandlerBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/OneSlotItemHandlerBehaviour.java @@ -6,7 +6,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -19,19 +19,18 @@ public class OneSlotItemHandlerBehaviour implements ItemHandlerBehaviour { public static final int SLOT = 0; - /** * Default interaction for blocks that have a block entity with an in/output inventory with one slot. */ @Override - public InteractionResult useItemHandler(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + public ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { if (pHand != InteractionHand.MAIN_HAND) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; var blockItemHandler = pLevel.getCapability(Capabilities.ItemHandler.BLOCK, pPos, null); //a block without item handler is of no interest if (blockItemHandler == null) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; ItemStack stackInHand = pPlayer.getItemInHand(pHand); @@ -40,17 +39,17 @@ public InteractionResult useItemHandler(BlockState pState, Level pLevel, BlockPo var extracted = blockItemHandler.extractItem(SLOT, blockItemHandler.getSlotLimit(SLOT), false); if (!extracted.isEmpty()) { pPlayer.getInventory().placeItemBackInInventory(extracted); - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } } else { //if we have an item in hand, try to insert var remainder = blockItemHandler.insertItem(SLOT, stackInHand, false); pPlayer.setItemInHand(pHand, remainder); if (remainder.getCount() != stackInHand.getCount()) { - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/TwoSlotItemHandlerBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/TwoSlotItemHandlerBehaviour.java index fdca5bcf6..29c9eda12 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/TwoSlotItemHandlerBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/itemhandler/TwoSlotItemHandlerBehaviour.java @@ -6,7 +6,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -24,14 +24,14 @@ public class TwoSlotItemHandlerBehaviour implements ItemHandlerBehaviour { * Default interaction for blocks that have a block entity with an input and an output inventory with one slot each, made available as combined inventory with input on slot 0 and output on slot 1. */ @Override - public InteractionResult useItemHandler(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + public ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { if (pHand != InteractionHand.MAIN_HAND) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; var blockItemHandler = pLevel.getCapability(Capabilities.ItemHandler.BLOCK, pPos, null); //a block without item handler is of no interest if (blockItemHandler == null) - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; ItemStack stackInHand = pPlayer.getItemInHand(pHand); @@ -40,24 +40,24 @@ public InteractionResult useItemHandler(BlockState pState, Level pLevel, BlockPo var extracted = blockItemHandler.extractItem(OUTPUT_SLOT, blockItemHandler.getSlotLimit(OUTPUT_SLOT), false); if (!extracted.isEmpty()) { pPlayer.getInventory().placeItemBackInInventory(extracted); - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } //if no output, try take input extracted = blockItemHandler.extractItem(INPUT_SLOT, blockItemHandler.getSlotLimit(INPUT_SLOT), false); if (!extracted.isEmpty()) { pPlayer.getInventory().placeItemBackInInventory(extracted); - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } } else { //if we have an item in hand, try to insert var remainder = blockItemHandler.insertItem(INPUT_SLOT, stackInHand, false); pPlayer.setItemInHand(pHand, remainder); if (remainder.getCount() != stackInHand.getCount()) { - return InteractionResult.SUCCESS; + return ItemInteractionResult.SUCCESS; } } - return InteractionResult.PASS; + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/logistics/ExtractorNodeBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/logistics/ExtractorNodeBehaviour.java index 56ccd0418..1f777cf98 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/logistics/ExtractorNodeBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/logistics/ExtractorNodeBehaviour.java @@ -10,6 +10,7 @@ import com.klikli_dev.theurgy.logistics.Logistics; import net.minecraft.core.BlockPos; import net.minecraft.core.GlobalPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.LongTag; @@ -169,14 +170,14 @@ public void tickServer() { } @Override - public void saveAdditional(CompoundTag pTag) { - super.saveAdditional(pTag); + public void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); pTag.putByte("distributor", (byte) this.distributor.mode().ordinal()); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); DistributionMode mode = DistributionMode.ROUND_ROBIN; if (pTag.contains("distributor")) { diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/logistics/LeafNodeBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/logistics/LeafNodeBehaviour.java index b04f67b18..95df81af5 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/logistics/LeafNodeBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/logistics/LeafNodeBehaviour.java @@ -7,6 +7,7 @@ import com.klikli_dev.theurgy.logistics.Logistics; import net.minecraft.core.BlockPos; import net.minecraft.core.GlobalPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.LongTag; @@ -106,15 +107,15 @@ public void onDestroyed(){ Logistics.get().remove(this, true); } - public void saveAdditional(CompoundTag pTag) { - this.writeNetwork(pTag); + public void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + this.writeNetwork(pTag, pRegistries); } - public void load(CompoundTag pTag) { - this.readNetwork(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + this.readNetwork(pTag, pRegistries); } - public void writeNetwork(CompoundTag pTag) { + public void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { pTag.putInt("frequency", this.frequency); var list = new ListTag(); for(var target : this.targets){ @@ -123,7 +124,7 @@ public void writeNetwork(CompoundTag pTag) { pTag.put("targets", list); } - public void readNetwork(CompoundTag pTag) { + public void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries) { this.frequency = pTag.getInt("frequency"); this.targets = new ArrayList<>(); var list = pTag.getList("targets", Tag.TAG_LONG); diff --git a/src/main/java/com/klikli_dev/theurgy/content/behaviour/storage/StorageBehaviour.java b/src/main/java/com/klikli_dev/theurgy/content/behaviour/storage/StorageBehaviour.java index f1987224b..2fd868d2f 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/behaviour/storage/StorageBehaviour.java +++ b/src/main/java/com/klikli_dev/theurgy/content/behaviour/storage/StorageBehaviour.java @@ -5,6 +5,7 @@ package com.klikli_dev.theurgy.content.behaviour.storage; import com.klikli_dev.theurgy.util.TetraConsumer; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; @@ -58,13 +59,13 @@ public S onFluidContentsChanged(Consumer onFluidContentsChanged) return (S) this; } - public abstract void readNetwork(CompoundTag pTag); + public abstract void readNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries); - public abstract void writeNetwork(CompoundTag pTag); + public abstract void writeNetwork(CompoundTag pTag, HolderLookup.Provider pRegistries); - public abstract void saveAdditional(CompoundTag pTag); + public abstract void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries); - public abstract void load(CompoundTag pTag); + public abstract void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries); protected void sendBlockUpdated() { if (this.blockEntity.getLevel() != null && !this.blockEntity.getLevel().isClientSide) diff --git a/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultHeatProvider.java b/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultHeatProvider.java index 6c32d8780..28219c414 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultHeatProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultHeatProvider.java @@ -4,6 +4,7 @@ package com.klikli_dev.theurgy.content.capability; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.ByteTag; import net.minecraft.nbt.Tag; import net.neoforged.neoforge.common.util.INBTSerializable; @@ -21,12 +22,12 @@ public void setHot(boolean isHot) { } @Override - public Tag serializeNBT() { + public Tag serializeNBT(HolderLookup.Provider pRegistries) { return ByteTag.valueOf(this.isHot ? (byte) 1 : 0); } @Override - public void deserializeNBT(Tag nbt) { + public void deserializeNBT(HolderLookup.Provider pRegistries, Tag nbt) { if (!(nbt instanceof ByteTag byteNbt)) throw new IllegalArgumentException("Can not deserialize to an instance that isn't the default implementation"); this.isHot = byteNbt.getAsByte() != 0; diff --git a/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultHeatReceiver.java b/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultHeatReceiver.java index 401632c68..6f5b64361 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultHeatReceiver.java +++ b/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultHeatReceiver.java @@ -4,6 +4,7 @@ package com.klikli_dev.theurgy.content.capability; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.LongTag; import net.minecraft.nbt.Tag; import net.neoforged.neoforge.common.util.INBTSerializable; @@ -12,12 +13,12 @@ public class DefaultHeatReceiver implements HeatReceiver, INBTSerializable protected long isHotUntil; @Override - public Tag serializeNBT() { + public Tag serializeNBT(HolderLookup.Provider provider) { return LongTag.valueOf(this.isHotUntil); } @Override - public void deserializeNBT(Tag nbt) { + public void deserializeNBT(HolderLookup.Provider provider, Tag nbt) { if (!(nbt instanceof LongTag longTag)) throw new IllegalArgumentException("Can not deserialize to an instance that isn't the default implementation"); this.isHotUntil = longTag.getAsLong(); diff --git a/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultMercuryFluxStorage.java b/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultMercuryFluxStorage.java index 80307c262..509ad10c5 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultMercuryFluxStorage.java +++ b/src/main/java/com/klikli_dev/theurgy/content/capability/DefaultMercuryFluxStorage.java @@ -4,6 +4,7 @@ package com.klikli_dev.theurgy.content.capability; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.IntTag; import net.minecraft.nbt.Tag; import net.neoforged.neoforge.common.util.INBTSerializable; @@ -79,12 +80,12 @@ public boolean canReceive() { } @Override - public Tag serializeNBT() { + public Tag serializeNBT(HolderLookup.Provider pRegistries) { return IntTag.valueOf(this.getEnergyStored()); } @Override - public void deserializeNBT(Tag nbt) { + public void deserializeNBT(HolderLookup.Provider pRegistries, Tag nbt) { if (!(nbt instanceof IntTag intNbt)) throw new IllegalArgumentException("Can not deserialize to an instance that isn't the default implementation"); this.energy = intNbt.getAsInt(); diff --git a/src/main/java/com/klikli_dev/theurgy/content/entity/ColoredProjectile.java b/src/main/java/com/klikli_dev/theurgy/content/entity/ColoredProjectile.java index 3615f65c6..12350ed9f 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/entity/ColoredProjectile.java +++ b/src/main/java/com/klikli_dev/theurgy/content/entity/ColoredProjectile.java @@ -69,9 +69,9 @@ public void addAdditionalSaveData(CompoundTag compound) { } @Override - protected void defineSynchedData() { - this.entityData.define(COLOR, new ParticleColor(255, 25, 180).getColor()); - this.entityData.define(FINAL_COLOR, new ParticleColor(255, 25, 180).getColor()); + protected void defineSynchedData(SynchedEntityData.Builder builder) { + builder.define(COLOR, new ParticleColor(255, 25, 180).getColor()); + builder.define(FINAL_COLOR, new ParticleColor(255, 25, 180).getColor()); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/entity/FollowProjectile.java b/src/main/java/com/klikli_dev/theurgy/content/entity/FollowProjectile.java index 6618e7883..a4f4229be 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/entity/FollowProjectile.java +++ b/src/main/java/com/klikli_dev/theurgy/content/entity/FollowProjectile.java @@ -104,14 +104,14 @@ public void setDespawnDistance(int distance) { this.getEntityData().set(DESPAWN_DISTANCE, distance); } - protected void defineSynchedData() { - super.defineSynchedData(); - this.entityData.define(TO, new Vec3(0, 0, 0)); - this.entityData.define(FROM, new Vec3(0, 0, 0)); - this.entityData.define(SIZE, 0.0f); - this.entityData.define(SPAWN_TOUCH, this.defaultsBurst()); - this.entityData.define(DESPAWN_DISTANCE, 10); - this.entityData.define(ARRIVAL_DISTANCE, 1.0f); + protected void defineSynchedData(SynchedEntityData.Builder builder) { + super.defineSynchedData(builder); + builder.define(TO, new Vec3(0, 0, 0)); + builder.define(FROM, new Vec3(0, 0, 0)); + builder.define(SIZE, 0.0f); + builder.define(SPAWN_TOUCH, this.defaultsBurst()); + builder.define(DESPAWN_DISTANCE, 10); + builder.define(ARRIVAL_DISTANCE, 1.0f); } public boolean defaultsBurst() { diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/divinationrod/DivinationRodItem.java b/src/main/java/com/klikli_dev/theurgy/content/item/divinationrod/DivinationRodItem.java index 986ce168f..27d137118 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/item/divinationrod/DivinationRodItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/item/divinationrod/DivinationRodItem.java @@ -9,16 +9,19 @@ import com.klikli_dev.theurgy.network.Networking; import com.klikli_dev.theurgy.network.messages.MessageSetDivinationResult; import com.klikli_dev.theurgy.registry.BlockTagRegistry; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; import com.klikli_dev.theurgy.registry.SoundRegistry; import com.klikli_dev.theurgy.scanner.ScanManager; import com.klikli_dev.theurgy.util.EntityUtil; import com.klikli_dev.theurgy.util.LevelUtil; import com.klikli_dev.theurgy.util.TagUtil; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.ChatFormatting; import net.minecraft.client.renderer.item.ItemPropertyFunction; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; +import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; @@ -39,11 +42,11 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -import net.neoforged.neoforge.common.TierSortingRegistry; import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -52,7 +55,7 @@ public class DivinationRodItem extends Item { public static final float NOT_FOUND = 7.0f; public static final float SEARCHING = 8.0f; - public Tier defaultTier; + public Tiers defaultTier; public TagKey defaultAllowedBlocksTag; public TagKey defaultDisallowedBlocksTag; @@ -61,8 +64,16 @@ public class DivinationRodItem extends Item { public int defaultDurability; public boolean defaultAllowAttuning; - public DivinationRodItem(Properties pProperties, Tier defaultTier, TagKey defaultAllowedBlocksTag, TagKey defaultDisallowedBlocksTag, int defaultRange, int defaultDuration, int defaultDurability, boolean defaultAllowAttuning) { - super(pProperties); + public DivinationRodItem(Properties pProperties, Tiers defaultTier, TagKey defaultAllowedBlocksTag, TagKey defaultDisallowedBlocksTag, int defaultRange, int defaultDuration, int defaultDurability, boolean defaultAllowAttuning) { + super(pProperties + .component(DataComponentRegistry.DIVINATION_SETTINGS_TIER, defaultTier) + .component(DataComponentRegistry.DIVINATION_SETTINGS_ALLOWED_BLOCKS_TAG, defaultAllowedBlocksTag) + .component(DataComponentRegistry.DIVINATION_SETTINGS_DISALLOWED_BLOCKS_TAG, defaultDisallowedBlocksTag) + .component(DataComponentRegistry.DIVINATION_SETTINGS_RANGE, defaultRange) + .component(DataComponentRegistry.DIVINATION_SETTINGS_DURATION, defaultDuration) + .component(DataComponentRegistry.DIVINATION_SETTINGS_MAX_DAMAGE, defaultDurability) + .component(DataComponentRegistry.DIVINATION_SETTINGS_ALLOW_ATTUNING, defaultAllowAttuning) + ); this.defaultTier = defaultTier; this.defaultAllowedBlocksTag = defaultAllowedBlocksTag; this.defaultDisallowedBlocksTag = defaultDisallowedBlocksTag; @@ -72,44 +83,26 @@ public DivinationRodItem(Properties pProperties, Tier defaultTier, TagKey this.defaultAllowAttuning = defaultAllowAttuning; } - public static String getLinkedBlockId(ItemStack divinationRod) { - return divinationRod.getOrCreateTag().getString(TheurgyConstants.Nbt.Divination.LINKED_BLOCK_ID); - } - - public static boolean hasLinkedBlock(ItemStack divinationRod) { - return divinationRod.hasTag() && divinationRod.getTag().contains(TheurgyConstants.Nbt.Divination.LINKED_BLOCK_ID); - } + private static final Map, ItemStack> linkedBlockCache = new Object2ObjectOpenHashMap<>(); + private static final Map, ItemStack> linkedTagCache = new Object2ObjectOpenHashMap<>(); public static ItemStack getLinkedBlockStack(ItemStack divinationRod) { - if (hasLinkedBlock(divinationRod)) { - var targetId = getLinkedBlockId(divinationRod); - ItemStack targetStack; - - if (targetId.startsWith("#")) { - var tagId = new ResourceLocation(targetId.substring(1)); - var tag = TagKey.create(Registries.ITEM, tagId); - targetStack = TagUtil.getItemStackForTag(tag); - } else { - var itemId = new ResourceLocation(targetId); - targetStack = new ItemStack(BuiltInRegistries.ITEM.get(itemId)); - } + if (divinationRod.has(DataComponentRegistry.DIVINATION_LINKED_BLOCK)) + return linkedBlockCache.computeIfAbsent(divinationRod.get(DataComponentRegistry.DIVINATION_LINKED_BLOCK), b -> new ItemStack(b.value())); - return targetStack; - } + + if (divinationRod.has(DataComponentRegistry.DIVINATION_LINKED_TAG)) + return linkedTagCache.computeIfAbsent(divinationRod.get(DataComponentRegistry.DIVINATION_LINKED_TAG), TagUtil::getItemStackForBlockTag); return ItemStack.EMPTY; } - private static void scanLinkedBlock(Player player, String id, int range, int duration) { - var targetId = new ResourceLocation(id); - - var blocks = getScanTargetsForId(targetId); + private static void scanLinkedBlock(Player player, Holder blockHolder, int range, int duration) { + var blocks = getScanTargetsForId(blockHolder.unwrapKey().get().location()); ScanManager.get().beginScan(player, blocks, range, duration); } - private static void scanLinkedTag(Player player, String id, int range, int duration) { - var targetId = new ResourceLocation(id.substring(1)); //skip the # - var tagKey = TagKey.create(Registries.BLOCK, targetId); + private static void scanLinkedTag(Player player, TagKey tagKey, int range, int duration) { var blocks = BuiltInRegistries.BLOCK.getTag(tagKey) .map(tag -> tag.stream().map(Holder::value).collect(Collectors.toSet())) .orElse(Collections.emptySet()); @@ -154,7 +147,7 @@ public static ResourceLocation getOreTagFromBlockId(ResourceLocation blockId) { .replace("_deepslate", "") .replace("deepslate_", ""); - return new ResourceLocation("forge:ores/" + oreName); + return new ResourceLocation("c:ores/" + oreName); } public static void registerCreativeModeTabs(DivinationRodItem item, CreativeModeTab.Output output) { @@ -171,7 +164,7 @@ public static void registerCreativeModeTabs(DivinationRodItem item, CreativeMode @Override public int getMaxDamage(ItemStack stack) { - return stack.getOrCreateTag().getInt(TheurgyConstants.Nbt.Divination.SETTING_DURABILITY); + return stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_MAX_DAMAGE, 1); } @Override @@ -194,7 +187,7 @@ public InteractionResult useOn(UseOnContext context) { if (player.isShiftKeyDown()) { - if (!stack.getOrCreateTag().getBoolean(TheurgyConstants.Nbt.Divination.SETTING_ALLOW_ATTUNING)) { + if (!stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_ALLOW_ATTUNING, false)) { if (!level.isClientSide) { player.sendSystemMessage( Component.translatable(TheurgyConstants.I18n.Message.DIVINATION_ROD_ATTUNING_NOT_ALLOWED) @@ -205,7 +198,7 @@ public InteractionResult useOn(UseOnContext context) { BlockState state = level.getBlockState(pos); if (!state.isAir()) { - if (!TierSortingRegistry.isCorrectTierForDrops(tier, state)) { + if (state.is(tier.getIncorrectBlocksForDrops())) { if (!level.isClientSide) { player.sendSystemMessage( Component.translatable( @@ -237,10 +230,7 @@ public InteractionResult useOn(UseOnContext context) { return InteractionResult.FAIL; } else { if (!level.isClientSide) { - stack.getOrCreateTag().putString( - TheurgyConstants.Nbt.Divination.LINKED_BLOCK_ID, - BuiltInRegistries.BLOCK.getKey(state.getBlock()).toString() - ); + stack.set(DataComponentRegistry.DIVINATION_LINKED_BLOCK, state.getBlockHolder()); player.sendSystemMessage( Component.translatable( @@ -266,24 +256,24 @@ public InteractionResultHolder use(Level level, Player player, Intera var stack = player.getItemInHand(hand); if (!player.isShiftKeyDown()) { - if (hasLinkedBlock(stack)) { - var tag = stack.getTag(); - tag.putFloat(TheurgyConstants.Nbt.Divination.DISTANCE, SEARCHING); + if (stack.has(DataComponentRegistry.DIVINATION_LINKED_BLOCK) || stack.has(DataComponentRegistry.DIVINATION_LINKED_TAG)) { + + stack.set(DataComponentRegistry.DIVINATION_DISTANCE, SEARCHING); player.startUsingItem(hand); level.playSound(player, player.blockPosition(), SoundRegistry.TUNING_FORK.get(), SoundSource.PLAYERS, 1, 1); if (level.isClientSide) { - var targetId = getLinkedBlockId(stack); - - if (targetId.startsWith("#")) { - scanLinkedTag(player, targetId, - tag.getInt(TheurgyConstants.Nbt.Divination.SETTING_RANGE), - tag.getInt(TheurgyConstants.Nbt.Divination.SETTING_DURATION)); - } else { - scanLinkedBlock(player, targetId, - tag.getInt(TheurgyConstants.Nbt.Divination.SETTING_RANGE), - tag.getInt(TheurgyConstants.Nbt.Divination.SETTING_DURATION)); + if (stack.has(DataComponentRegistry.DIVINATION_LINKED_TAG)) { + scanLinkedTag(player, + stack.get(DataComponentRegistry.DIVINATION_LINKED_TAG), + stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_RANGE, this.defaultRange), + stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_DURATION, this.defaultDuration)); + } else if(stack.has(DataComponentRegistry.DIVINATION_LINKED_BLOCK)){ + scanLinkedBlock(player, + stack.get(DataComponentRegistry.DIVINATION_LINKED_BLOCK), + stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_RANGE, this.defaultRange), + stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_DURATION, this.defaultDuration)); } } } else if (!level.isClientSide) { @@ -302,7 +292,7 @@ public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity enti if (stack.getDamageValue() >= stack.getMaxDamage()) { //if in the last usage cycle the item was used up, we now actually break it to avoid over-use - player.broadcastBreakEvent(player.getUsedItemHand()); + player.broadcastBreakEvent(LivingEntity.getSlotForHand(player.getUsedItemHand())); var item = stack.getItem(); stack.shrink(1); player.awardStat(Stats.ITEM_BROKEN.get(item)); @@ -310,17 +300,19 @@ public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity enti return stack; } - player.getCooldowns().addCooldown(this, stack.getOrCreateTag().getInt(TheurgyConstants.Nbt.Divination.SETTING_DURATION)); - stack.getOrCreateTag().putFloat(TheurgyConstants.Nbt.Divination.DISTANCE, NOT_FOUND); + player.getCooldowns().addCooldown(this, stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_DURATION, this.defaultDuration)); + + stack.set(DataComponentRegistry.DIVINATION_DISTANCE, NOT_FOUND); + if (level.isClientSide) { BlockPos result = ScanManager.get().finishScan(player); float distance = this.getDistance(player.position(), result); - stack.getTag().putFloat(TheurgyConstants.Nbt.Divination.DISTANCE, distance); + stack.set(DataComponentRegistry.DIVINATION_DISTANCE, distance); Networking.sendToServer(new MessageSetDivinationResult(result, distance)); if (result != null) { - stack.getTag().putLong(TheurgyConstants.Nbt.Divination.POS, result.asLong()); + stack.set(DataComponentRegistry.DIVINATION_POS, result); this.spawnResultParticle(result, level, player); } } else { @@ -328,27 +320,26 @@ public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity enti if (!player.getAbilities().instabuild) //only hurt, but do not break -> this allows using the rod without breaking it when we just re-use a saved result. //we break it at the beginning of this method if we are at >= max damage. - stack.hurt(1, player.getRandom(), null); + stack.hurtAndBreak(1, player.getRandom(), null, () -> {}); } return stack; } @Override public int getUseDuration(ItemStack stack) { - return stack.getOrCreateTag().getInt(TheurgyConstants.Nbt.Divination.SETTING_DURATION); + return stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_DURATION, this.defaultDuration); } @Override public void releaseUsing(ItemStack stack, Level level, LivingEntity pLivingEntity, int pTimeCharged) { - if (!stack.getOrCreateTag().contains(TheurgyConstants.Nbt.Divination.POS)) + if(!stack.has(DataComponentRegistry.DIVINATION_POS)) //player interrupted, so we can safely set not found on server, if we don't have a previous result - stack.getOrCreateTag().putFloat(TheurgyConstants.Nbt.Divination.DISTANCE, NOT_FOUND); + stack.set(DataComponentRegistry.DIVINATION_DISTANCE, NOT_FOUND); else { //otherwise, restore distance from result //nice bonus: will update crystal status on every "display only" use. - BlockPos result = BlockPos.of(stack.getTag().getLong(TheurgyConstants.Nbt.Divination.POS)); - float distance = this.getDistance(pLivingEntity.position(), result); - stack.getTag().putFloat(TheurgyConstants.Nbt.Divination.DISTANCE, distance); + float distance = this.getDistance(pLivingEntity.position(), stack.get(DataComponentRegistry.DIVINATION_POS)); + stack.set(DataComponentRegistry.DIVINATION_DISTANCE, distance); } @@ -356,9 +347,8 @@ public void releaseUsing(ItemStack stack, Level level, LivingEntity pLivingEntit ScanManager.get().cancelScan(); //re-use old result - if (stack.getTag().contains(TheurgyConstants.Nbt.Divination.POS)) { - BlockPos result = BlockPos.of(stack.getTag().getLong(TheurgyConstants.Nbt.Divination.POS)); - this.spawnResultParticle(result, level, pLivingEntity); + if (stack.has(DataComponentRegistry.DIVINATION_POS)) { + this.spawnResultParticle(stack.get(DataComponentRegistry.DIVINATION_POS), level, pLivingEntity); } } super.releaseUsing(stack, level, pLivingEntity, pTimeCharged); @@ -366,7 +356,7 @@ public void releaseUsing(ItemStack stack, Level level, LivingEntity pLivingEntit @Override public Component getName(ItemStack pStack) { - if (hasLinkedBlock(pStack)) { + if (pStack.has(DataComponentRegistry.DIVINATION_LINKED_BLOCK) || pStack.has(DataComponentRegistry.DIVINATION_LINKED_TAG)) { var stack = getLinkedBlockStack(pStack); if (!stack.isEmpty()) { var blockComponent = ComponentUtils.wrapInSquareBrackets( @@ -388,39 +378,8 @@ public Component getName(ItemStack pStack) { } @Override - public void verifyTagAfterLoad(CompoundTag tag) { - //moved from initCapabilities, because that is now lazy loaded. - //that lazy load caused: https://github.com/klikli-dev/theurgy/issues/117 - //Issue explained very well here: https://github.com/BluSunrize/ImmersiveEngineering/issues/5708#issuecomment-1574885125 - - //fill in any nbt that is not provided by the recipe with default values - if (!tag.contains(TheurgyConstants.Nbt.Divination.SETTING_TIER)) - tag.putString(TheurgyConstants.Nbt.Divination.SETTING_TIER, TierSortingRegistry.getName(this.defaultTier).toString()); - - if (!tag.contains(TheurgyConstants.Nbt.Divination.SETTING_ALLOWED_BLOCKS_TAG)) - tag.putString(TheurgyConstants.Nbt.Divination.SETTING_ALLOWED_BLOCKS_TAG, this.defaultAllowedBlocksTag.location().toString()); - - if (!tag.contains(TheurgyConstants.Nbt.Divination.SETTING_DISALLOWED_BLOCKS_TAG)) - tag.putString(TheurgyConstants.Nbt.Divination.SETTING_DISALLOWED_BLOCKS_TAG, this.defaultDisallowedBlocksTag.location().toString()); - - if (!tag.contains(TheurgyConstants.Nbt.Divination.SETTING_RANGE)) - tag.putInt(TheurgyConstants.Nbt.Divination.SETTING_RANGE, this.defaultRange); - - if (!tag.contains(TheurgyConstants.Nbt.Divination.SETTING_DURATION)) - tag.putInt(TheurgyConstants.Nbt.Divination.SETTING_DURATION, this.defaultDuration); - - if (!tag.contains(TheurgyConstants.Nbt.Divination.SETTING_DURABILITY)) - tag.putInt(TheurgyConstants.Nbt.Divination.SETTING_DURABILITY, this.defaultDurability); - - if (!tag.contains(TheurgyConstants.Nbt.Divination.SETTING_ALLOW_ATTUNING)) - tag.putBoolean(TheurgyConstants.Nbt.Divination.SETTING_ALLOW_ATTUNING, this.defaultAllowAttuning); - - super.verifyTagAfterLoad(tag); - } - - @Override - public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List pTooltipComponents, TooltipFlag pIsAdvanced) { - if (hasLinkedBlock(pStack)) { + public void appendHoverText(ItemStack pStack, TooltipContext pContext, List pTooltipComponents, TooltipFlag pTooltipFlag) { + if (pStack.has(DataComponentRegistry.DIVINATION_LINKED_BLOCK) || pStack.has(DataComponentRegistry.DIVINATION_LINKED_TAG)) { var stack = getLinkedBlockStack(pStack); if (!stack.isEmpty()) { var blockComponent = Component.empty().append(stack.getHoverName()) @@ -434,11 +393,12 @@ public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List getAllowedBlocksTag(ItemStack stack) { - var allowedBlocksTag = stack.getOrCreateTag().getString(TheurgyConstants.Nbt.Divination.SETTING_ALLOWED_BLOCKS_TAG); - return BlockTagRegistry.tag(new ResourceLocation(allowedBlocksTag)); + return stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_ALLOWED_BLOCKS_TAG, this.defaultAllowedBlocksTag); } public TagKey getDisallowedBlocksTag(ItemStack stack) { - var disallowedBlocksTag = stack.getOrCreateTag().getString(TheurgyConstants.Nbt.Divination.SETTING_DISALLOWED_BLOCKS_TAG); - return BlockTagRegistry.tag(new ResourceLocation(disallowedBlocksTag)); + return stack.getOrDefault(DataComponentRegistry.DIVINATION_SETTINGS_DISALLOWED_BLOCKS_TAG, this.defaultDisallowedBlocksTag); } /** @@ -527,10 +484,9 @@ public TagKey getDisallowedBlocksTag(ItemStack stack) { public static class DistHelper { @SuppressWarnings("deprecation") public static ItemPropertyFunction DIVINATION_DISTANCE = (stack, world, entity, i) -> { - if (!stack.getOrCreateTag().contains(TheurgyConstants.Nbt.Divination.DISTANCE) || - stack.getTag().getFloat(TheurgyConstants.Nbt.Divination.DISTANCE) < 0) + if (stack.getOrDefault(DataComponentRegistry.DIVINATION_DISTANCE, -1.0f) < 0) return NOT_FOUND; - return stack.getTag().getFloat(TheurgyConstants.Nbt.Divination.DISTANCE); + return stack.get(DataComponentRegistry.DIVINATION_DISTANCE); }; } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/MercurialWandItem.java b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/MercurialWandItem.java index 1c008a714..ec1b4c498 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/MercurialWandItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/MercurialWandItem.java @@ -7,6 +7,7 @@ import com.klikli_dev.theurgy.content.item.mercurialwand.mode.MercurialWandItemMode; import com.klikli_dev.theurgy.content.item.mode.ModeItem; import com.klikli_dev.theurgy.content.render.itemhud.ItemHUDProvider; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; import net.minecraft.client.Minecraft; import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; @@ -29,17 +30,18 @@ public MercurialWandItem(Properties pProperties) { @Override public void changeMode(Player player, ItemStack stack, int shift) { - var nextMode = MercurialWandItemMode.getMode(stack).type().next().mode(); - MercurialWandItemMode.setMode(stack, nextMode); + var nextMode = stack.get(DataComponentRegistry.MERCURIAL_WAND_ITEM_MODE.get()).type().next().mode(); + stack.set(DataComponentRegistry.MERCURIAL_WAND_ITEM_MODE.get(), nextMode); player.displayClientMessage(nextMode.description(stack, player.level()), true); } @Override public void onScroll(Player player, ItemStack stack, int shift) { - if (MercurialWandItemMode.getMode(stack).supportsScrollWithRightDown() && DistHelper.isRightPressed()) { + var mode = stack.get(DataComponentRegistry.MERCURIAL_WAND_ITEM_MODE.get()); + if (mode.supportsScrollWithRightDown() && DistHelper.isRightPressed()) { //if right mouse button is pressed AND we are in a mode that supports this we perform a sub-scroll. - MercurialWandItemMode.getMode(stack).onScrollWithRightDown(player, stack, shift); + mode.onScrollWithRightDown(player, stack, shift); } else { //otherwise we change the mode ModeItem.super.onScroll(player, stack, shift); @@ -49,7 +51,7 @@ public void onScroll(Player player, ItemStack stack, int shift) { @Override public InteractionResultHolder use(Level pLevel, Player pPlayer, InteractionHand pUsedHand) { var stack = pPlayer.getItemInHand(pUsedHand); - var mode = MercurialWandItemMode.getMode(stack); + var mode = stack.get(DataComponentRegistry.MERCURIAL_WAND_ITEM_MODE.get()); var result = mode.use(pLevel, pPlayer, pUsedHand); if (result.getResult() != InteractionResult.PASS) { @@ -62,7 +64,7 @@ public InteractionResultHolder use(Level pLevel, Player pPlayer, Inte @Override public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { //onItemUseFirst is called BEFORE the block so we can interrupt e.g. opening the block inv - var mode = MercurialWandItemMode.getMode(stack); + var mode = stack.get(DataComponentRegistry.MERCURIAL_WAND_ITEM_MODE.get()); var result = mode.onItemUseFirst(stack, context); if (result != InteractionResult.PASS) { @@ -74,7 +76,7 @@ public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { @Override public void appendHUDText(Player pPlayer, HitResult pHitResult, ItemStack pStack, @Nullable Level pLevel, List pTooltipComponents) { - MercurialWandItemMode.getMode(pStack).appendHUDText(pPlayer, pHitResult, pStack, pLevel, pTooltipComponents); + pStack.get(DataComponentRegistry.MERCURIAL_WAND_ITEM_MODE.get()).appendHUDText(pPlayer, pHitResult, pStack, pLevel, pTooltipComponents); } public static class DistHelper { diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/RotateSelectedDirectionMode.java b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/CycleSelectedDirectionMode.java similarity index 91% rename from src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/RotateSelectedDirectionMode.java rename to src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/CycleSelectedDirectionMode.java index 83ef555d5..5cc9877e8 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/RotateSelectedDirectionMode.java +++ b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/CycleSelectedDirectionMode.java @@ -20,18 +20,18 @@ import java.util.List; -public class RotateSelectedDirectionMode extends MercurialWandItemMode { +public class CycleSelectedDirectionMode extends MercurialWandItemMode { private final RotateSelectedDirectionModeRenderHandler renderHandler; - protected RotateSelectedDirectionMode() { + protected CycleSelectedDirectionMode() { super(); this.renderHandler = new RotateSelectedDirectionModeRenderHandler(this); } @Override public String descriptionId() { - return TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_ROTATE_SELECTED_DIRECTION; + return TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_CYCLE_SELECTED_DIRECTION; } @Override @@ -43,7 +43,7 @@ public void appendHUDText(Player pPlayer, HitResult pHitResult, ItemStack pStack var currentDirection = directionSettable.targetDirection(); var newDirection = this.nextDirection(currentDirection); - var component = Component.translatable(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_ROTATE_SELECTED_DIRECTION_WITH_TARGET, + var component = Component.translatable(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_CYCLE_SELECTED_DIRECTION_WITH_TARGET, Component.translatable(currentDirection.getName()).withStyle(currentDirection != newDirection ? ChatFormatting.YELLOW : ChatFormatting.GREEN), Component.translatable(newDirection.getName()).withStyle(ChatFormatting.GREEN) ); @@ -73,7 +73,7 @@ public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { var newDirection = this.nextDirection(currentDirection); directionSettable.targetDirection(newDirection); - context.getPlayer().displayClientMessage(Component.translatable(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_ROTATE_SELECTED_DIRECTION_SUCCESS, + context.getPlayer().displayClientMessage(Component.translatable(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_CYCLE_SELECTED_DIRECTION_SUCCESS, Component.translatable(newDirection.getName()).withStyle(ChatFormatting.GREEN) ), true); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/MercurialWandItemMode.java b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/MercurialWandItemMode.java index 4ed5cf741..5054a5868 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/MercurialWandItemMode.java +++ b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/MercurialWandItemMode.java @@ -5,26 +5,29 @@ package com.klikli_dev.theurgy.content.item.mercurialwand.mode; import com.klikli_dev.theurgy.content.item.mode.ItemMode; +import com.mojang.serialization.Codec; +import io.netty.buffer.ByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.util.ByIdMap; +import net.minecraft.util.StringRepresentable; import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.function.IntFunction; public abstract class MercurialWandItemMode extends ItemMode { + + public static final Codec CODEC = Type.CODEC.xmap(Type::mode, MercurialWandItemMode::type); + + public static final StreamCodec STREAM_CODEC = Type.STREAM_CODEC.map(Type::mode, MercurialWandItemMode::type); + protected Type type; protected MercurialWandItemMode() { super(); } - public static MercurialWandItemMode getMode(ItemStack stack) { - var tag = stack.getOrCreateTag(); - var modeOrdinal = tag.getInt("theurgy:mode"); - return Type.values()[modeOrdinal].mode(); - } - - public static void setMode(ItemStack stack, MercurialWandItemMode mode) { - var tag = stack.getOrCreateTag(); - tag.putInt("theurgy:mode", mode.type.ordinal()); - } - public Type type() { return this.type; } @@ -35,20 +38,23 @@ protected String typeName() { } - public enum Type { - ROTATE_DIRECTION(new RotateSelectedDirectionMode()), - SWITCH_LOGISTICS_ENABLED(new SwitchLogisticsEnabledMode()), - SELECT_DIRECTION(new SelectDirectionMode(), false), - SET_SELECTED_DIRECTION(new SetSelectedDirectionMode(), false); + public enum Type implements StringRepresentable { + CYCLE_DIRECTION("cycle_direction",new CycleSelectedDirectionMode()), + SWITCH_LOGISTICS_ENABLED("switch_logistics_enabled", new SwitchLogisticsEnabledMode()); + public static final Codec CODEC = StringRepresentable.fromValues(Type::values); + public static final IntFunction BY_ID = ByIdMap.continuous(Enum::ordinal, values(), ByIdMap.OutOfBoundsStrategy.WRAP); + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, Type::ordinal); + final String name; final MercurialWandItemMode mode; final boolean enabled; - Type(MercurialWandItemMode mode) { - this(mode, true); + Type(String name, MercurialWandItemMode mode) { + this(name, mode, true); } - Type(MercurialWandItemMode mode, boolean enabled) { + Type(String name, MercurialWandItemMode mode, boolean enabled) { + this.name = name; this.mode = mode; this.enabled = enabled; mode.type = this; @@ -93,5 +99,9 @@ public Type shift(int shift) { return this; } + @Override + public @NotNull String getSerializedName() { + return this.name; + } } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/RotateSelectedDirectionModeRenderHandler.java b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/RotateSelectedDirectionModeRenderHandler.java index 56731ddba..ba6b001de 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/RotateSelectedDirectionModeRenderHandler.java +++ b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/RotateSelectedDirectionModeRenderHandler.java @@ -19,9 +19,9 @@ import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.client.event.RenderHighlightEvent; -public class RotateSelectedDirectionModeRenderHandler extends ItemModeRenderHandler { +public class RotateSelectedDirectionModeRenderHandler extends ItemModeRenderHandler { - public RotateSelectedDirectionModeRenderHandler(RotateSelectedDirectionMode mode) { + public RotateSelectedDirectionModeRenderHandler(CycleSelectedDirectionMode mode) { super(mode); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SelectDirectionMode.java b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SelectDirectionMode.java deleted file mode 100644 index 5685398f3..000000000 --- a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SelectDirectionMode.java +++ /dev/null @@ -1,117 +0,0 @@ -// SPDX-FileCopyrightText: 2024 klikli-dev -// -// SPDX-License-Identifier: MIT - -package com.klikli_dev.theurgy.content.item.mercurialwand.mode; - -import com.klikli_dev.theurgy.TheurgyConstants; -import com.klikli_dev.theurgy.content.item.mode.ItemMode; -import com.klikli_dev.theurgy.content.item.mode.ItemModeRenderHandler; -import com.klikli_dev.theurgy.network.Networking; -import com.klikli_dev.theurgy.network.messages.MessageItemModeSelectDirection; -import net.minecraft.ChatFormatting; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.Nullable; - -public class SelectDirectionMode extends MercurialWandItemMode { - - private final SelectDirectionModeRenderHandler renderHandler; - - protected SelectDirectionMode() { - super(); - this.renderHandler = new SelectDirectionModeRenderHandler(this); - } - - @Override - public String descriptionId() { - return TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SELECT_DIRECTION; - } - - @Override - public MutableComponent description(ItemStack pStack, @Nullable Level pLevel) { - return Component.translatable( - this.descriptionId(), - Component.translatable(this.getDirection(pStack).getName()).withStyle(ChatFormatting.GREEN)); - } - - @Override - public SelectDirectionModeRenderHandler renderHandler() { - return this.renderHandler; - } - - @Override - public boolean supportsScrollWithRightDown() { - return true; - } - - @Override - public void onScrollWithRightDown(Player player, ItemStack stack, int shift) { - super.onScrollWithRightDown(player, stack, shift); - - var modeTag = this.getModeTag(stack); - var direction = !modeTag.contains("direction") ? Direction.fromYRot(player.getYRot()) : this.shiftDirection(this.getDirection(modeTag), shift); - - modeTag.putInt("direction", direction.ordinal()); - - Networking.sendToServer(new MessageItemModeSelectDirection(direction)); - - player.displayClientMessage(Component.translatable(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SELECT_DIRECTION_SUCCESS, - Component.translatable(direction.getName()).withStyle(ChatFormatting.GREEN) - ), true); - } - - @Override - public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { - //the select direction mode does not have a "use" function, it just listens to the scroll - return InteractionResult.CONSUME; //we need to consume because SUCCESS causes a swing animation - } - - public Direction getDirection(CompoundTag modeTag) { - return Direction.values()[modeTag.getInt("direction")]; - } - - public void setDirection(CompoundTag modeTag, Direction direction) { - modeTag.putInt("direction", direction.ordinal()); - } - - public Direction getDirection(ItemStack stack) { - return this.getDirection(this.getModeTag(stack)); - } - - public void setDirection(ItemStack stack, Direction direction) { - this.setDirection(this.getModeTag(stack), direction); - } - - protected Direction nextDirection(Direction direction) { - int next = direction.ordinal() + 1; - if (next >= Direction.values().length) { - next = 0; - } - return Direction.values()[next]; - } - - protected Direction previousDirection(Direction direction) { - int previous = direction.ordinal() - 1; - if (previous < 0) { - previous = Direction.values().length - 1; - } - return Direction.values()[previous]; - } - - public Direction shiftDirection(Direction direction, int shift) { - if (shift > 0) { - return this.nextDirection(direction); - } else if (shift < 0) { - return this.previousDirection(direction); - } - return direction; - } -} diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SelectDirectionModeRenderHandler.java b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SelectDirectionModeRenderHandler.java deleted file mode 100644 index 80cbdf9dc..000000000 --- a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SelectDirectionModeRenderHandler.java +++ /dev/null @@ -1,61 +0,0 @@ -// SPDX-FileCopyrightText: 2024 klikli-dev -// -// SPDX-License-Identifier: MIT - -package com.klikli_dev.theurgy.content.item.mercurialwand.mode; - -import com.klikli_dev.theurgy.content.item.mode.ItemModeRenderHandler; -import com.klikli_dev.theurgy.content.render.BlockOverlays; -import com.klikli_dev.theurgy.content.render.Color; -import com.klikli_dev.theurgy.content.render.RenderTypes; -import com.klikli_dev.theurgy.content.render.cube.CubeModel; -import com.klikli_dev.theurgy.content.render.cube.CubeModelRenderer; -import com.klikli_dev.theurgy.registry.ItemRegistry; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.core.Direction; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import net.neoforged.neoforge.client.event.RenderHighlightEvent; - -public class SelectDirectionModeRenderHandler extends ItemModeRenderHandler { - - public SelectDirectionModeRenderHandler(SelectDirectionMode mode) { - super(mode); - } - - @Override - public void renderBlockHighlight(RenderHighlightEvent.Block event) { - Player player = Minecraft.getInstance().player; - if (player == null) - return; - - BlockHitResult rayTraceResult = event.getTarget(); - if (rayTraceResult.getType() == BlockHitResult.Type.MISS) - return; - - var pos = rayTraceResult.getBlockPos(); - var ps = event.getPoseStack(); - var camera = event.getCamera(); - var bufferSource = event.getMultiBufferSource(); - - var stack = player.getMainHandItem(); - - Direction face = this.mode.getDirection(stack); - - //Note: for now we simply do not use transparency here because it does not work nicely with translucent blocks - // specifically, it stops them from rendering, os the transparent highlight renders the world behind the bock. - // If we want to play with it again, use public final static Color GREEN = new Color(0, 255, 0, 155).setImmutable(); - - Vec3 viewPosition = camera.getPosition(); - ps.pushPose(); - ps.translate(pos.getX() - viewPosition.x, pos.getY() - viewPosition.y, pos.getZ() - viewPosition.z); - CubeModelRenderer.renderCube( - CubeModel.getOverlayModel(face, BlockOverlays.WHITE), ps, bufferSource.getBuffer(RenderTypes.translucentCullNoDepthBlockSheet()), - Color.GREEN.getRGB(), LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, CubeModelRenderer.FaceDisplay.FRONT, - camera); - ps.popPose(); - } -} diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SetSelectedDirectionMode.java b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SetSelectedDirectionMode.java deleted file mode 100644 index 0fea0596d..000000000 --- a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SetSelectedDirectionMode.java +++ /dev/null @@ -1,99 +0,0 @@ -// SPDX-FileCopyrightText: 2024 klikli-dev -// -// SPDX-License-Identifier: MIT - -package com.klikli_dev.theurgy.content.item.mercurialwand.mode; - -import com.klikli_dev.theurgy.TheurgyConstants; -import com.klikli_dev.theurgy.content.item.mode.EnabledSetter; -import com.klikli_dev.theurgy.content.item.mode.ItemModeRenderHandler; -import com.klikli_dev.theurgy.content.item.mode.TargetDirectionSetter; -import net.minecraft.ChatFormatting; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -public class SetSelectedDirectionMode extends MercurialWandItemMode { - - private SetSelectedDirectionModeRenderHandler renderHandler; - - protected SetSelectedDirectionMode() { - super(); - this.renderHandler = new SetSelectedDirectionModeRenderHandler(this); - } - - @Override - public String descriptionId() { - return TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SET_SELECTED_DIRECTION; - } - - @Override - public MutableComponent description(ItemStack pStack, @Nullable Level pLevel) { - return Component.translatable( - this.descriptionId(), - Component.translatable(this.getDirection(pStack).getName()).withStyle(ChatFormatting.GREEN)); - } - - @Override - public void appendHUDText(Player pPlayer, HitResult pHitResult, ItemStack pStack, @Nullable Level pLevel, List pTooltipComponents) { - var description = this.description(pStack, pLevel); - if (pHitResult instanceof BlockHitResult blockHitResult) { - var blockEntity = pLevel.getBlockEntity(blockHitResult.getBlockPos()); - if (blockEntity instanceof TargetDirectionSetter directionSettable) { - var currentDirection = directionSettable.targetDirection(); - var newDirection = this.getDirection(pStack); - - var component = Component.translatable(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SET_SELECTED_DIRECTION_WITH_TARGET, - Component.translatable(currentDirection.getName()).withStyle(currentDirection != newDirection ? ChatFormatting.YELLOW : ChatFormatting.GREEN), - Component.translatable(newDirection.getName()).withStyle(ChatFormatting.GREEN) - ); - - description = component; - } - } - pTooltipComponents.add(description ); - } - - @Override - public SetSelectedDirectionModeRenderHandler renderHandler() { - return this.renderHandler; - } - - public Direction getDirection(ItemStack stack) { - var mode = (SelectDirectionMode) Type.SELECT_DIRECTION.mode(); - return mode.getDirection(stack); - } - - @Override - public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { - //get the target block and set its direction if it is a fitting block - - var blockPos = context.getClickedPos(); - var level = context.getLevel(); - - var blockEntity = level.getBlockEntity(blockPos); - if (blockEntity instanceof TargetDirectionSetter directionSettable) { - if(!level.isClientSide){ - var direction = this.getDirection(stack); - directionSettable.targetDirection(direction); - - context.getPlayer().displayClientMessage(Component.translatable(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SET_SELECTED_DIRECTION_SUCCESS, - Component.translatable(direction.getName()).withStyle(ChatFormatting.GREEN) - ), true); - } - return InteractionResult.SUCCESS; - } - - return super.onItemUseFirst(stack, context); - } -} diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SetSelectedDirectionModeRenderHandler.java b/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SetSelectedDirectionModeRenderHandler.java deleted file mode 100644 index 9e596c7a8..000000000 --- a/src/main/java/com/klikli_dev/theurgy/content/item/mercurialwand/mode/SetSelectedDirectionModeRenderHandler.java +++ /dev/null @@ -1,70 +0,0 @@ -// SPDX-FileCopyrightText: 2024 klikli-dev -// -// SPDX-License-Identifier: MIT - -package com.klikli_dev.theurgy.content.item.mercurialwand.mode; - -import com.klikli_dev.theurgy.content.item.mode.ItemModeRenderHandler; -import com.klikli_dev.theurgy.content.item.mode.TargetDirectionSetter; -import com.klikli_dev.theurgy.content.render.BlockOverlays; -import com.klikli_dev.theurgy.content.render.Color; -import com.klikli_dev.theurgy.content.render.RenderTypes; -import com.klikli_dev.theurgy.content.render.cube.CubeModel; -import com.klikli_dev.theurgy.content.render.cube.CubeModelRenderer; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import net.neoforged.neoforge.client.event.RenderHighlightEvent; - -public class SetSelectedDirectionModeRenderHandler extends ItemModeRenderHandler { - - public SetSelectedDirectionModeRenderHandler(SetSelectedDirectionMode mode) { - super(mode); - } - - @Override - public void renderBlockHighlight(RenderHighlightEvent.Block event) { - Player player = Minecraft.getInstance().player; - if (player == null) - return; - - BlockHitResult rayTraceResult = event.getTarget(); - if (rayTraceResult.getType() != BlockHitResult.Type.BLOCK) - return; - - var blockEntity = player.level().getBlockEntity(rayTraceResult.getBlockPos()); - if (blockEntity instanceof TargetDirectionSetter directionSettable) { - var currentDirection = directionSettable.targetDirection(); - - var stack = player.getMainHandItem(); - var newDirection = this.mode.getDirection(stack); - var targetPos = directionSettable.targetPos(); - - var ps = event.getPoseStack(); - var camera = event.getCamera(); - var bufferSource = event.getMultiBufferSource(); - - //Note: for now we simply do not use transparency here because it does not work nicely with translucent blocks - // specifically, it stops them from rendering, os the transparent highlight renders the world behind the bock. - // If we want to play with it again, use public final static Color GREEN = new Color(0, 255, 0, 155).setImmutable(); - - Vec3 viewPosition = camera.getPosition(); - ps.pushPose(); - ps.translate(targetPos.getX() - viewPosition.x, targetPos.getY() - viewPosition.y, targetPos.getZ() - viewPosition.z); - CubeModelRenderer.renderCube( - CubeModel.getOverlayModel(newDirection, BlockOverlays.WHITE), ps, bufferSource.getBuffer(RenderTypes.translucentCullNoDepthBlockSheet()), - Color.GREEN.getRGB(), LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, CubeModelRenderer.FaceDisplay.FRONT, - camera); - if (currentDirection != newDirection) { - CubeModelRenderer.renderCube( - CubeModel.getOverlayModel(currentDirection, BlockOverlays.WHITE), ps, bufferSource.getBuffer(RenderTypes.translucentCullNoDepthBlockSheet()), - Color.YELLOW.getRGB(), LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, CubeModelRenderer.FaceDisplay.FRONT, - camera); - } - ps.popPose(); - } - } -} diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/mode/ItemMode.java b/src/main/java/com/klikli_dev/theurgy/content/item/mode/ItemMode.java index 488c755d1..098e37911 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/item/mode/ItemMode.java +++ b/src/main/java/com/klikli_dev/theurgy/content/item/mode/ItemMode.java @@ -52,9 +52,4 @@ public void appendHUDText(Player pPlayer, HitResult pHitResult, ItemStack pStack } public abstract ItemModeRenderHandler renderHandler(); - - protected CompoundTag getModeTag(ItemStack stack) { - //an item will end up with one tag per mode type. - return stack.getOrCreateTagElement("theurgy:mode." + this.typeName()); - } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/item/sulfur/AlchemicalSulfurItem.java b/src/main/java/com/klikli_dev/theurgy/content/item/sulfur/AlchemicalSulfurItem.java index 17f974d6a..5aa958c6d 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/item/sulfur/AlchemicalSulfurItem.java +++ b/src/main/java/com/klikli_dev/theurgy/content/item/sulfur/AlchemicalSulfurItem.java @@ -8,31 +8,31 @@ import com.google.common.collect.ImmutableList; import com.klikli_dev.theurgy.TheurgyConstants; import com.klikli_dev.theurgy.content.item.sulfur.render.AlchemicalSulfurBEWLR; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; import com.klikli_dev.theurgy.registry.ItemRegistry; -import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; -import com.klikli_dev.theurgy.registry.SulfurRegistry; -import com.klikli_dev.theurgy.util.LevelUtil; import com.klikli_dev.theurgy.util.TagUtil; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.ChatFormatting; import net.minecraft.Util; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.core.registries.Registries; +import net.minecraft.core.Holder; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentUtils; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.Style; -import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; import java.util.List; +import java.util.Map; import java.util.function.Consumer; import java.util.function.Supplier; public class AlchemicalSulfurItem extends Item { + private static final Map, ItemStack> sulfurSourceItemCache = new Object2ObjectOpenHashMap<>(); + private static final Map, ItemStack> sulfurSourceTagCache = new Object2ObjectOpenHashMap<>(); /** * if true, an item model based on builtin/entity will be generated for this item. * This will cause SulfurBEWLR to be used to render the item dynamically based on TheurgyConstants.Nbt.SULFUR_SOURCE_ID, instead of a json model. @@ -54,41 +54,36 @@ public class AlchemicalSulfurItem extends Item { * if true, will use TheurgyConstants.Nbt.SULFUR_SOURCE_ID to provide a parameter to the item tooltip component that can be accessed with %s in the language file. */ public boolean provideAutomaticTooltipData; - /** * If true, data gen will generate a lang entry for the item tooltip. */ public boolean useAutomaticTooltipLangGeneration; - /** * If true will convert the tag to a description id and use it as source name, instead of the source stack procured for the tag. * This is mainly intended for sulfurs that actually represent a tag (such as "all logs"). * It should not be used for sulfurs that represent a specific item where we use the tag to handle mod compat (e.g. "Tingleberry"). */ public boolean overrideTagSourceName; - /** * If true will use the source name from the lang file, instead of the source stack. * Additionally, this will cause overrideTagSourceName to be ignored. */ public boolean overrideSourceName; - /** * If true the LiquefactionRecipe used to craft this item will automatically generate a source id based on the ingredient, if no source id is provided in the recipe result nbt. */ public boolean autoGenerateSourceIdInRecipe; - - public Supplier sourceStackSupplier; public Supplier emptyJarStackSupplier; - public AlchemicalSulfurTier tier; + + //TODO: Rework sulfur source handling + // if items can support default data components, we can probably provide all sulfurs with the proper source as component + // ideally we should remove all "get from recipe" handling + // the only exception can maybe be JEI? that should reflect recipe changes + // although the question is if recipes ever change the sulfur source - probably not! public AlchemicalSulfurType type; public AlchemicalSulfurItem(Properties pProperties) { - this(pProperties, Suppliers.memoize(() -> ItemStack.EMPTY)); - } - - public AlchemicalSulfurItem(Properties pProperties, Supplier sourceStackSupplier) { super(pProperties); this.useAutomaticIconRendering = true; this.useAutomaticNameRendering = true; @@ -98,35 +93,11 @@ public AlchemicalSulfurItem(Properties pProperties, Supplier sourceSt this.autoGenerateSourceIdInRecipe = true; this.overrideTagSourceName = false; this.overrideSourceName = false; - this.sourceStackSupplier = sourceStackSupplier; this.emptyJarStackSupplier = Suppliers.memoize(() -> new ItemStack(ItemRegistry.EMPTY_JAR_ICON.get())); this.tier = AlchemicalSulfurTier.ABUNDANT; this.type = AlchemicalSulfurType.MISC; } - public static String getSourceItemId(ItemStack sulfurStack) { - if (!sulfurStack.hasTag()) { - var level = LevelUtil.getLevelWithoutContext(); - var recipeManager = level == null ? null : level.getRecipeManager(); - var registryAccess = level == null ? null : level.registryAccess(); - - if (recipeManager != null && sulfurStack.getItem() instanceof AlchemicalSulfurItem sulfur) { - var liquefactionRecipes = recipeManager.getAllRecipesFor(RecipeTypeRegistry.LIQUEFACTION.get()).stream().filter(r -> r.value().getResultItem(registryAccess) != null).toList(); - - var preferred = SulfurRegistry.getPreferredSulfurVariant(sulfur, liquefactionRecipes, level); - if (preferred.isPresent() && preferred.get().hasTag()) { - sulfurStack.setTag(preferred.get().getTag()); - } - } - } - - if (sulfurStack.hasTag() && sulfurStack.getTag().contains(TheurgyConstants.Nbt.SULFUR_SOURCE_ID)) { - return sulfurStack.getTag().getString(TheurgyConstants.Nbt.SULFUR_SOURCE_ID); - } - - return ""; - } - public static ItemStack getEmptyJarStack(ItemStack sulfurStack) { if (sulfurStack.getItem() instanceof AlchemicalSulfurItem sulfur) { @@ -159,31 +130,24 @@ public static AlchemicalSulfurType getType(ItemStack sulfurStack) { */ public static ItemStack getSourceStack(ItemStack sulfurStack) { - if (sulfurStack.getItem() instanceof AlchemicalSulfurItem sulfur) { - var sourceStack = sulfur.getSourceStack(); - if (!sourceStack.isEmpty()) - return sourceStack; - } + if (sulfurStack.has(DataComponentRegistry.SULFUR_SOURCE_ITEM)) + return sulfurSourceItemCache.computeIfAbsent(sulfurStack.get(DataComponentRegistry.SULFUR_SOURCE_ITEM), ItemStack::new); - var itemSourceId = getSourceItemId(sulfurStack); //we call this first, because it might find the source for us - //but then we do our normal checks - if (sulfurStack.hasTag() && sulfurStack.getTag().contains(TheurgyConstants.Nbt.SULFUR_SOURCE_ID)) { - ItemStack sourceStack; + if (sulfurStack.has(DataComponentRegistry.SULFUR_SOURCE_TAG)) + return sulfurSourceTagCache.computeIfAbsent(sulfurStack.get(DataComponentRegistry.SULFUR_SOURCE_TAG), TagUtil::getItemStackForTag); - if (itemSourceId.startsWith("#")) { - var tagId = new ResourceLocation(itemSourceId.substring(1)); - var tag = TagKey.create(Registries.ITEM, tagId); - sourceStack = TagUtil.getItemStackForTag(tag); - } else { - var itemId = new ResourceLocation(itemSourceId); - sourceStack = new ItemStack(BuiltInRegistries.ITEM.get(itemId)); - } + return ItemStack.EMPTY; + } + + public static ItemStack getSourceStack(Item sulfur) { + + if (sulfur.components().has(DataComponentRegistry.SULFUR_SOURCE_ITEM.get())) + return sulfurSourceItemCache.computeIfAbsent(sulfur.components().get(DataComponentRegistry.SULFUR_SOURCE_ITEM.get()), ItemStack::new); - if (sulfurStack.getTag().contains(TheurgyConstants.Nbt.SULFUR_SOURCE_NBT)) - sourceStack.setTag(sulfurStack.getTag().getCompound(TheurgyConstants.Nbt.SULFUR_SOURCE_NBT)); - return sourceStack; - } + + if (sulfur.components().has(DataComponentRegistry.SULFUR_SOURCE_TAG.get())) + return sulfurSourceTagCache.computeIfAbsent(sulfur.components().get(DataComponentRegistry.SULFUR_SOURCE_TAG.get()), TagUtil::getItemStackForTag); return ItemStack.EMPTY; } @@ -237,10 +201,6 @@ public AlchemicalSulfurType type() { return this.type; } - public ItemStack getSourceStack() { - return this.sourceStackSupplier.get(); - } - public AlchemicalSulfurItem noAuto() { this.useAutomaticIconRendering = false; this.useAutomaticNameRendering = false; @@ -305,10 +265,8 @@ public MutableComponent getSourceName(ItemStack pStack) { var source = getSourceStack(pStack); if (!source.isEmpty()) { - var sourceId = getSourceItemId(pStack); - if (sourceId.startsWith("#") && this.overrideTagSourceName) { - var tagId = new ResourceLocation(sourceId.substring(1)); - return formatSourceName(Component.translatable(Util.makeDescriptionId("tag", tagId)), this.tier); + if (pStack.has(DataComponentRegistry.SULFUR_SOURCE_TAG) && this.overrideTagSourceName) { + return formatSourceName(Component.translatable(Util.makeDescriptionId("tag", pStack.get(DataComponentRegistry.SULFUR_SOURCE_TAG).location())), this.tier); } if (source.getHoverName() instanceof MutableComponent hoverName) diff --git a/src/main/java/com/klikli_dev/theurgy/content/particle/coloredbubble/ColoredBubbleParticleOptions.java b/src/main/java/com/klikli_dev/theurgy/content/particle/coloredbubble/ColoredBubbleParticleOptions.java index aeb0a4070..07d1466b5 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/particle/coloredbubble/ColoredBubbleParticleOptions.java +++ b/src/main/java/com/klikli_dev/theurgy/content/particle/coloredbubble/ColoredBubbleParticleOptions.java @@ -6,37 +6,36 @@ import com.klikli_dev.theurgy.content.particle.ParticleColor; import com.klikli_dev.theurgy.registry.ParticleRegistry; -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleType; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; public class ColoredBubbleParticleOptions implements ParticleOptions { - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( Codec.FLOAT.fieldOf("r").forGetter(d -> d.color.getRed()), Codec.FLOAT.fieldOf("g").forGetter(d -> d.color.getGreen()), Codec.FLOAT.fieldOf("b").forGetter(d -> d.color.getBlue()) ) .apply(instance, ColoredBubbleParticleOptions::new)); - @SuppressWarnings("deprecation") - public static final Deserializer DESERIALIZER = new Deserializer<>() { - @Override - public ColoredBubbleParticleOptions fromCommand(ParticleType type, StringReader reader) throws CommandSyntaxException { - reader.expect(' '); - return new ColoredBubbleParticleOptions(type, ParticleColor.fromString(reader.readString())); - } - @Override - public ColoredBubbleParticleOptions fromNetwork(ParticleType type, FriendlyByteBuf buffer) { - return new ColoredBubbleParticleOptions(type, ParticleColor.deserialize(buffer.readNbt())); - } - }; + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.FLOAT, + r -> r.color.getRed(), + ByteBufCodecs.FLOAT, + r -> r.color.getGreen(), + ByteBufCodecs.FLOAT, + r -> r.color.getBlue(), + ColoredBubbleParticleOptions::new + ); + + private final ParticleType type; public ParticleColor color; @@ -49,19 +48,8 @@ public ColoredBubbleParticleOptions(ParticleType p this.color = color; } - @Override public ParticleType getType() { return this.type; } - - @Override - public void writeToNetwork(FriendlyByteBuf packetBuffer) { - packetBuffer.writeNbt(this.color.serialize()); - } - - @Override - public String writeToString() { - return BuiltInRegistries.PARTICLE_TYPE.getKey(this.type) + " " + this.color.serialize(); - } } \ No newline at end of file diff --git a/src/main/java/com/klikli_dev/theurgy/content/particle/coloredbubble/ColoredBubbleParticleType.java b/src/main/java/com/klikli_dev/theurgy/content/particle/coloredbubble/ColoredBubbleParticleType.java index dd9b6800b..88e99f9d3 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/particle/coloredbubble/ColoredBubbleParticleType.java +++ b/src/main/java/com/klikli_dev/theurgy/content/particle/coloredbubble/ColoredBubbleParticleType.java @@ -5,15 +5,23 @@ package com.klikli_dev.theurgy.content.particle.coloredbubble; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.minecraft.core.particles.ParticleType; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; public class ColoredBubbleParticleType extends ParticleType { public ColoredBubbleParticleType() { - super(false, ColoredBubbleParticleOptions.DESERIALIZER); + super(false); } @Override - public Codec codec() { + public MapCodec codec() { return ColoredBubbleParticleOptions.CODEC; } + + @Override + public StreamCodec streamCodec() { + return null; + } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/particle/glow/GlowParticleOptions.java b/src/main/java/com/klikli_dev/theurgy/content/particle/glow/GlowParticleOptions.java index 0b165f2d5..6ee4835e2 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/particle/glow/GlowParticleOptions.java +++ b/src/main/java/com/klikli_dev/theurgy/content/particle/glow/GlowParticleOptions.java @@ -6,14 +6,15 @@ import com.klikli_dev.theurgy.content.particle.ParticleColor; import com.klikli_dev.theurgy.registry.ParticleRegistry; -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.klikli_dev.theurgy.util.TheurgyExtraStreamCodecs; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleType; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; /** @@ -22,7 +23,7 @@ public class GlowParticleOptions implements ParticleOptions { - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( Codec.FLOAT.fieldOf("r").forGetter(d -> d.color.getRed()), Codec.FLOAT.fieldOf("g").forGetter(d -> d.color.getGreen()), Codec.FLOAT.fieldOf("b").forGetter(d -> d.color.getBlue()), @@ -33,19 +34,24 @@ public class GlowParticleOptions implements ParticleOptions { ) .apply(instance, GlowParticleOptions::new)); - @SuppressWarnings("deprecation") - public static final Deserializer DESERIALIZER = new Deserializer<>() { - @Override - public GlowParticleOptions fromCommand(ParticleType type, StringReader reader) throws CommandSyntaxException { - reader.expect(' '); - return new GlowParticleOptions(type, ParticleColor.fromString(reader.readString()), reader.readBoolean()); - } + public static final StreamCodec STREAM_CODEC = TheurgyExtraStreamCodecs.composite( + ByteBufCodecs.FLOAT, + r -> r.color.getRed(), + ByteBufCodecs.FLOAT, + r -> r.color.getGreen(), + ByteBufCodecs.FLOAT, + r -> r.color.getBlue(), + ByteBufCodecs.BOOL, + r -> r.disableDepthTest, + ByteBufCodecs.FLOAT, + r -> r.size, + ByteBufCodecs.FLOAT, + r -> r.alpha, + ByteBufCodecs.INT, + r -> r.age, + GlowParticleOptions::new + ); - @Override - public GlowParticleOptions fromNetwork(ParticleType type, FriendlyByteBuf buffer) { - return new GlowParticleOptions(type, ParticleColor.deserialize(buffer.readNbt()), buffer.readBoolean()); - } - }; private final ParticleType type; public ParticleColor color; public boolean disableDepthTest; @@ -79,14 +85,4 @@ public GlowParticleOptions(ParticleType particleTypeData, P public ParticleType getType() { return this.type; } - - @Override - public void writeToNetwork(FriendlyByteBuf packetBuffer) { - packetBuffer.writeNbt(this.color.serialize()); - } - - @Override - public String writeToString() { - return BuiltInRegistries.PARTICLE_TYPE.getKey(this.getType()) + " " + this.color.serialize(); - } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/particle/glow/GlowParticleType.java b/src/main/java/com/klikli_dev/theurgy/content/particle/glow/GlowParticleType.java index f09088628..293c8b388 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/particle/glow/GlowParticleType.java +++ b/src/main/java/com/klikli_dev/theurgy/content/particle/glow/GlowParticleType.java @@ -5,15 +5,23 @@ package com.klikli_dev.theurgy.content.particle.glow; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.minecraft.core.particles.ParticleType; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; public class GlowParticleType extends ParticleType { public GlowParticleType() { - super(false, GlowParticleOptions.DESERIALIZER); + super(false); } @Override - public Codec codec() { + public MapCodec codec() { return GlowParticleOptions.CODEC; } + + @Override + public StreamCodec streamCodec() { + return GlowParticleOptions.STREAM_CODEC; + } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/AccumulationRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/AccumulationRecipe.java index 7c179c1b2..13eaf4dfb 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/AccumulationRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/AccumulationRecipe.java @@ -4,17 +4,19 @@ package com.klikli_dev.theurgy.content.recipe; -import com.klikli_dev.theurgy.content.recipe.ingredient.FluidIngredient; + import com.klikli_dev.theurgy.content.recipe.wrapper.RecipeWrapperWithFluid; import com.klikli_dev.theurgy.registry.ItemRegistry; import com.klikli_dev.theurgy.registry.RecipeSerializerRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; @@ -22,6 +24,7 @@ import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; import net.neoforged.neoforge.fluids.FluidStack; +import net.neoforged.neoforge.fluids.crafting.FluidIngredient; import org.jetbrains.annotations.Nullable; import java.util.Optional; @@ -29,7 +32,7 @@ public class AccumulationRecipe implements Recipe { public static final int DEFAULT_TIME = 100; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( FluidIngredient.CODEC.fieldOf("evaporant").forGetter((r) -> r.evaporant), Codec.INT.fieldOf("evaporantAmount").forGetter((r) -> r.evaporantAmount), Ingredient.CODEC.optionalFieldOf("solute").forGetter(r -> Optional.ofNullable(r.solute)), @@ -37,6 +40,21 @@ public class AccumulationRecipe implements Recipe { Codec.INT.optionalFieldOf("time", DEFAULT_TIME).forGetter(r -> r.time) ).apply(instance, (evaporant, evaporantAmount, solute, result, accumulation_time) -> new AccumulationRecipe(evaporant, evaporantAmount, solute.orElse(null), result, accumulation_time)) ); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + FluidIngredient.STREAM_CODEC, + r -> r.evaporant, + ByteBufCodecs.INT, + r -> r.evaporantAmount, + ByteBufCodecs.optional(Ingredient.CONTENTS_STREAM_CODEC), + r -> Optional.ofNullable(r.solute), + FluidStack.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.time, + (evaporant, evaporantAmount, solute, result, accumulation_time) -> new AccumulationRecipe(evaporant, evaporantAmount, solute.orElse(null), result, accumulation_time) + ); + /** * The fluid to evaporate to obtain the result. */ @@ -80,11 +98,11 @@ public boolean matches(RecipeWrapperWithFluid pContainer, Level pLevel) { } @Override - public ItemStack assemble(RecipeWrapperWithFluid pInv, RegistryAccess registryAccess) { + public ItemStack assemble(RecipeWrapperWithFluid pInv, HolderLookup.Provider pRegistries) { return ItemStack.EMPTY; } - public FluidStack assembleFluid(RecipeWrapperWithFluid pInv, RegistryAccess registryAccess) { + public FluidStack assembleFluid(RecipeWrapperWithFluid pInv, HolderLookup.Provider pRegistries) { return this.result.copy(); } @@ -94,7 +112,7 @@ public boolean canCraftInDimensions(int pWidth, int pHeight) { } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { + public ItemStack getResultItem(HolderLookup.Provider pRegistries) { return ItemStack.EMPTY; } @@ -144,20 +162,13 @@ public FluidStack getResult() { public static class Serializer implements RecipeSerializer { @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } @Override - public AccumulationRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); - } - - @Override - public void toNetwork(FriendlyByteBuf pBuffer, AccumulationRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); + public StreamCodec streamCodec() { + return STREAM_CODEC; } } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/CalcinationRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/CalcinationRecipe.java index 37b5e1688..c67114eee 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/CalcinationRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/CalcinationRecipe.java @@ -8,11 +8,13 @@ import com.klikli_dev.theurgy.registry.RecipeSerializerRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; @@ -26,14 +28,26 @@ public class CalcinationRecipe implements Recipe { public static final int DEFAULT_TIME = 100; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( Ingredient.CODEC.fieldOf("ingredient").forGetter((r) -> r.ingredient), Codec.INT.fieldOf("ingredientCount").forGetter((r) -> r.ingredientCount), - ItemStack.ITEM_WITH_COUNT_CODEC.fieldOf("result").forGetter(r -> r.result), + ItemStack.STRICT_CODEC.fieldOf("result").forGetter(r -> r.result), Codec.INT.optionalFieldOf("time", DEFAULT_TIME).forGetter(r -> r.time) ).apply(instance, CalcinationRecipe::new) ); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + Ingredient.CONTENTS_STREAM_CODEC, + r -> r.ingredient, + ByteBufCodecs.INT, + r -> r.ingredientCount, + ItemStack.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.time, + CalcinationRecipe::new + ); + protected final Ingredient ingredient; protected final int ingredientCount; protected final ItemStack result; @@ -62,7 +76,7 @@ public boolean matches(RecipeWrapper pContainer, Level pLevel) { } @Override - public ItemStack assemble(RecipeWrapper pInv, RegistryAccess registryAccess) { + public ItemStack assemble(RecipeWrapper pInv, HolderLookup.Provider pRegistries) { return this.result.copy(); } @@ -72,7 +86,7 @@ public boolean canCraftInDimensions(int pWidth, int pHeight) { } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { + public ItemStack getResultItem(HolderLookup.Provider pRegistries) { return this.result; } @@ -99,20 +113,13 @@ public int getTime() { public static class Serializer implements RecipeSerializer { @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } @Override - public CalcinationRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); - } - - @Override - public void toNetwork(FriendlyByteBuf pBuffer, CalcinationRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); + public StreamCodec streamCodec() { + return STREAM_CODEC; } } } \ No newline at end of file diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/CatalysationRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/CatalysationRecipe.java index 08daf5b80..79e90853a 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/CatalysationRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/CatalysationRecipe.java @@ -8,11 +8,16 @@ import com.klikli_dev.theurgy.registry.RecipeSerializerRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; import net.minecraft.core.RegistryAccess; import net.minecraft.nbt.NbtOps; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; @@ -25,12 +30,22 @@ public class CatalysationRecipe implements Recipe { public static final int DEFAULT_MERCURY_FLUX_PER_TICK = 20; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( Ingredient.CODEC.fieldOf("ingredient").forGetter(r -> r.ingredient), Codec.INT.fieldOf("totalMercuryFlux").forGetter(r -> r.totalMercuryFlux), Codec.INT.fieldOf("mercuryFluxPerTick").forGetter(r -> r.mercuryFluxPerTick) ).apply(instance, CatalysationRecipe::new) ); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + Ingredient.CONTENTS_STREAM_CODEC, + r -> r.ingredient, + ByteBufCodecs.INT, + r -> r.totalMercuryFlux, + ByteBufCodecs.INT, + r -> r.mercuryFluxPerTick, + CatalysationRecipe::new + ); protected final Ingredient ingredient; /** @@ -74,7 +89,7 @@ public boolean matches(RecipeWrapper pContainer, Level pLevel) { } @Override - public ItemStack assemble(RecipeWrapper pContainer, RegistryAccess pRegistryAccess) { + public ItemStack assemble(RecipeWrapper pCraftingContainer, HolderLookup.Provider pRegistries) { return ItemStack.EMPTY; } @@ -84,7 +99,7 @@ public boolean canCraftInDimensions(int pWidth, int pHeight) { } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { + public ItemStack getResultItem(HolderLookup.Provider pRegistries) { return ItemStack.EMPTY; } @@ -107,20 +122,13 @@ public RecipeSerializer getSerializer() { public static class Serializer implements RecipeSerializer { @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } @Override - public CatalysationRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); - } - - @Override - public void toNetwork(FriendlyByteBuf pBuffer, CatalysationRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); + public StreamCodec streamCodec() { + return STREAM_CODEC; } } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/DigestionRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/DigestionRecipe.java index 54334abbd..a0cdaa990 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/DigestionRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/DigestionRecipe.java @@ -4,40 +4,61 @@ package com.klikli_dev.theurgy.content.recipe; -import com.klikli_dev.theurgy.content.recipe.ingredient.FluidIngredient; + import com.klikli_dev.theurgy.content.recipe.wrapper.RecipeWrapperWithFluid; import com.klikli_dev.theurgy.datagen.recipe.IngredientWithCount; import com.klikli_dev.theurgy.registry.ItemRegistry; import com.klikli_dev.theurgy.registry.RecipeSerializerRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; import net.minecraft.core.RegistryAccess; import net.minecraft.nbt.NbtOps; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; +import net.neoforged.neoforge.fluids.crafting.FluidIngredient; import java.util.List; public class DigestionRecipe implements Recipe { public static final int DEFAULT_TIME = 200; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( FluidIngredient.CODEC.fieldOf("fluid").forGetter((r) -> r.fluid), Codec.INT.fieldOf("fluidAmount").forGetter((r) -> r.fluidAmount), IngredientWithCount.CODEC.listOf().fieldOf("ingredients").forGetter(r -> r.ingredientsWithCount), - ItemStack.ITEM_WITH_COUNT_CODEC.fieldOf("result").forGetter(r -> r.result), + ItemStack.STRICT_CODEC.fieldOf("result").forGetter(r -> r.result), Codec.INT.optionalFieldOf("time", DEFAULT_TIME).forGetter(r -> r.time) ).apply(instance, DigestionRecipe::new) ); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + FluidIngredient.STREAM_CODEC, + r -> r.fluid, + ByteBufCodecs.INT, + r -> r.fluidAmount, + IngredientWithCount.STREAM_CODEC.apply(ByteBufCodecs.list()), + r -> r.ingredientsWithCount, + ItemStack.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.time, + DigestionRecipe::new + ); + protected final FluidIngredient fluid; protected final int fluidAmount; @@ -101,7 +122,7 @@ public boolean matches(RecipeWrapperWithFluid pContainer, Level pLevel) { } @Override - public ItemStack assemble(RecipeWrapperWithFluid pInv, RegistryAccess registryAccess) { + public ItemStack assemble(RecipeWrapperWithFluid pInv, HolderLookup.Provider pRegistries) { return this.result.copy(); } @@ -111,7 +132,7 @@ public boolean canCraftInDimensions(int pWidth, int pHeight) { } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { + public ItemStack getResultItem(HolderLookup.Provider pRegistries) { return this.result; } @@ -151,22 +172,14 @@ public int getTime() { } public static class Serializer implements RecipeSerializer { - @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } @Override - public DigestionRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); - } - - @Override - public void toNetwork(FriendlyByteBuf pBuffer, DigestionRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); + public StreamCodec streamCodec() { + return STREAM_CODEC; } } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/DistillationRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/DistillationRecipe.java index 82614e376..af9c4b755 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/DistillationRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/DistillationRecipe.java @@ -8,11 +8,13 @@ import com.klikli_dev.theurgy.registry.RecipeSerializerRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; @@ -26,15 +28,27 @@ public class DistillationRecipe implements Recipe { public static final int DEFAULT_TIME = 100; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( Ingredient.CODEC.fieldOf("ingredient").forGetter((r) -> r.ingredient), Codec.INT.fieldOf("ingredientCount").forGetter((r) -> r.ingredientCount), - ItemStack.ITEM_WITH_COUNT_CODEC.fieldOf("result").forGetter(r -> r.result), + ItemStack.STRICT_CODEC.fieldOf("result").forGetter(r -> r.result), Codec.INT.optionalFieldOf("time", DEFAULT_TIME).forGetter(r -> r.time) - ).apply(instance, DistillationRecipe::new - ) + ).apply(instance, DistillationRecipe::new) ); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + Ingredient.CONTENTS_STREAM_CODEC, + r -> r.ingredient, + ByteBufCodecs.INT, + r -> r.ingredientCount, + ItemStack.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.time, + DistillationRecipe::new + ); + + protected final Ingredient ingredient; protected final int ingredientCount; protected final ItemStack result; @@ -59,7 +73,7 @@ public boolean matches(RecipeWrapper pContainer, Level pLevel) { } @Override - public ItemStack assemble(RecipeWrapper pInv, RegistryAccess registryAccess) { + public ItemStack assemble(RecipeWrapper pInv, HolderLookup.Provider pRegistries) { return this.result.copy(); } @@ -69,7 +83,7 @@ public boolean canCraftInDimensions(int pWidth, int pHeight) { } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { + public ItemStack getResultItem(HolderLookup.Provider pRegistries) { return this.result; } @@ -105,20 +119,13 @@ public int getTime() { public static class Serializer implements RecipeSerializer { @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } @Override - public DistillationRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); - } - - @Override - public void toNetwork(FriendlyByteBuf pBuffer, DistillationRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); + public StreamCodec streamCodec() { + return STREAM_CODEC; } } } \ No newline at end of file diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/DivinationRodRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/DivinationRodRecipe.java index d0b717b47..6217ccabd 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/DivinationRodRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/DivinationRodRecipe.java @@ -5,19 +5,22 @@ package com.klikli_dev.theurgy.content.recipe; import com.klikli_dev.theurgy.Theurgy; -import com.klikli_dev.theurgy.TheurgyConstants; import com.klikli_dev.theurgy.config.ServerConfig; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; import com.klikli_dev.theurgy.registry.RecipeSerializerRegistry; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistryAccess; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; import net.minecraft.tags.TagKey; -import net.minecraft.util.ExtraCodecs; import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.CraftingBookCategory; @@ -38,38 +41,36 @@ public RecipeSerializer getSerializer() { } @Override - public ItemStack assemble(CraftingContainer pInv, RegistryAccess registryAccess) { - var result = this.getResultItem(registryAccess).copy(); - - var resultTag = result.getOrCreateTag(); - - //if the recipe already has a linked block, we don't need to do the translation stuff. - //if that linked block is only a preview (coming from getResultItem(), used mainly for correct display in JEI), - // we have to ignore it and translate after all - if (!resultTag.contains(TheurgyConstants.Nbt.Divination.LINKED_BLOCK_ID) || - resultTag.getBoolean(TheurgyConstants.Nbt.Divination.LINKED_BLOCK_ID_PREVIEW_MODE) - ) { - - //check pInv for ingredients with sulfur source id, if so, find the appropriate block id based on it and set it on the result item - String sourceId = null; - for (int i = 0; i < pInv.getContainerSize(); i++) { - var stack = pInv.getItem(i); - if (stack.hasTag()) { - var tag = stack.getTag(); - if (tag.contains(TheurgyConstants.Nbt.SULFUR_SOURCE_ID)) { - sourceId = tag.getString(TheurgyConstants.Nbt.SULFUR_SOURCE_ID); - break; - } + public ItemStack assemble(CraftingContainer pInv, HolderLookup.Provider pRegistries) { + var result = this.getResultItem(pRegistries).copy(); + + if (result.has(DataComponentRegistry.DIVINATION_LINKED_BLOCK) || result.has(DataComponentRegistry.DIVINATION_LINKED_TAG)) + return result; + + //check pInv for ingredients with sulfur source id, if so, find the appropriate block id based on it and set it on the result item + for (int i = 0; i < pInv.getContainerSize(); i++) { + var stack = pInv.getItem(i); + if (stack.has(DataComponentRegistry.SULFUR_SOURCE_ITEM)) { + var sourceItem = stack.get(DataComponentRegistry.SULFUR_SOURCE_ITEM); + var sourceItemKey = sourceItem.unwrapKey(); + if (sourceItemKey.isEmpty()) + continue; + + var sourceBlock = this.translateToBlock(sourceItem.unwrapKey().get().location().toString()); + + if (sourceBlock != null) { + result.set(DataComponentRegistry.DIVINATION_LINKED_BLOCK, BuiltInRegistries.BLOCK.getHolder(new ResourceLocation(sourceBlock)).get()); } + break; } + if (stack.has(DataComponentRegistry.SULFUR_SOURCE_TAG)) { + var sourceItemTag = stack.get(DataComponentRegistry.SULFUR_SOURCE_TAG); + var sourceBlockTag = this.translateTagToBlock(sourceItemTag.location().toString()); - if (sourceId != null) { - var translated = sourceId.startsWith("#") ? this.translateTagToBlock(sourceId) : this.translateToBlock(sourceId); - if (translated != null) { - resultTag.putString(TheurgyConstants.Nbt.Divination.LINKED_BLOCK_ID, translated); - } else { - resultTag.putString(TheurgyConstants.Nbt.Divination.LINKED_BLOCK_ID, sourceId); + if (sourceBlockTag != null) { + result.set(DataComponentRegistry.DIVINATION_LINKED_TAG, BlockTags.create(new ResourceLocation(sourceBlockTag))); } + break; } } @@ -86,17 +87,17 @@ public String translateTagToBlock(String sourceTag) { //even though likely not all of these will be used to create sulfur its good to handle them. //examples: - //target is forge:ores/iron - //forge:ingots/iron - //forge:nuggets/iron - //forge:raw_materials/iron - //forge:dusts/iron - //forge:storage_blocks/iron - //forge:gems/iron + //target is c:ores/iron + //c:ingots/iron + //c:nuggets/iron + //c:raw_materials/iron + //c:dusts/iron + //c:storage_blocks/iron + //c:gems/iron //special handling for coal items as they are none of the above if (sourceTag.equals("#minecraft:coals")) - return "#forge:ores/coal"; + return "#c:ores/coal"; var parts = sourceTag.split(":"); var namespace = parts[0]; @@ -182,31 +183,36 @@ public String translateToBlock(String sourceId) { public static class Serializer implements RecipeSerializer { //copied from ShapedRecipe.Serializer because xMapping it somehow causes a json null thingy error - public static final Codec CODEC = RecordCodecBuilder.create( - p_311728_ -> p_311728_.group( - ExtraCodecs.strictOptionalField(Codec.STRING, "group", "").forGetter(p_311729_ -> p_311729_.getGroup()), + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + p_340778_ -> p_340778_.group( + Codec.STRING.optionalFieldOf("group", "").forGetter(p_311729_ -> p_311729_.getGroup()), ShapedRecipePattern.MAP_CODEC.forGetter(p_311733_ -> p_311733_.pattern), - ItemStack.ITEM_WITH_COUNT_CODEC.fieldOf("result").forGetter(p_311730_ -> p_311730_.getResultItem(RegistryAccess.EMPTY)), - ExtraCodecs.strictOptionalField(Codec.BOOL, "show_notification", true).forGetter(p_311731_ -> p_311731_.showNotification()) + ItemStack.STRICT_CODEC.fieldOf("result").forGetter(p_311730_ -> p_311730_.getResultItem(RegistryAccess.EMPTY)), + Codec.BOOL.optionalFieldOf("show_notification", true).forGetter(ShapedRecipe::showNotification) ) - .apply(p_311728_, DivinationRodRecipe::new) + .apply(p_340778_, DivinationRodRecipe::new) + ); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.STRING_UTF8, + ShapedRecipe::getGroup, + ShapedRecipePattern.STREAM_CODEC, + r -> r.pattern, + ItemStack.STREAM_CODEC, + r -> r.getResultItem(RegistryAccess.EMPTY), + ByteBufCodecs.BOOL, + ShapedRecipe::showNotification, + DivinationRodRecipe::new ); - @Override - public Codec codec() { - return CODEC; - } @Override - public DivinationRodRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); + public MapCodec codec() { + return CODEC; } @Override - public void toNetwork(FriendlyByteBuf pBuffer, DivinationRodRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); + public StreamCodec streamCodec() { + return STREAM_CODEC; } } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/FermentationRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/FermentationRecipe.java index 08a722d6e..89ac79ad1 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/FermentationRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/FermentationRecipe.java @@ -4,17 +4,19 @@ package com.klikli_dev.theurgy.content.recipe; -import com.klikli_dev.theurgy.content.recipe.ingredient.FluidIngredient; + import com.klikli_dev.theurgy.content.recipe.wrapper.RecipeWrapperWithFluid; import com.klikli_dev.theurgy.registry.ItemRegistry; import com.klikli_dev.theurgy.registry.RecipeSerializerRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.entity.player.StackedContents; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; @@ -22,6 +24,7 @@ import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; +import net.neoforged.neoforge.fluids.crafting.FluidIngredient; import java.util.ArrayList; import java.util.List; @@ -29,14 +32,29 @@ public class FermentationRecipe implements Recipe { public static final int DEFAULT_TIME = 200; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( FluidIngredient.CODEC.fieldOf("fluid").forGetter((r) -> r.fluid), Codec.INT.fieldOf("fluidAmount").forGetter((r) -> r.fluidAmount), Ingredient.CODEC.listOf().fieldOf("ingredients").forGetter(r -> r.ingredients), - ItemStack.ITEM_WITH_COUNT_CODEC.fieldOf("result").forGetter(r -> r.result), + ItemStack.STRICT_CODEC.fieldOf("result").forGetter(r -> r.result), Codec.INT.optionalFieldOf("time", DEFAULT_TIME).forGetter(r -> r.time) ).apply(instance, FermentationRecipe::new) ); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + FluidIngredient.STREAM_CODEC, + r -> r.fluid, + ByteBufCodecs.INT, + r -> r.fluidAmount, + Ingredient.CONTENTS_STREAM_CODEC.apply(ByteBufCodecs.list()), + r -> r.ingredients, + ItemStack.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.time, + FermentationRecipe::new + ); + + protected final FluidIngredient fluid; protected final int fluidAmount; @@ -90,7 +108,7 @@ public boolean matches(RecipeWrapperWithFluid pContainer, Level pLevel) { } @Override - public ItemStack assemble(RecipeWrapperWithFluid pInv, RegistryAccess registryAccess) { + public ItemStack assemble(RecipeWrapperWithFluid pInv, HolderLookup.Provider pRegistries) { return this.result.copy(); } @@ -100,7 +118,7 @@ public boolean canCraftInDimensions(int pWidth, int pHeight) { } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { + public ItemStack getResultItem(HolderLookup.Provider pRegistries) { return this.result; } @@ -138,20 +156,14 @@ public int getTime() { public static class Serializer implements RecipeSerializer { @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } @Override - public FermentationRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); + public StreamCodec streamCodec() { + return STREAM_CODEC; } - @Override - public void toNetwork(FriendlyByteBuf pBuffer, FermentationRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); - } } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/IncubationRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/IncubationRecipe.java index bb2e3b442..9e983b5b8 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/IncubationRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/IncubationRecipe.java @@ -10,11 +10,13 @@ import com.klikli_dev.theurgy.registry.RecipeSerializerRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; @@ -27,7 +29,7 @@ public class IncubationRecipe implements Recipe { public static final int DEFAULT_TIME = 100; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( Ingredient.CODEC.fieldOf("mercury").forGetter((r) -> r.mercury), Ingredient.CODEC.fieldOf("salt").forGetter((r) -> r.salt), Ingredient.CODEC.fieldOf("sulfur").forGetter((r) -> r.sulfur), @@ -35,6 +37,20 @@ public class IncubationRecipe implements Recipe { Codec.INT.optionalFieldOf("time", DEFAULT_TIME).forGetter(r -> r.time) ).apply(instance, IncubationRecipe::new)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + Ingredient.CONTENTS_STREAM_CODEC, + r -> r.mercury, + Ingredient.CONTENTS_STREAM_CODEC, + r -> r.salt, + Ingredient.CONTENTS_STREAM_CODEC, + r -> r.sulfur, + RecipeResult.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.time, + IncubationRecipe::new + ); + protected final Ingredient mercury; protected final Ingredient salt; protected final Ingredient sulfur; @@ -63,7 +79,7 @@ public boolean matches(IncubatorRecipeWrapper pContainer, Level pLevel) { } @Override - public ItemStack assemble(IncubatorRecipeWrapper pInv, RegistryAccess registryAccess) { + public ItemStack assemble(IncubatorRecipeWrapper pInv, HolderLookup.Provider pRegistries) { return this.result.getStack().copy(); } @@ -73,7 +89,7 @@ public boolean canCraftInDimensions(int pWidth, int pHeight) { } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { + public ItemStack getResultItem(HolderLookup.Provider pRegistries) { return this.result.getStack(); } @@ -119,20 +135,13 @@ public Ingredient getSulfur() { public static class Serializer implements RecipeSerializer { @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } @Override - public IncubationRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); - } - - @Override - public void toNetwork(FriendlyByteBuf pBuffer, IncubationRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); + public StreamCodec streamCodec() { + return STREAM_CODEC; } } } \ No newline at end of file diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/LiquefactionRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/LiquefactionRecipe.java index 35fda3d52..aa3b437ce 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/LiquefactionRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/LiquefactionRecipe.java @@ -4,38 +4,55 @@ package com.klikli_dev.theurgy.content.recipe; -import com.klikli_dev.theurgy.content.recipe.ingredient.FluidIngredient; + import com.klikli_dev.theurgy.content.recipe.wrapper.RecipeWrapperWithFluid; import com.klikli_dev.theurgy.registry.BlockRegistry; import com.klikli_dev.theurgy.registry.RecipeSerializerRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; +import net.neoforged.neoforge.fluids.crafting.FluidIngredient; public class LiquefactionRecipe implements Recipe { public static final int DEFAULT_TIME = 100; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( Ingredient.CODEC.fieldOf("ingredient").forGetter((r) -> r.ingredient), FluidIngredient.CODEC.fieldOf("solvent").forGetter((r) -> r.solvent), - Codec.INT.fieldOf("solvent_amount").forGetter((r) -> r.solventAmount), - ItemStack.ITEM_WITH_COUNT_CODEC.fieldOf("result").forGetter(r -> r.result), + Codec.INT.fieldOf("solventAmount").forGetter((r) -> r.solventAmount), + ItemStack.STRICT_CODEC.fieldOf("result").forGetter(r -> r.result), Codec.INT.optionalFieldOf("time", DEFAULT_TIME).forGetter(r -> r.time) ).apply(instance, LiquefactionRecipe::new) ); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + Ingredient.CONTENTS_STREAM_CODEC, + r -> r.ingredient, + FluidIngredient.STREAM_CODEC, + r -> r.solvent, + ByteBufCodecs.INT, + r -> r.solventAmount, + ItemStack.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.time, + LiquefactionRecipe::new + ); + protected final Ingredient ingredient; protected final FluidIngredient solvent; protected final int solventAmount; @@ -62,7 +79,7 @@ public boolean matches(RecipeWrapperWithFluid pContainer, Level pLevel) { } @Override - public ItemStack assemble(RecipeWrapperWithFluid pInv, RegistryAccess registryAccess) { + public ItemStack assemble(RecipeWrapperWithFluid pCraftingContainer, HolderLookup.Provider pRegistries) { return this.result.copy(); } @@ -72,7 +89,7 @@ public boolean canCraftInDimensions(int pWidth, int pHeight) { } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { + public ItemStack getResultItem(HolderLookup.Provider pRegistries) { return this.result; } @@ -112,20 +129,13 @@ public Ingredient getIngredient() { public static class Serializer implements RecipeSerializer { @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } @Override - public LiquefactionRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); - } - - @Override - public void toNetwork(FriendlyByteBuf pBuffer, LiquefactionRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); + public StreamCodec streamCodec() { + return STREAM_CODEC; } } } \ No newline at end of file diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/ReformationRecipe.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/ReformationRecipe.java index af5ac18ab..d9a2cc96d 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/ReformationRecipe.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/ReformationRecipe.java @@ -10,17 +10,20 @@ import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -29,14 +32,30 @@ public class ReformationRecipe implements Recipe public static final int DEFAULT_TIME = 100; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group( Ingredient.CODEC.listOf().fieldOf("sources").forGetter(r -> r.sources), Ingredient.CODEC.fieldOf("target").forGetter(r -> r.target), - ItemStack.ITEM_WITH_COUNT_CODEC.fieldOf("result").forGetter(r -> r.result), - Codec.INT.fieldOf("mercury_flux").forGetter(r -> r.mercuryFlux), + ItemStack.STRICT_CODEC.fieldOf("result").forGetter(r -> r.result), + Codec.INT.fieldOf("mercuryFlux").forGetter(r -> r.mercuryFlux), Codec.INT.optionalFieldOf("time", DEFAULT_TIME).forGetter(r -> r.time) ).apply(instance, ReformationRecipe::new) ); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + Ingredient.CONTENTS_STREAM_CODEC.apply(ByteBufCodecs.list()), + r -> r.sources, + Ingredient.CONTENTS_STREAM_CODEC, + r -> r.target, + ItemStack.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.mercuryFlux, + ByteBufCodecs.INT, + r -> r.time, + ReformationRecipe::new + ); + protected final List sources; protected final Ingredient target; protected final ItemStack result; @@ -110,22 +129,26 @@ public boolean matches(ReformationArrayRecipeWrapper pContainer, Level pLevel) { } @Override - public ItemStack assemble(ReformationArrayRecipeWrapper pContainer, RegistryAccess pRegistryAccess) { + public ItemStack assemble(ReformationArrayRecipeWrapper pCraftingContainer, HolderLookup.Provider pRegistries) { var result = this.result.copy(); //TODO: the tag copy should be an option in the recipe json - var targetItem = pContainer.getTargetPedestalInv().getStackInSlot(0); - if (targetItem.hasTag()) - result.setTag(targetItem.getTag().copy()); + var targetItem = pCraftingContainer.getTargetPedestalInv().getStackInSlot(0); + + if (!targetItem.getComponents().isEmpty()) + result.applyComponents(targetItem.getComponents()); + return result; } + @Override public boolean canCraftInDimensions(int pWidth, int pHeight) { return true; } + @Override - public ItemStack getResultItem(RegistryAccess pRegistryAccess) { + public ItemStack getResultItem(HolderLookup.Provider pRegistries) { return this.result; } @@ -151,30 +174,16 @@ public RecipeType getType() { return RecipeTypeRegistry.REFORMATION.get(); } - public record IngedientWithCount(Ingredient ingredient, int count) { - public static final Codec CODEC = Codec.pair( - Codec.INT.optionalFieldOf("count", 1).codec(), - Ingredient.CODEC - ).xmap(s -> new IngedientWithCount(s.getSecond(), s.getFirst()), s -> Pair.of(s.count, s.ingredient)); - } - public static class Serializer implements RecipeSerializer { @Override - public Codec codec() { + public @NotNull MapCodec codec() { return CODEC; } @Override - public ReformationRecipe fromNetwork(FriendlyByteBuf pBuffer) { - //noinspection deprecation - return pBuffer.readWithCodecTrusted(NbtOps.INSTANCE, CODEC); - } - - @Override - public void toNetwork(FriendlyByteBuf pBuffer, ReformationRecipe pRecipe) { - //noinspection deprecation - pBuffer.writeWithCodec(NbtOps.INSTANCE, CODEC, pRecipe); + public @NotNull StreamCodec streamCodec() { + return STREAM_CODEC; } } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/condition/FluidTagEmptyCondition.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/condition/FluidTagEmptyCondition.java index bc0ababcd..220a9dee6 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/condition/FluidTagEmptyCondition.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/condition/FluidTagEmptyCondition.java @@ -5,6 +5,7 @@ package com.klikli_dev.theurgy.content.recipe.condition; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; @@ -14,7 +15,7 @@ public record FluidTagEmptyCondition(TagKey tag) implements ICondition { - public static final Codec CODEC = RecordCodecBuilder.create( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( builder -> builder .group( ResourceLocation.CODEC.xmap(loc -> TagKey.create(Registries.FLUID, loc), TagKey::location).fieldOf("tag").forGetter(FluidTagEmptyCondition::tag)) @@ -38,7 +39,7 @@ public boolean test(ICondition.IContext context) { } @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/ingredient/FluidIngredient.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/ingredient/FluidIngredient.java deleted file mode 100644 index fdea6594d..000000000 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/ingredient/FluidIngredient.java +++ /dev/null @@ -1,238 +0,0 @@ -// SPDX-FileCopyrightText: 2023 klikli-dev -// -// SPDX-License-Identifier: MIT - -package com.klikli_dev.theurgy.content.recipe.ingredient; - -import com.google.common.collect.ImmutableList; -import com.klikli_dev.theurgy.registry.IngredientTypeRegistry; -import com.klikli_dev.theurgy.util.TheurgyExtraCodecs; -import com.mojang.datafixers.util.Either; -import com.mojang.serialization.Codec; -import com.mojang.serialization.DataResult; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import it.unimi.dsi.fastutil.ints.IntList; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.core.registries.Registries; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.tags.TagKey; -import net.minecraft.util.ExtraCodecs; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.level.material.Fluid; -import net.neoforged.neoforge.fluids.FluidStack; - -import javax.annotation.Nullable; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -public class FluidIngredient extends Ingredient { - - public static final Codec CODEC = codec(true); - public static final Codec CODEC_NONEMPTY = codec(false); - - public static final FluidIngredient EMPTY = new FluidIngredient(Stream.empty()); - private final Value[] values; - @Nullable - private FluidStack[] fluidStacks; - - protected FluidIngredient(Stream pValues) { - super(Stream.empty(), IngredientTypeRegistry.FLUID_INGREDIENT); - - this.values = pValues.toArray(Value[]::new); - } - - protected FluidIngredient(Value[] values) { - super(Stream.empty(), IngredientTypeRegistry.FLUID_INGREDIENT); - this.values = values; - } - - private static Codec codec(boolean pAllowEmpty) { - Codec codec = Codec.list(FluidIngredient.Value.CODEC) - .comapFlatMap( - from -> !pAllowEmpty && from.size() < 1 - ? DataResult.error(() -> "Item array cannot be empty, at least one item must be defined") - : DataResult.success(from.toArray(new FluidIngredient.Value[0])), - List::of - ); - return ExtraCodecs.either(codec, FluidIngredient.Value.CODEC) - .flatComapMap( - to -> to.map(FluidIngredient::new, value -> new FluidIngredient(new FluidIngredient.Value[]{value})), - from -> { - if (from.values.length == 1) { - return DataResult.success(Either.right(from.values[0])); - } else { - return from.values.length == 0 && !pAllowEmpty - ? DataResult.error(() -> "Item array cannot be empty, at least one item must be defined") - : DataResult.success(Either.left(from.values)); - } - } - ); - } - - public static FluidIngredient ofFluid() { - return EMPTY; - } - - public static FluidIngredient ofFluid(Fluid... pFluids) { - return ofFluid(Arrays.stream(pFluids).map(f -> new FluidStack(f, 1))); - } - - public static FluidIngredient ofFluid(FluidStack... pStacks) { - return ofFluid(Arrays.stream(pStacks)); - } - - public static FluidIngredient ofFluid(Stream pStacks) { - return fromFluidValues(pStacks.filter((p_43944_) -> { - return !p_43944_.isEmpty(); - }).map(FluidValue::new)); - } - - public static FluidIngredient ofFluid(TagKey pTag) { - return fromFluidValues(Stream.of(new FluidTagValue(pTag))); - } - - public static FluidIngredient fromFluidValues(Stream pStream) { - var ingredient = new FluidIngredient(pStream); - return ingredient.isEmpty() ? EMPTY : ingredient; - } - - - public static FluidIngredient fromNetwork(FriendlyByteBuf pBuffer) { - var size = pBuffer.readVarInt(); - if (size == -1) //indicates we are synchronizing with Codec, instead of with contents - return pBuffer.readWithCodecTrusted(net.minecraft.nbt.NbtOps.INSTANCE, CODEC); - return fromFluidValues(Stream.generate(() -> new FluidValue(pBuffer.readFluidStack())).limit(size)); - } - - @Override - public boolean isEmpty() { - return this.values.length == 0; - } - - @Override - public IntList getStackingIds() { - return super.getStackingIds(); - } - - @Override - public ItemStack[] getItems() { - return super.getItems(); //will be empty - } - - public FluidStack[] getFluids() { - if (this.fluidStacks == null) { - this.fluidStacks = Arrays.stream(this.values).flatMap((value) -> value.getFluids().stream()).distinct().toArray(FluidStack[]::new); - } - - return this.fluidStacks; - } - - @Override - public boolean test(@Nullable ItemStack pStack) { - return false; - } - - public boolean test(FluidStack fluidStack) { - if (fluidStack == null) { - return false; - } else if (this.isEmpty()) { - return fluidStack.isEmpty(); - } else { - for (var fluid : this.getFluids()) { - //does not test for amount (just like ingredient) - if (fluidStack.isFluidEqual(fluid)) { - return true; - } - } - return false; - } - } - - public void fluidToNetwork(FriendlyByteBuf pBuffer) { - if (this.synchronizeWithContents()) { - pBuffer.writeCollection(Arrays.asList(this.getFluids()), FriendlyByteBuf::writeFluidStack); - } else { - pBuffer.writeVarInt(-1); - pBuffer.writeWithCodec(net.minecraft.nbt.NbtOps.INSTANCE, CODEC, this); - } - } - - @Override - public boolean equals(Object pOther) { - return pOther instanceof FluidIngredient ingredient && Arrays.equals(this.values, ingredient.values); - } - - public interface Value { - Codec CODEC = ExtraCodecs.xor(FluidIngredient.FluidValue.CODEC, FluidTagValue.CODEC) - .xmap(first -> first.map(l -> l, r -> r), second -> { - if (second instanceof FluidTagValue tagvalue) { - return Either.right(tagvalue); - } else if (second instanceof FluidIngredient.FluidValue fluidValue) { - return Either.left(fluidValue); - } else { - throw new UnsupportedOperationException("This is neither an fluid value nor a tag value."); - } - }); - - Collection getFluids(); - } - - public static class FluidValue implements Value { - - public static final Codec CODEC = RecordCodecBuilder.create( - instance -> instance.group( - TheurgyExtraCodecs.SINGLE_FLUID_CODEC.fieldOf("fluid").forGetter(value -> value.fluid) - ).apply(instance, FluidIngredient.FluidValue::new) - ); - private final FluidStack fluid; - - public FluidValue(FluidStack fluid) { - this.fluid = fluid; - } - - @Override - public Collection getFluids() { - return ImmutableList.of(this.fluid); - } - - @Override - public boolean equals(Object pOther) { - if (!(pOther instanceof FluidValue fluidValue)) { - return false; - } else { - return this.fluid.isFluidStackIdentical(fluidValue.fluid); - } - } - } - - public static class FluidTagValue implements Value { - - static final Codec CODEC = RecordCodecBuilder.create( - instance -> instance.group( - TagKey.codec(Registries.FLUID).fieldOf("tag").forGetter(p_301154_ -> p_301154_.tag) - ).apply(instance, FluidTagValue::new) - ); - private final TagKey tag; - - public FluidTagValue(TagKey pTag) { - this.tag = pTag; - } - - @Override - public Collection getFluids() { - return BuiltInRegistries.FLUID.getTag(this.tag) - .map(tag -> tag.stream().map(h -> new FluidStack(h, 1)).collect(Collectors.toList())) - .orElse(Collections.emptyList()); - } - - @Override - public boolean equals(Object pOther) { - return pOther instanceof FluidTagValue tagValue && tagValue.tag.location().equals(this.tag.location()); - } - } -} diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/result/ItemRecipeResult.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/result/ItemRecipeResult.java index 96e73ef3d..cc6080e5d 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/result/ItemRecipeResult.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/result/ItemRecipeResult.java @@ -4,8 +4,10 @@ package com.klikli_dev.theurgy.content.recipe.result; -import com.mojang.serialization.Codec; -import net.minecraft.network.FriendlyByteBuf; +import com.klikli_dev.theurgy.registry.RecipeResultRegistry; +import com.mojang.serialization.MapCodec; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.Nullable; @@ -14,9 +16,13 @@ */ public class ItemRecipeResult extends RecipeResult { - public static final Codec CODEC = ItemStack.ITEM_WITH_COUNT_CODEC.xmap(ItemRecipeResult::new, ItemRecipeResult::getStack); + public static final MapCodec CODEC = MapCodec.assumeMapUnsafe(ItemStack.STRICT_CODEC.xmap(ItemRecipeResult::new, ItemRecipeResult::getStack)); - public static byte TYPE = 0; + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ItemStack.STREAM_CODEC, + ItemRecipeResult::getStack, + ItemRecipeResult::new + ); private final ItemStack stack; @@ -27,10 +33,6 @@ public ItemRecipeResult(ItemStack stack) { this.stack = stack; } - public static ItemRecipeResult fromNetwork(FriendlyByteBuf pBuffer) { - return new ItemRecipeResult(pBuffer.readItem()); - } - @Override public ItemStack getStack() { return this.stack; @@ -45,14 +47,8 @@ public ItemStack[] getStacks() { } @Override - public byte getType() { - return TYPE; + public RecipeResultType getType() { + return RecipeResultRegistry.ITEM.get(); } - @Override - public void toNetwork(FriendlyByteBuf pBuffer) { - super.toNetwork(pBuffer); //write type - - pBuffer.writeItem(this.stack); - } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/result/RecipeResult.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/result/RecipeResult.java index 8f517fbfa..2b48c5b8f 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/result/RecipeResult.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/result/RecipeResult.java @@ -4,34 +4,37 @@ package com.klikli_dev.theurgy.content.recipe.result; -import com.mojang.datafixers.util.Either; +import com.klikli_dev.theurgy.registry.TheurgyRegistries; import com.mojang.serialization.Codec; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.util.ExtraCodecs; +import net.minecraft.core.component.DataComponentPatch; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; public abstract class RecipeResult { - public static final Codec CODEC = ExtraCodecs.xor(ItemRecipeResult.CODEC, TagRecipeResult.CODEC) - .xmap(first -> first.map(l -> l, r -> r), second -> { - if (second instanceof TagRecipeResult tag) { - return Either.right(tag); - } else if (second instanceof ItemRecipeResult item) { - return Either.left(item); - } else { - throw new UnsupportedOperationException("This is neither an ItemRecipeResult nor a TagRecipeResult."); - } - }); - - public static RecipeResult fromNetwork(FriendlyByteBuf pBuffer) { - var type = pBuffer.readByte(); - if (type == ItemRecipeResult.TYPE) { - return ItemRecipeResult.fromNetwork(pBuffer); - } else if (type == TagRecipeResult.TYPE) { - return TagRecipeResult.fromNetwork(pBuffer); - } else { - throw new IllegalArgumentException("Unknown recipe result type: " + type); - } + + public static final Codec CODEC = TheurgyRegistries.RECIPE_RESULT_TYPES.byNameCodec().dispatch(RecipeResult::getType, RecipeResultType::codec); + + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.registry(TheurgyRegistries.Keys.RECIPE_RESULT_TYPES).dispatch(RecipeResult::getType, RecipeResultType::streamCodec); + + public static RecipeResult of(ItemStack stack) { + return new ItemRecipeResult(stack); + } + + public static RecipeResult of(TagKey tag) { + return new TagRecipeResult(tag, 1); + } + + public static RecipeResult of(TagKey tag, int count) { + return new TagRecipeResult(tag, count); + } + + public static RecipeResult of(TagKey tag, int count, DataComponentPatch patch) { + return new TagRecipeResult(tag, count, patch); } /** @@ -44,9 +47,5 @@ public static RecipeResult fromNetwork(FriendlyByteBuf pBuffer) { */ public abstract ItemStack[] getStacks(); - public abstract byte getType(); - - public void toNetwork(FriendlyByteBuf pBuffer) { - pBuffer.writeByte(this.getType()); - } + public abstract RecipeResultType getType(); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/result/RecipeResultType.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/result/RecipeResultType.java new file mode 100644 index 000000000..cfe24284d --- /dev/null +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/result/RecipeResultType.java @@ -0,0 +1,17 @@ +// SPDX-FileCopyrightText: 2024 klikli-dev +// +// SPDX-License-Identifier: MIT + +package com.klikli_dev.theurgy.content.recipe.result; + +import com.mojang.serialization.MapCodec; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.neoforged.neoforge.fluids.crafting.FluidIngredient; + +public record RecipeResultType(MapCodec codec, StreamCodec streamCodec) { + public RecipeResultType(MapCodec mapCodec) { + this(mapCodec, ByteBufCodecs.fromCodecWithRegistries(mapCodec.codec())); + } +} diff --git a/src/main/java/com/klikli_dev/theurgy/content/recipe/result/TagRecipeResult.java b/src/main/java/com/klikli_dev/theurgy/content/recipe/result/TagRecipeResult.java index db378260e..672ce5d2c 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/recipe/result/TagRecipeResult.java +++ b/src/main/java/com/klikli_dev/theurgy/content/recipe/result/TagRecipeResult.java @@ -4,42 +4,49 @@ package com.klikli_dev.theurgy.content.recipe.result; +import com.klikli_dev.theurgy.registry.RecipeResultRegistry; import com.klikli_dev.theurgy.util.TagUtil; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.component.DataComponentPatch; +import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Blocks; import org.jetbrains.annotations.Nullable; -import java.util.Optional; - /** * A tag result for recipes that use tags as output. */ public class TagRecipeResult extends RecipeResult { - public static final Codec CODEC = RecordCodecBuilder.create((builder) -> { - return builder.group( - TagKey.codec(Registries.ITEM).fieldOf("tag").forGetter((getter) -> { - return getter.tag; - }), Codec.INT.fieldOf("count").forGetter((getter) -> { - return getter.count; - }), CompoundTag.CODEC.optionalFieldOf("nbt").forGetter((getter) -> { - return Optional.ofNullable(getter.nbt); - })).apply(builder, TagRecipeResult::new); - }); - public static byte TYPE = 1; + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec((builder) -> builder.group( + TagKey.codec(Registries.ITEM).fieldOf("tag").forGetter(t -> t.tag), + Codec.INT.fieldOf("count").forGetter(t -> t.count), + DataComponentPatch.CODEC.optionalFieldOf("components", DataComponentPatch.EMPTY).forGetter(t -> t.patch) + ).apply(builder, TagRecipeResult::new)); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.fromCodec(TagKey.codec(Registries.ITEM)), + t -> t.tag, + ByteBufCodecs.INT, + t -> t.count, + DataComponentPatch.STREAM_CODEC, + t -> t.patch, + TagRecipeResult::new + ); + private final TagKey tag; private final int count; - @Nullable - private final CompoundTag nbt; + private final DataComponentPatch patch; @Nullable protected ItemStack cachedOutputStack; @@ -48,41 +55,26 @@ public class TagRecipeResult extends RecipeResult { private ItemStack[] cachedStacks; public TagRecipeResult(TagKey tag, int count) { - this(tag, count, (CompoundTag) null); + this(tag, count, DataComponentPatch.EMPTY); } - public TagRecipeResult(TagKey tag, int count, @SuppressWarnings("OptionalUsedAsFieldOrParameterType") Optional nbt) { - this(tag, count, nbt.orElse(null)); - } - public TagRecipeResult(TagKey tag, int count, @Nullable CompoundTag nbt) { + public TagRecipeResult(TagKey tag, int count, DataComponentPatch patch) { this.tag = tag; this.count = count; - this.nbt = nbt; + this.patch = patch; } - public static TagRecipeResult fromNetwork(FriendlyByteBuf pBuffer) { - var tag = TagKey.create(Registries.ITEM, pBuffer.readResourceLocation()); - var count = pBuffer.readVarInt(); - var nbt = pBuffer.readBoolean() ? pBuffer.readNbt() : null; - return new TagRecipeResult(tag, count, nbt); - } - - public TagKey getTag() { + public TagKey tag() { return this.tag; } - public int getCount() { + public int count() { return this.count; } - @Nullable - public CompoundTag getNbt() { - return this.nbt; - } - - public boolean hasNbt() { - return this.nbt != null; + public DataComponentPatch patch() { + return this.patch; } @Override @@ -90,10 +82,11 @@ public ItemStack getStack() { if (this.cachedOutputStack == null) { var item = TagUtil.getItemStackForTag(this.tag).copy(); item.setCount(this.count); - item.setTag(this.nbt); + item.applyComponents(this.patch); if (item.isEmpty()) { - item = new ItemStack(Blocks.BARRIER).setHoverName(Component.literal("Empty Tag: " + this.tag.location())); + item = new ItemStack(Blocks.BARRIER); + item.set(DataComponents.CUSTOM_NAME, Component.literal("Empty Tag: " + this.tag.location())); } this.cachedOutputStack = item; @@ -113,19 +106,7 @@ public ItemStack[] getStacks() { } @Override - public byte getType() { - return TYPE; - } - - @Override - public void toNetwork(FriendlyByteBuf pBuffer) { - super.toNetwork(pBuffer); //write type - - pBuffer.writeResourceLocation(this.tag.location()); - pBuffer.writeVarInt(this.count); - pBuffer.writeBoolean(this.nbt != null); - if (this.nbt != null) { - pBuffer.writeNbt(this.nbt); - } + public RecipeResultType getType() { + return RecipeResultRegistry.TAG.get(); } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/render/BlockHighlightRenderer.java b/src/main/java/com/klikli_dev/theurgy/content/render/BlockHighlightRenderer.java index dacdf83a7..1587db52a 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/render/BlockHighlightRenderer.java +++ b/src/main/java/com/klikli_dev/theurgy/content/render/BlockHighlightRenderer.java @@ -7,18 +7,11 @@ package com.klikli_dev.theurgy.content.render; -import com.klikli_dev.theurgy.content.item.mercurialwand.mode.MercurialWandItemMode; -import com.klikli_dev.theurgy.content.item.mercurialwand.mode.SelectDirectionMode; -import com.klikli_dev.theurgy.content.render.cube.CubeModel; -import com.klikli_dev.theurgy.content.render.cube.CubeModelRenderer; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; import com.klikli_dev.theurgy.registry.ItemRegistry; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.core.Direction; import net.minecraft.world.entity.player.Player; import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.client.event.RenderHighlightEvent; /** @@ -36,10 +29,10 @@ public static void onRenderBlockHighlight(RenderHighlightEvent.Block event) { return; var stack = player.getMainHandItem(); - if(!stack.is(ItemRegistry.MERCURIAL_WAND.get())) + if (!stack.is(ItemRegistry.MERCURIAL_WAND.get())) return; - var mode = MercurialWandItemMode.getMode(stack); + var mode = stack.get(DataComponentRegistry.MERCURIAL_WAND_ITEM_MODE.get()); mode.renderHandler().renderBlockHighlight(event); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/render/FluidRenderer.java b/src/main/java/com/klikli_dev/theurgy/content/render/FluidRenderer.java index 287e4367e..2edcebdb7 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/render/FluidRenderer.java +++ b/src/main/java/com/klikli_dev/theurgy/content/render/FluidRenderer.java @@ -185,7 +185,7 @@ private static void putVertex(VertexConsumer builder, PoseStack ms, float x, flo .uv(u, v) .overlayCoords(OverlayTexture.NO_OVERLAY) .uv2(light) - .normal(peek.normal(), normal.getX(), normal.getY(), normal.getZ()) + .normal(peek, normal.getX(), normal.getY(), normal.getZ()) .endVertex(); } diff --git a/src/main/java/com/klikli_dev/theurgy/content/render/itemhud/ItemHUD.java b/src/main/java/com/klikli_dev/theurgy/content/render/itemhud/ItemHUD.java index 054bbc7a5..0ed822a8e 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/render/itemhud/ItemHUD.java +++ b/src/main/java/com/klikli_dev/theurgy/content/render/itemhud/ItemHUD.java @@ -9,18 +9,18 @@ import com.klikli_dev.theurgy.config.ClientConfig; import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.LayeredDraw; import net.minecraft.network.chat.Component; -import net.neoforged.neoforge.client.gui.overlay.ExtendedGui; -import net.neoforged.neoforge.client.gui.overlay.IGuiOverlay; import java.util.ArrayList; /** * Based on https://github.com/mekanism/Mekanism/blob/d22f6e2028009ed043f8b40c4ea1f7912be3002c/src/main/java/mekanism/client/render/HUDRenderer.java */ -public class ItemHUD implements IGuiOverlay { +public class ItemHUD implements LayeredDraw.Layer { private static final ItemHUD instance = new ItemHUD(); @@ -29,8 +29,8 @@ public static ItemHUD get() { } @Override - public void render(ExtendedGui gui, GuiGraphics guiGraphics, float partialTick, int screenWidth, int screenHeight) { - var minecraft = gui.getMinecraft(); + public void render(GuiGraphics guiGraphics, float pPartialTick) { + var minecraft = Minecraft.getInstance(); if (minecraft.options.hideGui || minecraft.player == null || minecraft.player.isSpectator() || !ClientConfig.get().rendering.enableItemHUD.get()) return; @@ -44,11 +44,11 @@ public void render(ExtendedGui gui, GuiGraphics guiGraphics, float partialTick, if (hudTexts.isEmpty()) return; - Font font = gui.getFont(); + Font font = minecraft.font; float hudScale = ClientConfig.get().rendering.itemHUDScale.get().floatValue(); - int yScale = (int) (screenHeight / hudScale); + int yScale = (int) (guiGraphics.guiHeight() / hudScale); int start = 2 + hudTexts.size() * 9; //where we start rendering at the bottom of the screen int y = yScale - start; @@ -63,6 +63,5 @@ public void render(ExtendedGui gui, GuiGraphics guiGraphics, float partialTick, } pose.popPose(); - } } diff --git a/src/main/java/com/klikli_dev/theurgy/content/storage/MonitoredFluidTank.java b/src/main/java/com/klikli_dev/theurgy/content/storage/MonitoredFluidTank.java index b111322dd..17477e3f2 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/storage/MonitoredFluidTank.java +++ b/src/main/java/com/klikli_dev/theurgy/content/storage/MonitoredFluidTank.java @@ -100,7 +100,7 @@ public int fill(FluidStack toInsert, FluidAction action) { public void setFluid(FluidStack newStack) { var oldStack = this.getFluid(); - boolean sameFluid = newStack.isFluidEqual(oldStack); + boolean sameFluid = FluidStack.isSameFluidSameComponents(newStack, oldStack); super.setFluid(newStack); diff --git a/src/main/java/com/klikli_dev/theurgy/content/storage/MonitoredItemStackHandler.java b/src/main/java/com/klikli_dev/theurgy/content/storage/MonitoredItemStackHandler.java index 3bfed7bca..9db72183c 100644 --- a/src/main/java/com/klikli_dev/theurgy/content/storage/MonitoredItemStackHandler.java +++ b/src/main/java/com/klikli_dev/theurgy/content/storage/MonitoredItemStackHandler.java @@ -51,7 +51,7 @@ protected void onExtractItem(int slot, ItemStack oldStack, ItemStack newStack, I public void setStackInSlot(int slot, @NotNull ItemStack newStack) { var oldStack = this.getStackInSlot(slot).copy(); - boolean sameItem = !newStack.isEmpty() && ItemStack.isSameItemSameTags(newStack, oldStack); + boolean sameItem = !newStack.isEmpty() && ItemStack.isSameItemSameComponents(newStack, oldStack); super.setStackInSlot(slot, newStack); diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/TheurgyDataGenerators.java b/src/main/java/com/klikli_dev/theurgy/datagen/TheurgyDataGenerators.java index 839629bef..f9328151a 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/TheurgyDataGenerators.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/TheurgyDataGenerators.java @@ -39,10 +39,15 @@ public static void onGatherData(GatherDataEvent event) { generator.addProvider(event.includeServer(), new TheurgyFluidTagsProvider(generator.getPackOutput(), event.getLookupProvider(), event.getExistingFileHelper())); generator.addProvider(event.includeServer(), new TheurgyItemTagsProvider(generator.getPackOutput(), event.getLookupProvider(), blockTagsProvider.contentsGetter(), event.getExistingFileHelper())); - generator.addProvider(event.includeServer(), - new LootTableProvider(generator.getPackOutput(), Set.of(), List.of( - new LootTableProvider.SubProviderEntry(TheurgyBlockLootSubProvider::new, LootContextParamSets.BLOCK) - ))); + generator.addProvider(event.includeServer(), new LootTableProvider( + generator.getPackOutput(), + Set.of(), + List.of( + new LootTableProvider.SubProviderEntry(TheurgyBlockLootSubProvider::new, LootContextParamSets.BLOCK) + ), + event.getLookupProvider() + ) + ); generator.addProvider(event.includeServer(), new AdvancementProvider(generator.getPackOutput(), event.getLookupProvider(), event.getExistingFileHelper(), List.of( @@ -68,7 +73,7 @@ public static void onGatherData(GatherDataEvent event) { generator.addProvider(event.includeServer(), new TheurgyMultiblockProvider(generator.getPackOutput())); var enUSProvider = new ENUSProvider(generator.getPackOutput()); - generator.addProvider(event.includeServer(), new TheurgyBookProvider(generator.getPackOutput(), enUSProvider)); + generator.addProvider(event.includeServer(), new TheurgyBookProvider(generator.getPackOutput(), event.getLookupProvider(), enUSProvider)); //Important: Lang provider (in this case enus) needs to be added after the book provider to process the texts added by the book provider generator.addProvider(event.includeClient(), enUSProvider); diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/book/TheurgyBookProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/book/TheurgyBookProvider.java index cba3f16de..85faa227d 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/book/TheurgyBookProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/book/TheurgyBookProvider.java @@ -9,12 +9,15 @@ import com.klikli_dev.modonomicon.api.datagen.book.BookModel; import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.registry.CreativeModeTabRegistry; +import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; +import java.util.concurrent.CompletableFuture; + public class TheurgyBookProvider extends BookProvider { - public TheurgyBookProvider(PackOutput packOutput, ModonomiconLanguageProvider lang) { - super("the_hermetica", packOutput, Theurgy.MODID, lang); + public TheurgyBookProvider(PackOutput packOutput, CompletableFuture pRegistries, ModonomiconLanguageProvider lang) { + super("the_hermetica", packOutput, pRegistries, Theurgy.MODID, lang); } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/book/logistics/MercurialWandEntry.java b/src/main/java/com/klikli_dev/theurgy/datagen/book/logistics/MercurialWandEntry.java index 9fad03ea9..02bf5de1c 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/book/logistics/MercurialWandEntry.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/book/logistics/MercurialWandEntry.java @@ -51,7 +51,7 @@ protected void generatePages() { this.page("rotate", () -> BookTextPageModel.create() .withTitle(this.context().pageTitle()) .withText(this.context().pageText())); - this.pageTitle("Rotate Selected Direction"); + this.pageTitle("Cycle Selected Direction"); this.pageText(""" With this mode, right-clicking on a block will cycle the selected direction of the target block. \\ @@ -66,7 +66,7 @@ protected void generatePages() { this.page("rotate_visuals", () -> BookTextPageModel.create() .withTitle(this.context().pageTitle()) .withText(this.context().pageText())); - this.pageTitle("Rotate Selected Direction"); + this.pageTitle("Cycle Selected Direction"); this.pageText(""" When looking at a logistics block with this mode selected, the block will highlight the selected direction on its target block. \\ diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/lang/ENUSProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/lang/ENUSProvider.java index 98446697d..3e93779dc 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/lang/ENUSProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/lang/ENUSProvider.java @@ -22,7 +22,6 @@ import net.minecraft.tags.ItemTags; import net.minecraft.world.item.Item; import net.neoforged.neoforge.registries.DeferredHolder; -import org.checkerframework.common.returnsreceiver.qual.This; import java.text.MessageFormat; import java.util.function.Supplier; @@ -693,9 +692,9 @@ private void addItems() { this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SET_SELECTED_DIRECTION, "Set direction to %s"); this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SET_SELECTED_DIRECTION_WITH_TARGET, "Set direction from %s to %s"); this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SET_SELECTED_DIRECTION_SUCCESS, "Set direction to %s"); - this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_ROTATE_SELECTED_DIRECTION, "Rotate selected direction"); - this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_ROTATE_SELECTED_DIRECTION_WITH_TARGET, "Set direction from %s to %s"); - this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_ROTATE_SELECTED_DIRECTION_SUCCESS, "Rotated direction to %s"); + this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_CYCLE_SELECTED_DIRECTION, "Cycle selected direction"); + this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_CYCLE_SELECTED_DIRECTION_WITH_TARGET, "Set direction from %s to %s"); + this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_CYCLE_SELECTED_DIRECTION_SUCCESS, "Cycle direction to %s"); this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SWITCH_LOGISTICS_ENABLED, "Enable/Disable"); this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SWITCH_LOGISTICS_ENABLED_HUD, " (Currently: %s)"); this.add(TheurgyConstants.I18n.Item.Mode.MERCURIAL_WAND_SWITCH_LOGISTICS_ENABLED_SUCCESS, "Logistics Connector is now %s"); diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/loot/TheurgyBlockLootSubProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/loot/TheurgyBlockLootSubProvider.java index 3ea732126..1c5808774 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/loot/TheurgyBlockLootSubProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/loot/TheurgyBlockLootSubProvider.java @@ -5,10 +5,13 @@ package com.klikli_dev.theurgy.datagen.loot; import com.klikli_dev.theurgy.registry.BlockRegistry; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; import com.klikli_dev.theurgy.registry.ItemRegistry; -import com.mojang.datafixers.util.Pair; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; import net.minecraft.data.loot.BlockLootSubProvider; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.flag.FeatureFlags; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.properties.BlockStateProperties; @@ -16,11 +19,9 @@ import net.minecraft.world.level.storage.loot.LootPool; import net.minecraft.world.level.storage.loot.LootTable; import net.minecraft.world.level.storage.loot.entries.LootItem; -import net.minecraft.world.level.storage.loot.functions.CopyNbtFunction; -import net.minecraft.world.level.storage.loot.providers.nbt.ContextNbtProvider; +import net.minecraft.world.level.storage.loot.functions.CopyComponentsFunction; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; -import java.util.Arrays; import java.util.Set; import java.util.function.BiConsumer; @@ -30,9 +31,9 @@ public TheurgyBlockLootSubProvider() { } @Override - public void generate(BiConsumer consumer) { + public void generate(HolderLookup.Provider pRegistries, BiConsumer, LootTable.Builder> pGenerator) { this.generate(); - this.map.forEach(consumer::accept); + this.map.forEach(pGenerator); } @Override @@ -47,18 +48,18 @@ protected void generate() { this.dropSelf(BlockRegistry.INCUBATOR_SALT_VESSEL.get()); this.dropSelf(BlockRegistry.SAL_AMMONIAC_ACCUMULATOR.get()); this.dropSelf(BlockRegistry.SAL_AMMONIAC_TANK.get()); - this.dropSelfWithNbt(BlockRegistry.MERCURY_CATALYST.get(), - "mercuryFluxStorage", - "mercuryFluxToConvert", - "currentMercuryFluxPerTick", - "inventory" + this.dropSelfWithComponents(BlockRegistry.MERCURY_CATALYST.get(), + DataComponentRegistry.MERCURY_FLUX_STORAGE.get(), + DataComponentRegistry.MERCURY_FLUX_TO_CONVERT.get(), + DataComponentRegistry.CURRENT_MERCURY_FLUX_PER_TICK.get(), + DataComponents.CONTAINER ); - this.dropSelfWithNbt(BlockRegistry.CALORIC_FLUX_EMITTER.get(), - "mercuryFluxStorage" + this.dropSelfWithComponents(BlockRegistry.CALORIC_FLUX_EMITTER.get(), + DataComponentRegistry.MERCURY_FLUX_STORAGE.get() ); - this.dropSelfWithNbt(BlockRegistry.SULFURIC_FLUX_EMITTER.get(), - "mercuryFluxStorage" + this.dropSelfWithComponents(BlockRegistry.SULFURIC_FLUX_EMITTER.get(), + DataComponentRegistry.MERCURY_FLUX_STORAGE.get() ); this.dropSelf(BlockRegistry.REFORMATION_SOURCE_PEDESTAL.get()); this.dropSelf(BlockRegistry.REFORMATION_TARGET_PEDESTAL.get()); @@ -83,22 +84,15 @@ protected void dropDoubleBlockOnce(Block pBlock) { this.add(pBlock, this.createSinglePropConditionTable(pBlock, BlockStateProperties.DOUBLE_BLOCK_HALF, DoubleBlockHalf.LOWER)); } - - @SuppressWarnings("unchecked") - protected final void dropSelfWithNbt(Block pBlock, String... sourcePaths) { - this.dropSelfWithNbt(pBlock, Arrays.stream(sourcePaths).map(s -> Pair.of(s, "BlockEntityTag." + s)).toArray(Pair[]::new)); - } - - @SafeVarargs - protected final void dropSelfWithNbt(Block pBlock, Pair... sourceTargetPathPairs) { - this.add(pBlock, this.createSelfWithNbtDrop(pBlock, this.copyData(sourceTargetPathPairs))); + protected final void dropSelfWithComponents(Block pBlock, DataComponentType... pIncludes) { + this.add(pBlock, this.createSelfWithComponentsDrop(pBlock, this.copyComponents(pIncludes))); } - protected void dropSelfWithNbt(Block pBlock, CopyNbtFunction.Builder data) { - this.add(pBlock, this.createSelfWithNbtDrop(pBlock, data)); + protected void dropSelfWithComponents(Block pBlock, CopyComponentsFunction.Builder data) { + this.add(pBlock, this.createSelfWithComponentsDrop(pBlock, data)); } - protected LootTable.Builder createSelfWithNbtDrop(Block pBlock, CopyNbtFunction.Builder data) { + protected LootTable.Builder createSelfWithComponentsDrop(Block pBlock, CopyComponentsFunction.Builder data) { return LootTable.lootTable() .withPool( this.applyExplosionCondition(pBlock, @@ -112,10 +106,10 @@ protected LootTable.Builder createSelfWithNbtDrop(Block pBlock, CopyNbtFunction. ); } - protected CopyNbtFunction.Builder copyData(Pair... sourceTargetPathPairs) { - var builder = CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY); - for (var pair : sourceTargetPathPairs) { - builder.copy(pair.getFirst(), pair.getSecond()); + protected CopyComponentsFunction.Builder copyComponents(DataComponentType... pIncludes) { + var builder = CopyComponentsFunction.copyComponents(CopyComponentsFunction.Source.BLOCK_ENTITY); + for (var include : pIncludes) { + builder.include(include); } return builder; } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/AccumulationRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/AccumulationRecipeProvider.java index ac8f8c203..6244a95ba 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/AccumulationRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/AccumulationRecipeProvider.java @@ -17,7 +17,6 @@ import net.minecraft.world.item.Item; import net.minecraft.world.level.material.Fluid; import net.neoforged.neoforge.fluids.FluidStack; -import org.jetbrains.annotations.Nullable; import java.util.function.BiConsumer; @@ -33,41 +32,20 @@ public AccumulationRecipeProvider(PackOutput packOutput) { public void buildRecipes(BiConsumer recipeConsumer) { var salAmmoniac = FluidRegistry.SAL_AMMONIAC.get(); - this.makeRecipe("sal_ammoniac_from_water", salAmmoniac, 100, (Item) null, FluidTags.WATER, 1000, TIME); - this.makeRecipe("sal_ammoniac_from_water_and_sal_ammoniac_crystal", salAmmoniac, 1000, ItemTagRegistry.SAL_AMMONIAC_GEMS, FluidTags.WATER, 1000, TIME); - } - - public void makeRecipe(String name, Fluid result, int resultAmount, @Nullable Item solute, TagKey evaporant, int evaporantAmount, int accumulationTime) { - this.recipeConsumer.accept( - this.modLoc(name), - this.makeRecipeJson( - this.makeFluidTagIngredient(evaporant.location()), - evaporantAmount, - solute != null ? this.makeItemIngredient(this.locFor(solute)) : null, - this.makeFluidResult(new FluidStack(result, resultAmount)), accumulationTime)); - } + this.makeRecipe("sal_ammoniac_from_water", + new Builder(new FluidStack(salAmmoniac, 100)) + .evaporant(FluidTags.WATER, 1000) + .time(TIME)); - public void makeRecipe(String name, Fluid result, int resultAmount, @Nullable TagKey solute, TagKey evaporant, int evaporantAmount, int accumulationTime) { - this.recipeConsumer.accept( - this.modLoc(name), - this.makeRecipeJson( - this.makeFluidTagIngredient(evaporant.location()), - evaporantAmount, - solute != null ? this.makeTagIngredient(solute.location()) : null, - this.makeFluidResult(new FluidStack(result, resultAmount)), accumulationTime)); + this.makeRecipe("sal_ammoniac_from_water_and_sal_ammoniac_crystal", + new Builder(new FluidStack(salAmmoniac, 1000)) + .evaporant(FluidTags.WATER, 1000) + .solute(ItemTagRegistry.GEMS_SAL_AMMONIAC) + .time(TIME)); } - public JsonObject makeRecipeJson(JsonObject evaporant, int evaporantAmount, @Nullable JsonObject solute, JsonObject result, int accumulationTime) { - - var recipe = new JsonObject(); - recipe.addProperty("type", RecipeTypeRegistry.ACCUMULATION.getId().toString()); - recipe.add("evaporant", evaporant); - recipe.addProperty("evaporantAmount", evaporantAmount); - if (solute != null) - recipe.add("solute", solute); - recipe.add("result", result); - recipe.addProperty("time", accumulationTime); - return recipe; + protected void makeRecipe(String name, Builder recipe) { + this.recipeConsumer.accept(this.modLoc(name), recipe.build()); } @@ -75,4 +53,21 @@ public JsonObject makeRecipeJson(JsonObject evaporant, int evaporantAmount, @Nul public String getName() { return "Accumulation Recipes"; } + + + protected static class Builder extends RecipeBuilder { + protected Builder(FluidStack result) { + super(RecipeTypeRegistry.ACCUMULATION); + this.result(result); + } + + public Builder evaporant(TagKey tag, int amount) { + this.recipe.addProperty("evaporantAmount", amount); + return this.ingredient("evaporant", tag, -1); + } + + public Builder solute(TagKey tag) { + return this.ingredient("solute", tag, -1); + } + } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/CalcinationRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/CalcinationRecipeProvider.java index aa62d6aa5..cbd3aaa7a 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/CalcinationRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/CalcinationRecipeProvider.java @@ -4,7 +4,6 @@ package com.klikli_dev.theurgy.datagen.recipe; -import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.content.recipe.CalcinationRecipe; @@ -16,7 +15,9 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; +import net.minecraft.world.level.ItemLike; import net.neoforged.neoforge.common.Tags; import java.util.function.BiConsumer; @@ -31,89 +32,76 @@ public CalcinationRecipeProvider(PackOutput packOutput) { @Override public void buildRecipes(BiConsumer recipeConsumer) { - this.makeRecipe(SaltRegistry.STRATA.get(), "from_stone", Tags.Items.STONE); - this.makeRecipe(SaltRegistry.STRATA.get(), "from_sandstone", Tags.Items.SANDSTONE); - this.makeRecipe(SaltRegistry.STRATA.get(), "from_cobblestone", Tags.Items.COBBLESTONE); - this.makeRecipe(SaltRegistry.STRATA.get(), "from_dirt", ItemTags.DIRT); - this.makeRecipe(SaltRegistry.STRATA.get(), "from_sand", ItemTags.SAND); - this.makeRecipe(SaltRegistry.STRATA.get(), "from_gravel", 1, Items.GRAVEL, 1, TIME); - this.makeRecipe(SaltRegistry.STRATA.get(), "from_clay", 4, Items.CLAY, 1, TIME); - this.makeRecipe(SaltRegistry.STRATA.get(), "from_clay_ball", 1, Items.CLAY_BALL, 1, TIME); - this.makeRecipe(SaltRegistry.MINERAL.get(), "from_ores", Tags.Items.ORES); - this.makeRecipe(SaltRegistry.MINERAL.get(), "from_raw_materials", Tags.Items.RAW_MATERIALS); - this.makeRecipe(SaltRegistry.MINERAL.get(), "from_ingots", 2, Tags.Items.INGOTS); - this.makeRecipe(SaltRegistry.MINERAL.get(), "from_gems", 2, Tags.Items.GEMS); - this.makeRecipe(SaltRegistry.MINERAL.get(), "from_other_minerals", 2, ItemTagRegistry.OTHER_MINERALS); - this.makeRecipe(SaltRegistry.CROPS.get(), "", Tags.Items.CROPS); - this.makeRecipe(SaltRegistry.MINERAL.get(), "", 1, SaltRegistry.STRATA.get(), 20, TIME); + this.makeRecipe("_from_stone", new Builder(SaltRegistry.STRATA).ingredient(Tags.Items.STONES)); + this.makeRecipe("_from_sandstone", new Builder(SaltRegistry.STRATA).ingredient(Tags.Items.SANDSTONE_BLOCKS)); + this.makeRecipe("_from_cobblestone", new Builder(SaltRegistry.STRATA).ingredient(Tags.Items.COBBLESTONES)); + this.makeRecipe("_from_dirt", new Builder(SaltRegistry.STRATA).ingredient(ItemTags.DIRT)); + this.makeRecipe("_from_sand", new Builder(SaltRegistry.STRATA).ingredient(ItemTags.SAND)); + this.makeRecipe("_from_gravel", new Builder(SaltRegistry.STRATA).ingredient(Items.GRAVEL)); + this.makeRecipe("_from_clay", new Builder(SaltRegistry.STRATA, 4).ingredient(Items.CLAY)); + this.makeRecipe("_from_clay_ball", new Builder(SaltRegistry.STRATA).ingredient(Items.CLAY_BALL)); + this.makeRecipe("_from_ores", new Builder(SaltRegistry.MINERAL).ingredient(Tags.Items.ORES)); + this.makeRecipe("_from_raw_materials", new Builder(SaltRegistry.MINERAL).ingredient(Tags.Items.RAW_MATERIALS)); + this.makeRecipe("_from_ingots", new Builder(SaltRegistry.MINERAL, 2).ingredient(Tags.Items.INGOTS)); + this.makeRecipe("_from_gems", new Builder(SaltRegistry.MINERAL, 2).ingredient(Tags.Items.GEMS)); + this.makeRecipe("_from_other_minerals", new Builder(SaltRegistry.MINERAL, 2).ingredient(ItemTagRegistry.OTHER_MINERALS)); + this.makeRecipe("", new Builder(SaltRegistry.MINERAL).ingredient(SaltRegistry.STRATA.get(), 20)); + this.makeRecipe("", new Builder(SaltRegistry.CROPS).ingredient(Tags.Items.CROPS)); } - public void makeRecipe(Item salt, String suffix, TagKey ingredient) { - this.makeRecipe(salt, suffix, ingredient, TIME); - } - - public void makeRecipe(Item salt, String suffix, TagKey ingredient, int calcinationTime) { - this.makeRecipe(salt, suffix, 1, ingredient, 1, calcinationTime); - } - - public void makeRecipe(Item salt, String suffix, int resultCount, TagKey ingredient) { - this.makeRecipe(salt, suffix, resultCount, ingredient, 1); - } - - - public void makeRecipe(Item salt, String suffix, int resultCount, TagKey ingredient, int ingredientCount) { - this.makeRecipe(salt, suffix, resultCount, ingredient, ingredientCount, TIME); - } - - public void makeRecipe(Item salt, String suffix, int resultCount, Item ingredient, int ingredientCount, int calcinationTime) { - var name = this.name(salt).replace("alchemical_salt_", ""); - if (suffix != null && !suffix.isEmpty()) - name += "_" + suffix; - - var recipe = this.makeRecipeJson( - this.makeItemIngredient(this.locFor(ingredient)), ingredientCount, - this.makeItemResult(this.locFor(salt), resultCount), calcinationTime); - - this.recipeConsumer.accept( - this.modLoc(name), - recipe - ); - - } - - public void makeRecipe(Item salt, String suffix, int resultCount, TagKey ingredient, int ingredientCount, int calcinationTime) { - var name = this.name(salt).replace("alchemical_salt_", ""); - if (suffix != null && !suffix.isEmpty()) - name += "_" + suffix; - - var recipe = this.makeRecipeJson( - this.makeTagIngredient(this.locFor(ingredient)), ingredientCount, - this.makeItemResult(this.locFor(salt), resultCount), calcinationTime); - - var conditions = new JsonArray(); - conditions.add(this.makeTagNotEmptyCondition(ingredient.location().toString())); - recipe.add("neoforge:conditions", conditions); - - this.recipeConsumer.accept( - this.modLoc(name), - recipe - ); - - } - - public JsonObject makeRecipeJson(JsonObject ingredient, int ingredientCount, JsonObject result, int calcinationTime) { - var recipe = new JsonObject(); - recipe.addProperty("type", RecipeTypeRegistry.CALCINATION.getId().toString()); - recipe.add("ingredient", ingredient); - recipe.addProperty("ingredientCount", ingredientCount); - recipe.add("result", result); - recipe.addProperty("time", calcinationTime); - return recipe; + protected void makeRecipe(String suffix, Builder recipe) { + this.recipeConsumer.accept(this.modLoc(this.name(recipe.result()) + suffix), recipe.build()); } @Override public String getName() { return "Calcination Recipes"; } + + protected static class Builder extends RecipeBuilder { + + private final ItemStack result; + + protected Builder(ItemLike result) { + this(result, 1); + } + + protected Builder(ItemLike result, int count) { + this(new ItemStack(result, count)); + } + + protected Builder(ItemStack result) { + super(RecipeTypeRegistry.CALCINATION); + this.result(result); + this.time(TIME); + this.result = result; + } + + @Override + public Builder ingredient(TagKey tag) { + return this.ingredient(tag, 1); + } + + @Override + public Builder ingredient(Item item) { + return this.ingredient(item, 1); + } + + @Override + public Builder ingredient(TagKey tag, int amount) { + this.recipe.addProperty("ingredientCount", amount); + return this.ingredient("ingredient", tag, -1); + } + + @Override + public Builder ingredient(Item item, int amount) { + this.recipe.addProperty("ingredientCount", amount); + return this.ingredient("ingredient", item); + } + + public ItemStack result() { + return this.result; + } + } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/CatalysationRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/CatalysationRecipeProvider.java index 5459cac24..fbdd11300 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/CatalysationRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/CatalysationRecipeProvider.java @@ -42,7 +42,7 @@ public void makeRecipe(String name, Ingredient ingredient, int totalMercuryFlux, public JsonObject makeRecipeJson(Ingredient ingredient, int totalMercuryFlux, int mercuryFluxPerTick) { var recipe = new CatalysationRecipe(ingredient, totalMercuryFlux, mercuryFluxPerTick); - var json = CatalysationRecipe.CODEC.encodeStart(JsonOps.INSTANCE, recipe) + var json = CatalysationRecipe.CODEC.codec().encodeStart(JsonOps.INSTANCE, recipe) .resultOrPartial(Theurgy.LOGGER::error).get().getAsJsonObject(); json.addProperty("type", "theurgy:catalysation"); return json; diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/DigestionRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/DigestionRecipeProvider.java index 1ebd2d7f9..f34aca737 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/DigestionRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/DigestionRecipeProvider.java @@ -11,13 +11,18 @@ import com.klikli_dev.theurgy.content.recipe.FermentationRecipe; import com.klikli_dev.theurgy.registry.*; import com.mojang.datafixers.util.Pair; +import net.minecraft.core.Holder; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.Fluids; import net.neoforged.neoforge.common.Tags; +import net.neoforged.neoforge.common.conditions.NotCondition; +import net.neoforged.neoforge.common.conditions.TagEmptyCondition; import java.util.List; import java.util.function.BiConsumer; @@ -71,14 +76,14 @@ public void makeRecipe(Fluid fluid, int fluidAmount, List> i } public void makeRecipe(String name, Fluid fluid, int fluidAmount, List> ingredients, Item result, int resultCount, int time) { - var recipe = this.makeRecipeJson( - this.makeFluidTagIngredient(this.locFor(fluid)), - fluidAmount, - ingredients.stream().map(i -> this.makeItemIngredient(this.locFor(i.getFirst()), i.getSecond())).toList(), - this.makeItemResult(this.locFor(result), resultCount), - time); - - this.recipeConsumer.accept(this.modLoc(name), recipe); + + var recipe = new Builder(new ItemStack(result, resultCount)) + .fluid(fluid, fluidAmount) + .time(time); + + ingredients.forEach(i -> recipe.ingredients(i.getFirst(), i.getSecond())); + + this.recipeConsumer.accept(this.modLoc(name), recipe.build()); } public void makeRecipeWithTags(Fluid fluid, int fluidAmount, List> ingredients, Item result, int resultCount, int time) { @@ -86,41 +91,81 @@ public void makeRecipeWithTags(Fluid fluid, int fluidAmount, List> } public void makeRecipeWithTags(String name, Fluid fluid, int fluidAmount, List> ingredients, Item result, int resultCount, int time) { - var recipe = this.makeRecipeJson( - this.makeFluidTagIngredient(this.locFor(fluid)), - fluidAmount, - ingredients.stream().map(i -> this.makeTagIngredient(this.locFor(i), 1)).toList(), - this.makeItemResult(this.locFor(result), resultCount), - time); - - var conditions = new JsonArray(); - for (var ingredient : ingredients) { - conditions.add(this.makeTagNotEmptyCondition(ingredient.location().toString())); - } - recipe.add("neoforge:conditions", conditions); - this.recipeConsumer.accept(this.modLoc(name), recipe); - } + var recipe = new Builder(new ItemStack(result, resultCount)) + .fluid(fluid, fluidAmount) + .time(time); - public JsonObject makeRecipeJson(JsonObject fluid, int fluidAmount, List ingredients, JsonObject result, int time) { - var ingredientsArray = new JsonArray(); - for (var ingredient : ingredients) { - ingredientsArray.add(ingredient); - } + ingredients.forEach(i -> recipe.ingredients(i, 1)); - var recipe = new JsonObject(); - recipe.addProperty("type", RecipeTypeRegistry.DIGESTION.getId().toString()); - recipe.add("fluid", fluid); - recipe.addProperty("fluidAmount", fluidAmount); - recipe.add("ingredients", ingredientsArray); - recipe.add("result", result); - recipe.addProperty("time", time); - return recipe; + this.recipeConsumer.accept(this.modLoc(name), recipe.build()); } - @Override public String getName() { return "Digestion Recipes"; } + + protected static class Builder extends RecipeBuilder { + protected Builder(ItemStack result) { + super(RecipeTypeRegistry.DIGESTION); + this.result(result); + this.time(TIME); + } + + public Builder fluid(TagKey tag, int amount) { + this.recipe.addProperty("fluidAmount", amount); + return this.ingredient("fluid", tag, -1); + } + + public Builder fluid(Fluid fluid, int amount) { + this.recipe.addProperty("fluidAmount", amount); + return this.ingredient("fluid", fluid); + } + + public Builder ingredients(ItemLike item) { + //noinspection deprecation + return this.ingredients(item.asItem().builtInRegistryHolder()); + } + + public Builder ingredients(ItemLike item, int count) { + //noinspection deprecation + return this.ingredients(item.asItem().builtInRegistryHolder(), 1); + } + + public Builder ingredients(Holder itemHolder) { + return this.ingredients(itemHolder, 1); + } + + public Builder ingredients(Holder itemHolder, int count) { + if (!this.recipe.has("ingredients")) + this.recipe.add("ingredients", new JsonArray()); + + JsonObject jsonobject = new JsonObject(); + //noinspection OptionalGetWithoutIsPresent + jsonobject.addProperty("item", itemHolder.unwrapKey().get().location().toString()); + jsonobject.addProperty("count", count); + + this.recipe.getAsJsonArray("ingredients").add(jsonobject); + + return this.getThis(); + } + + + public Builder ingredients(TagKey tag, int count) { + if (!this.recipe.has("ingredients")) + this.recipe.add("ingredients", new JsonArray()); + + JsonObject jsonobject = new JsonObject(); + jsonobject.addProperty("tag", tag.location().toString()); + if (count > -1) + jsonobject.addProperty("count", count); + + this.recipe.getAsJsonArray("ingredients").add(jsonobject); + + this.condition(new NotCondition(new TagEmptyCondition(tag.location().toString()))); + + return this.getThis(); + } + } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/DistillationRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/DistillationRecipeProvider.java index 10ba860bc..8f198f8a8 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/DistillationRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/DistillationRecipeProvider.java @@ -4,7 +4,6 @@ package com.klikli_dev.theurgy.datagen.recipe; -import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.content.recipe.DistillationRecipe; @@ -17,6 +16,7 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.neoforged.neoforge.common.Tags; @@ -32,14 +32,14 @@ public DistillationRecipeProvider(PackOutput packOutput) { @Override public void buildRecipes(BiConsumer recipeConsumer) { - this.makeMercuryShardRecipe(1, Tags.Items.STONE, 10); - this.makeMercuryShardRecipe(1, Tags.Items.SANDSTONE, 10); + this.makeMercuryShardRecipe(1, Tags.Items.STONES, 10); + this.makeMercuryShardRecipe(1, Tags.Items.SANDSTONE_BLOCKS, 10); this.makeMercuryShardRecipe(1, ItemTags.STONE_BRICKS, 10); - this.makeMercuryShardRecipe(1, Tags.Items.COBBLESTONE, 10); - this.makeMercuryShardRecipe(1, Tags.Items.GRAVEL, 15); + this.makeMercuryShardRecipe(1, Tags.Items.COBBLESTONES, 10); + this.makeMercuryShardRecipe(1, Tags.Items.GRAVELS, 15); this.makeMercuryShardRecipe(1, ItemTags.DIRT, 25); - this.makeMercuryShardRecipe(1, Tags.Items.SAND, 15); - this.makeMercuryShardRecipe(1, Tags.Items.GLASS, 10); + this.makeMercuryShardRecipe(1, Tags.Items.SANDS, 15); + this.makeMercuryShardRecipe(1, Tags.Items.GLASS_BLOCKS, 10); this.makeMercuryShardRecipe(5, ItemTagRegistry.LOW_MERCURY_ORES, 1); this.makeMercuryShardRecipe(25, ItemTagRegistry.MEDIUM_MERCURY_ORES, 1); @@ -94,21 +94,12 @@ public void makeMercuryShardRecipe(int resultCount, TagKey ingredient, int } public void makeMercuryShardRecipe(String recipeName, int resultCount, TagKey ingredient, int ingredientCount, int distillationTime) { - - var recipe = this.makeRecipeJson( - this.makeTagIngredient(ingredient.location()), - ingredientCount, - this.makeItemResult(this.locFor(ItemRegistry.MERCURY_SHARD.get()), resultCount), distillationTime); - - var conditions = new JsonArray(); - conditions.add(this.makeTagNotEmptyCondition(ingredient.location().toString())); - recipe.add("neoforge:conditions", conditions); - this.recipeConsumer.accept( this.modLoc(recipeName), - recipe - ); - + new Builder(new ItemStack(ItemRegistry.MERCURY_SHARD.get(), resultCount)) + .ingredient(ingredient, ingredientCount) + .time(distillationTime) + .build()); } public void makeMercuryShardRecipe(int resultCount, Item ingredient, int ingredientCount) { @@ -122,25 +113,34 @@ public void makeMercuryShardRecipe(int resultCount, Item ingredient, int ingredi public void makeMercuryShardRecipe(String recipeName, int resultCount, Item ingredient, int ingredientCount, int distillationTime) { this.recipeConsumer.accept( this.modLoc(recipeName), - this.makeRecipeJson( - this.makeItemIngredient(this.locFor(ingredient)), - ingredientCount, - this.makeItemResult(this.locFor(ItemRegistry.MERCURY_SHARD.get()), resultCount), distillationTime)); - - } - - public JsonObject makeRecipeJson(JsonObject ingredient, int ingredientCount, JsonObject result, int distillationTime) { - var recipe = new JsonObject(); - recipe.addProperty("type", RecipeTypeRegistry.DISTILLATION.getId().toString()); - recipe.add("ingredient", ingredient); - recipe.addProperty("ingredientCount", ingredientCount); - recipe.add("result", result); - recipe.addProperty("time", distillationTime); - return recipe; + new Builder(new ItemStack(ItemRegistry.MERCURY_SHARD.get(), resultCount)) + .ingredient(ingredient, ingredientCount) + .time(distillationTime) + .build()); } @Override public String getName() { return "Distillation Recipes"; } + + protected static class Builder extends RecipeBuilder { + protected Builder(ItemStack result) { + super(RecipeTypeRegistry.DISTILLATION); + this.result(result); + this.time(TIME); + } + + @Override + public Builder ingredient(Item item, int count) { + this.recipe.addProperty("ingredientCount", count); + return this.ingredient("ingredient", item); + } + + @Override + public Builder ingredient(TagKey tag, int count) { + this.recipe.addProperty("ingredientCount", count); + return this.ingredient("ingredient", tag); + } + } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/FermentationRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/FermentationRecipeProvider.java index 235b04e60..337586d3a 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/FermentationRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/FermentationRecipeProvider.java @@ -8,16 +8,23 @@ import com.google.gson.JsonObject; import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.content.recipe.FermentationRecipe; +import com.klikli_dev.theurgy.registry.ItemRegistry; import com.klikli_dev.theurgy.registry.ItemTagRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.klikli_dev.theurgy.registry.SulfurRegistry; +import net.minecraft.core.Holder; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.Fluids; import net.neoforged.neoforge.common.Tags; +import net.neoforged.neoforge.common.conditions.NotCondition; +import net.neoforged.neoforge.common.conditions.TagEmptyCondition; +import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.function.BiConsumer; @@ -32,7 +39,7 @@ public FermentationRecipeProvider(PackOutput packOutput) { @Override public void buildRecipes(BiConsumer recipeConsumer) { - this.makeRecipesForCropTag(ItemTagRegistry.SUGAR); + this.makeRecipesForCropTag(ItemTagRegistry.SUGARS); this.makeRecipesForCropTag(Tags.Items.CROPS); } @@ -107,42 +114,81 @@ public void makeRecipe(Fluid fluid, int fluidAmount, List> ingredie } public void makeRecipe(String name, Fluid fluid, int fluidAmount, List> ingredients, Item result, int resultCount, int time) { - var recipe = this.makeRecipeJson( - this.makeFluidTagIngredient(this.locFor(fluid)), - fluidAmount, - ingredients.stream().map(i -> this.makeTagIngredient(this.locFor(i))).toList(), - this.makeItemResult(this.locFor(result), resultCount), - time); - - var conditions = new JsonArray(); - for (var ingredient : ingredients) { - conditions.add(this.makeTagNotEmptyCondition(ingredient.location().toString())); - } - recipe.add("neoforge:conditions", conditions); - this.recipeConsumer.accept(this.modLoc(name), recipe); + var recipe = new Builder(new ItemStack(ItemRegistry.MERCURY_SHARD.get(), resultCount)) + .fluid(fluid, fluidAmount) + .time(time); + + ingredients.forEach(i -> recipe.ingredients(i, -1)); + + this.recipeConsumer.accept(this.modLoc(name), recipe.build()); } + @Override + public @NotNull String getName() { + return "Fermentation Recipes"; + } - public JsonObject makeRecipeJson(JsonObject fluid, int fluidAmount, List ingredients, JsonObject result, int time) { - var ingredientsArray = new JsonArray(); - for (var ingredient : ingredients) { - ingredientsArray.add(ingredient); + protected static class Builder extends RecipeBuilder { + protected Builder(ItemStack result) { + super(RecipeTypeRegistry.FERMENTATION); + this.result(result); + this.time(TIME); } - var recipe = new JsonObject(); - recipe.addProperty("type", RecipeTypeRegistry.FERMENTATION.getId().toString()); - recipe.add("fluid", fluid); - recipe.addProperty("fluidAmount", fluidAmount); - recipe.add("ingredients", ingredientsArray); - recipe.add("result", result); - recipe.addProperty("time", time); - return recipe; - } + public Builder fluid(TagKey tag, int amount) { + this.recipe.addProperty("fluidAmount", amount); + return this.ingredient("fluid", tag, -1); + } + public Builder fluid(Fluid fluid, int amount) { + this.recipe.addProperty("fluidAmount", amount); + return this.ingredient("fluid", fluid); + } - @Override - public String getName() { - return "Fermentation Recipes"; + public Builder ingredients(ItemLike item) { + //noinspection deprecation + return this.ingredients(item.asItem().builtInRegistryHolder()); + } + + public Builder ingredients(ItemLike item, int count) { + //noinspection deprecation + return this.ingredients(item.asItem().builtInRegistryHolder(), 1); + } + + public Builder ingredients(Holder itemHolder) { + return this.ingredients(itemHolder, 1); + } + + public Builder ingredients(Holder itemHolder, int count) { + if (!this.recipe.has("ingredients")) + this.recipe.add("ingredients", new JsonArray()); + + JsonObject jsonobject = new JsonObject(); + //noinspection OptionalGetWithoutIsPresent + jsonobject.addProperty("item", itemHolder.unwrapKey().get().location().toString()); + jsonobject.addProperty("count", count); + + this.recipe.getAsJsonArray("ingredients").add(jsonobject); + + return this.getThis(); + } + + + public Builder ingredients(TagKey tag, int count) { + if (!this.recipe.has("ingredients")) + this.recipe.add("ingredients", new JsonArray()); + + JsonObject jsonobject = new JsonObject(); + jsonobject.addProperty("tag", tag.location().toString()); + if (count > -1) + jsonobject.addProperty("count", count); + + this.recipe.getAsJsonArray("ingredients").add(jsonobject); + + this.condition(new NotCondition(new TagEmptyCondition(tag.location().toString()))); + + return this.getThis(); + } } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/IncubationRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/IncubationRecipeProvider.java index b9b86c182..0f2c869f6 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/IncubationRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/IncubationRecipeProvider.java @@ -4,21 +4,19 @@ package com.klikli_dev.theurgy.datagen.recipe; -import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.content.item.salt.AlchemicalSaltItem; import com.klikli_dev.theurgy.content.item.sulfur.AlchemicalSulfurItem; import com.klikli_dev.theurgy.content.recipe.IncubationRecipe; -import com.klikli_dev.theurgy.registry.ItemRegistry; -import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; -import com.klikli_dev.theurgy.registry.SaltRegistry; -import com.klikli_dev.theurgy.registry.SulfurRegistry; +import com.klikli_dev.theurgy.content.recipe.result.RecipeResult; +import com.klikli_dev.theurgy.registry.*; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.neoforged.neoforge.common.Tags; @@ -41,40 +39,40 @@ public void buildRecipes(BiConsumer recipeConsumer this.makeRecipe(Tags.Items.INGOTS_COPPER, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.COPPER.get()); this.makeRecipe(Tags.Items.INGOTS_GOLD, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.GOLD.get()); this.makeRecipe(Tags.Items.INGOTS_NETHERITE, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.NETHERITE.get()); - this.makeRecipe(this.tag("forge:ingots/uranium"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.URANIUM.get()); - this.makeRecipe(this.tag("forge:ingots/silver"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.SILVER.get()); - this.makeRecipe(this.tag("forge:ingots/azure_silver"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.AZURE_SILVER.get()); - this.makeRecipe(this.tag("forge:ingots/zinc"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.ZINC.get()); - this.makeRecipe(this.tag("forge:ingots/osmium"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.OSMIUM.get()); - this.makeRecipe(this.tag("forge:ingots/nickel"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.NICKEL.get()); - this.makeRecipe(this.tag("forge:ingots/lead"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.LEAD.get()); - this.makeRecipe(this.tag("forge:ingots/allthemodium"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.ALLTHEMODIUM.get()); - this.makeRecipe(this.tag("forge:ingots/unobtainium"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.UNOBTAINIUM.get()); - this.makeRecipe(this.tag("forge:ingots/iridium"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.IRIDIUM.get()); - this.makeRecipe(this.tag("forge:ingots/tin"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.TIN.get()); - this.makeRecipe(this.tag("forge:ingots/cinnabar"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.CINNABAR.get()); - this.makeRecipe(this.tag("forge:ingots/crimson_iron"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.CRIMSON_IRON.get()); - this.makeRecipe(this.tag("forge:ingots/platinum"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.PLATINUM.get()); - this.makeRecipe(this.tag("forge:ingots/vibranium"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.VIBRANIUM.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_URANIUM, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.URANIUM.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_SILVER, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.SILVER.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_AZURE_SILVER, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.AZURE_SILVER.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_ZINC, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.ZINC.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_OSMIUM, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.OSMIUM.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_NICKEL, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.NICKEL.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_LEAD, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.LEAD.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_ALLTHEMODIUM, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.ALLTHEMODIUM.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_UNOBTAINIUM, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.UNOBTAINIUM.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_IRIDIUM, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.IRIDIUM.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_TIN, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.TIN.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_CINNABAR, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.CINNABAR.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_CRIMSON_IRON, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.CRIMSON_IRON.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_PLATINUM, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.PLATINUM.get()); + this.makeRecipe(ItemTagRegistry.INGOTS_VIBRANIUM, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.VIBRANIUM.get()); //gems from sulfurs - this.makeRecipe(this.tag("forge:gems/diamond"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.DIAMOND.get()); - this.makeRecipe(this.tag("forge:gems/emerald"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.EMERALD.get()); - this.makeRecipe(this.tag("forge:gems/lapis"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.LAPIS.get()); - this.makeRecipe(this.tag("forge:gems/quartz"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.QUARTZ.get()); - this.makeRecipe(this.tag("forge:gems/amethyst"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.AMETHYST.get()); - this.makeRecipe(this.tag("forge:gems/prismarine"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.PRISMARINE.get()); - this.makeRecipe(this.tag("forge:gems/ruby"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.RUBY.get()); - this.makeRecipe(this.tag("forge:gems/apatite"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.APATITE.get()); - this.makeRecipe(this.tag("forge:gems/peridot"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.PERIDOT.get()); - this.makeRecipe(this.tag("forge:gems/fluorite"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.FLUORITE.get()); - this.makeRecipe(this.tag("forge:gems/sapphire"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.SAPPHIRE.get()); - this.makeRecipe(this.tag("forge:gems/sal_ammoniac"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.SAL_AMMONIAC.get()); + this.makeRecipe(Tags.Items.GEMS_DIAMOND, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.DIAMOND.get()); + this.makeRecipe(Tags.Items.GEMS_EMERALD, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.EMERALD.get()); + this.makeRecipe(Tags.Items.GEMS_LAPIS, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.LAPIS.get()); + this.makeRecipe(Tags.Items.GEMS_QUARTZ, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.QUARTZ.get()); + this.makeRecipe(Tags.Items.GEMS_AMETHYST, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.AMETHYST.get()); + this.makeRecipe(Tags.Items.GEMS_PRISMARINE, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.PRISMARINE.get()); + this.makeRecipe(ItemTagRegistry.GEMS_RUBY, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.RUBY.get()); + this.makeRecipe(ItemTagRegistry.GEMS_APATITE, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.APATITE.get()); + this.makeRecipe(ItemTagRegistry.GEMS_PERIDOT, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.PERIDOT.get()); + this.makeRecipe(ItemTagRegistry.GEMS_FLUORITE, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.FLUORITE.get()); + this.makeRecipe(ItemTagRegistry.GEMS_SAPPHIRE, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.SAPPHIRE.get()); + this.makeRecipe(ItemTagRegistry.GEMS_SAL_AMMONIAC, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.SAL_AMMONIAC.get()); //other common minerals from sulfur this.makeRecipe(Tags.Items.DUSTS_REDSTONE, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.REDSTONE.get()); this.makeRecipe(ItemTags.COALS, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.COAL.get()); - this.makeRecipe(this.tag("forge:gems/sulfur"), ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.SULFUR.get()); + this.makeRecipe(ItemTagRegistry.GEMS_SULFUR, ItemRegistry.MERCURY_SHARD.get(), SaltRegistry.MINERAL.get(), SulfurRegistry.SULFUR.get()); } public void makeRecipe(TagKey result, Item mercury, AlchemicalSaltItem salt, AlchemicalSulfurItem sulfur) { @@ -94,16 +92,12 @@ public void makeRecipe(String recipeName, TagKey result, Item mercury, Alc } public void makeRecipe(String recipeName, TagKey result, int resultCount, Item mercury, AlchemicalSaltItem salt, AlchemicalSulfurItem sulfur, int incubationTime) { - - var recipe = this.makeRecipeJson( - this.makeItemIngredient(this.locFor(mercury)), - this.makeItemIngredient(this.locFor(salt)), - this.makeItemIngredient(this.locFor(sulfur)), - this.makeTagResult(this.locFor(result), resultCount), incubationTime); - - var conditions = new JsonArray(); - conditions.add(this.makeTagNotEmptyCondition(result.location().toString())); - recipe.add("neoforge:conditions", conditions); + var recipe = new Builder(RecipeResult.of(result, resultCount)) + .mercury(mercury) + .salt(salt) + .sulfur(sulfur) + .time(incubationTime) + .build(); this.recipeConsumer.accept( this.modLoc(recipeName), @@ -128,14 +122,17 @@ public void makeRecipe(String recipeName, Item result, Item mercury, AlchemicalS } public void makeRecipe(String recipeName, Item result, int resultCount, Item mercury, AlchemicalSaltItem salt, AlchemicalSulfurItem sulfur, int incubationTime) { + var recipe = new Builder(RecipeResult.of(new ItemStack(result, resultCount))) + .mercury(mercury) + .salt(salt) + .sulfur(sulfur) + .time(incubationTime) + .build(); + this.recipeConsumer.accept( this.modLoc(recipeName), - this.makeRecipeJson( - this.makeItemIngredient(this.locFor(mercury)), - this.makeItemIngredient(this.locFor(salt)), - this.makeItemIngredient(this.locFor(sulfur)), - this.makeItemResult(this.locFor(result), resultCount), incubationTime)); - + recipe + ); } public JsonObject makeRecipeJson(JsonObject mercury, JsonObject salt, JsonObject sulfur, JsonObject result, int incubationTime) { @@ -153,4 +150,24 @@ public JsonObject makeRecipeJson(JsonObject mercury, JsonObject salt, JsonObject public String getName() { return "Incubation Recipes"; } + + protected static class Builder extends RecipeBuilder { + protected Builder(RecipeResult result) { + super(RecipeTypeRegistry.INCUBATION); + this.result(result); + this.time(TIME); + } + + public Builder salt(AlchemicalSaltItem item) { + return this.ingredient("salt", new ItemStack(item, 1)); + } + + public Builder mercury(Item item) { + return this.ingredient("mercury", new ItemStack(item, 1)); + } + + public Builder sulfur(AlchemicalSulfurItem item) { + return this.ingredient("sulfur", new ItemStack(item, 1)); + } + } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/IngredientWithCount.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/IngredientWithCount.java index bda43c93d..886f47819 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/IngredientWithCount.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/IngredientWithCount.java @@ -4,8 +4,12 @@ package com.klikli_dev.theurgy.datagen.recipe; +import com.klikli_dev.theurgy.util.TheurgyExtraStreamCodecs; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Codec; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.crafting.Ingredient; public record IngredientWithCount(Ingredient ingredient, int count) { @@ -17,4 +21,12 @@ public record IngredientWithCount(Ingredient ingredient, int count) { ); public static final Codec CODEC = PAIR_CODEC.xmap(pair -> new IngredientWithCount(pair.getSecond(), pair.getFirst()), iwc -> new Pair<>(iwc.count, iwc.ingredient)); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + Ingredient.CONTENTS_STREAM_CODEC, + iwc -> iwc.ingredient, + ByteBufCodecs.INT, + iwc -> iwc.count, + IngredientWithCount::new + ); } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/JsonRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/JsonRecipeProvider.java index 18cbc4efc..88458c7cd 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/JsonRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/JsonRecipeProvider.java @@ -5,23 +5,31 @@ package com.klikli_dev.theurgy.datagen.recipe; import com.google.common.collect.Sets; +import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import com.klikli_dev.theurgy.content.recipe.result.ItemRecipeResult; +import com.klikli_dev.theurgy.content.recipe.result.RecipeResult; +import com.klikli_dev.theurgy.content.recipe.result.TagRecipeResult; import com.mojang.serialization.JsonOps; +import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.data.CachedOutput; import net.minecraft.data.DataProvider; import net.minecraft.data.PackOutput; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtOps; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.material.Fluid; +import net.neoforged.neoforge.common.conditions.ICondition; +import net.neoforged.neoforge.common.conditions.NotCondition; +import net.neoforged.neoforge.common.conditions.TagEmptyCondition; import net.neoforged.neoforge.fluids.FluidStack; -import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -42,17 +50,18 @@ public JsonRecipeProvider(PackOutput packOutput, String modid) { /** * Creates a new recipe provider with the given sub path. - * - * @param packOutput - * @param recipeSubPath e.g. "calcination" */ public JsonRecipeProvider(PackOutput packOutput, String modid, String recipeSubPath) { this.recipePathProvider = packOutput.createPathProvider(PackOutput.Target.DATA_PACK, "recipes/" + recipeSubPath); this.modid = modid; } - protected String name(Item item) { - return BuiltInRegistries.ITEM.getKey(item).getPath(); + protected String name(ItemStack item) { + return this.name(item.getItem()); + } + + protected String name(ItemLike item) { + return BuiltInRegistries.ITEM.getKey(item.asItem()).getPath(); } protected String name(TagKey tag) { @@ -91,124 +100,170 @@ public ResourceLocation mcLoc(String name) { return new ResourceLocation(name); } - public ResourceLocation forgeLoc(String name) { - return new ResourceLocation("forge", name); - } + @Override + public @NotNull CompletableFuture run(@NotNull CachedOutput pOutput) { + Set set = Sets.newHashSet(); + List> futures = new ArrayList<>(); + this.recipeConsumer = (id, recipe) -> { + if (!recipe.has("category")) + recipe.addProperty("category", CraftingBookCategory.MISC.getSerializedName()); - public JsonObject makeFluidIngredient(ResourceLocation fluid) { - JsonObject jsonobject = new JsonObject(); - jsonobject.addProperty("fluid", fluid.toString()); - return jsonobject; + if (!set.add(id)) { + throw new IllegalStateException("Duplicate recipe " + id); + } else { + futures.add(DataProvider.saveStable(pOutput, recipe, this.recipePathProvider.json(id))); + } + }; + this.buildRecipes(this.recipeConsumer); + return CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new)); } - public JsonObject makeFluidTagIngredient(ResourceLocation tag) { - JsonObject jsonobject = new JsonObject(); - jsonobject.addProperty("tag", tag.toString()); - return jsonobject; - } + public abstract void buildRecipes(BiConsumer recipeConsumer); - public JsonObject makeTagIngredient(ResourceLocation tag) { - JsonObject jsonobject = new JsonObject(); - jsonobject.addProperty("tag", tag.toString()); - return jsonobject; - } + protected static abstract class RecipeBuilder> { - public JsonObject makeTagIngredient(ResourceLocation tag, int count) { - var jsonobject = this.makeTagIngredient(tag); - jsonobject.addProperty("count", count); - return jsonobject; - } + protected JsonObject recipe = new JsonObject(); - public JsonObject makeItemIngredient(ResourceLocation item) { - JsonObject jsonobject = new JsonObject(); - jsonobject.addProperty("item", item.toString()); - return jsonobject; - } + protected RecipeBuilder(Holder> type) { + //noinspection OptionalGetWithoutIsPresent + this.recipe.addProperty("type", type.unwrapKey().get().location().toString()); + } - public JsonObject makeItemIngredient(ResourceLocation item, int count) { - var jsonobject = this.makeItemIngredient(item); - jsonobject.addProperty("count", count); - return jsonobject; - } + public T getThis() { + //noinspection unchecked + return (T) this; + } + public T time(int time) { + this.recipe.addProperty("time", time); + return this.getThis(); + } - public JsonObject makeItemResult(ResourceLocation item) { - return this.makeItemResult(item, 1); - } + public T result(ItemStack result) { + return this.result("result", result); + } - public JsonObject makeItemResult(ResourceLocation item, int count) { - return this.makeItemResult(item, count, (JsonObject) null); - } + public T result(String propertyName, ItemStack result) { + return this.result(propertyName, new ItemRecipeResult(result)); + } - public JsonObject makeItemResult(ResourceLocation item, int count, @Nullable CompoundTag nbt) { - return this.makeItemResult(item, count, nbt == null ? null : (JsonObject) NbtOps.INSTANCE.convertTo(JsonOps.INSTANCE, nbt)); - } + public T result(RecipeResult result) { + return this.result("result", result); + } + + public T result(String propertyName, RecipeResult result) { + this.recipe.add(propertyName, RecipeResult.CODEC.encodeStart(JsonOps.INSTANCE, result).getOrThrow()); + + if (result instanceof TagRecipeResult tagRecipeResult) { + this.condition(new NotCondition(new TagEmptyCondition(tagRecipeResult.tag().location().toString()))); + } - public JsonObject makeItemResult(ResourceLocation item, int count, @Nullable JsonObject nbt) { - JsonObject jsonobject = new JsonObject(); - jsonobject.addProperty("item", item.toString()); - jsonobject.addProperty("count", count); - if (nbt != null) { - jsonobject.add("nbt", nbt); + return this.getThis(); } - return jsonobject; - } - public JsonObject makeTagResult(ResourceLocation item) { - return this.makeTagResult(item, 1); - } + public T result(FluidStack result) { + return this.result("result", result); + } - public JsonObject makeTagResult(ResourceLocation item, int count) { - return this.makeTagResult(item, count, (JsonObject) null); - } + public T result(String propertyName, FluidStack result) { + this.recipe.add(propertyName, FluidStack.CODEC.encodeStart(JsonOps.INSTANCE, result).getOrThrow()); + return this.getThis(); + } - public JsonObject makeTagResult(ResourceLocation tag, int count, @Nullable CompoundTag nbt) { - return this.makeTagResult(tag, count, nbt == null ? null : (JsonObject) NbtOps.INSTANCE.convertTo(JsonOps.INSTANCE, nbt)); - } + public T ingredient(TagKey tag) { + return this.ingredient(tag, -1); + } - public JsonObject makeTagResult(ResourceLocation tag, int count, @Nullable JsonObject nbt) { - JsonObject jsonobject = new JsonObject(); - jsonobject.addProperty("tag", tag.toString()); - jsonobject.addProperty("count", count); - if (nbt != null) { - jsonobject.add("nbt", nbt); + public T ingredient(TagKey tag, int count) { + return this.ingredient("ingredient", tag, count); } - return jsonobject; - } - public JsonObject makeFluidResult(FluidStack fluidStack) { - return FluidStack.CODEC.encodeStart(JsonOps.INSTANCE, fluidStack).getOrThrow(false, (s -> { - throw new IllegalStateException("Failed to encode fluid stack: " + s); - })).getAsJsonObject(); - } + public T ingredient(String propertyName, TagKey tag) { + return this.ingredient(propertyName, tag, -1); + } - public JsonObject makeTagNotEmptyCondition(String tag) { - var condition = new JsonObject(); - condition.addProperty("type", "neoforge:not"); - var value = new JsonObject(); - value.addProperty("type", "neoforge:tag_empty"); - value.addProperty("tag", tag); - condition.add("value", value); - return condition; - } + public T ingredient(String propertyName, TagKey tag, int count) { + JsonObject jsonobject = new JsonObject(); + jsonobject.addProperty("tag", tag.location().toString()); + if (count > -1) + jsonobject.addProperty("count", count); + this.recipe.add(propertyName, jsonobject); - @Override - public CompletableFuture run(CachedOutput pOutput) { - Set set = Sets.newHashSet(); - List> futures = new ArrayList<>(); - this.recipeConsumer = (id, recipe) -> { - if(!recipe.has("category")) - recipe.addProperty("category", CraftingBookCategory.MISC.getSerializedName()); + this.condition(new NotCondition(new TagEmptyCondition(tag.location().toString()))); - if (!set.add(id)) { - throw new IllegalStateException("Duplicate recipe " + id); - } else { - futures.add(DataProvider.saveStable(pOutput, recipe, this.recipePathProvider.json(id))); - } - }; - this.buildRecipes(this.recipeConsumer); - return CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new)); - } + return this.getThis(); + } - public abstract void buildRecipes(BiConsumer recipeConsumer); + public T ingredient(ItemStack stack) { + return this.ingredient("ingredient", stack); + } + + public T ingredient(Holder itemHolder) { + return this.ingredient("ingredient", itemHolder); + } + + public T ingredient(Item item) { + return this.ingredient("ingredient", item); + } + + public T ingredient(Item item, int count) { + return this.ingredient("ingredient", new ItemStack(item, count)); + } + + public T ingredient(Holder itemHolder, int count) { + return this.ingredient("ingredient", itemHolder, count); + } + + public T ingredient(String propertyName, Holder itemHolder, int count) { + return this.ingredient(propertyName, new ItemStack(itemHolder, count)); + } + + public T ingredient(String propertyName, ItemStack stack) { + JsonObject jsonobject = new JsonObject(); + //noinspection OptionalGetWithoutIsPresent + jsonobject.addProperty("item", stack.getItemHolder().unwrapKey().get().location().toString()); + jsonobject.addProperty("count", stack.getCount()); + this.recipe.add(propertyName, jsonobject); + return this.getThis(); + } + + public T ingredient(String propertyName, Fluid fluid) { + JsonObject jsonobject = new JsonObject(); + //noinspection OptionalGetWithoutIsPresent,deprecation + jsonobject.addProperty("fluid", fluid.builtInRegistryHolder().unwrapKey().get().location().toString()); + this.recipe.add(propertyName, jsonobject); + return this.getThis(); + } + + public T ingredient(String propertyName, Item item) { + //noinspection deprecation + return this.ingredient(propertyName, item.builtInRegistryHolder()); + } + + public T ingredient(String propertyName, Holder itemHolder) { + JsonObject jsonobject = new JsonObject(); + //noinspection OptionalGetWithoutIsPresent + jsonobject.addProperty("item", itemHolder.unwrapKey().get().location().toString()); + this.recipe.add(propertyName, jsonobject); + return this.getThis(); + } + + public T condition(ICondition condition) { + if (!this.recipe.has("conditions")) + this.recipe.add("conditions", new JsonArray()); + + this.recipe.getAsJsonArray("conditions").add( + ICondition.CODEC.encodeStart(JsonOps.INSTANCE, condition).getOrThrow() + ); + return this.getThis(); + } + + + public JsonObject build() { + if (!this.recipe.has("category")) + this.recipe.addProperty("category", CraftingBookCategory.MISC.getSerializedName()); + + return this.recipe; + } + } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/LiquefactionRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/LiquefactionRecipeProvider.java index fb5e1b78d..e04d5d74e 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/LiquefactionRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/LiquefactionRecipeProvider.java @@ -4,12 +4,12 @@ package com.klikli_dev.theurgy.datagen.recipe; -import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.klikli_dev.theurgy.Theurgy; -import com.klikli_dev.theurgy.TheurgyConstants; import com.klikli_dev.theurgy.content.recipe.LiquefactionRecipe; +import com.klikli_dev.theurgy.content.recipe.result.RecipeResult; import com.klikli_dev.theurgy.registry.FluidRegistry; +import com.klikli_dev.theurgy.registry.ItemTagRegistry; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.klikli_dev.theurgy.registry.SulfurRegistry; import net.minecraft.data.PackOutput; @@ -17,6 +17,7 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.material.Fluid; import net.neoforged.neoforge.common.Tags; @@ -48,79 +49,79 @@ public void buildRecipes(BiConsumer recipeConsumer this.makeRecipe(SulfurRegistry.GOLD.get(), 5, Tags.Items.ORES_GOLD, salAmmoniac, 15); //netherite has a custom recipe in vanilla, 4 scraps per ingot, so we only do 1 sulfur here to avoid insane duplication rates this.makeRecipe(SulfurRegistry.NETHERITE.get(), 1, Tags.Items.ORES_NETHERITE_SCRAP, salAmmoniac, 100); - this.makeRecipe(SulfurRegistry.URANIUM.get(), 5, this.tag("forge:ores/uranium"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.SILVER.get(), 5, this.tag("forge:ores/silver"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.AZURE_SILVER.get(), 5, this.tag("forge:ores/azure_silver"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.ZINC.get(), 5, this.tag("forge:ores/zinc"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.OSMIUM.get(), 5, this.tag("forge:ores/osmium"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.NICKEL.get(), 5, this.tag("forge:ores/nickel"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.LEAD.get(), 5, this.tag("forge:ores/lead"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.ALLTHEMODIUM.get(), 5, this.tag("forge:ores/allthemodium"), salAmmoniac, 100); - this.makeRecipe(SulfurRegistry.UNOBTAINIUM.get(), 5, this.tag("forge:ores/unobtainium"), salAmmoniac, 100); - this.makeRecipe(SulfurRegistry.IRIDIUM.get(), 5, this.tag("forge:ores/iridium"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.TIN.get(), 5, this.tag("forge:ores/tin"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.CINNABAR.get(), 5, this.tag("forge:ores/cinnabar"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.CRIMSON_IRON.get(), 5, this.tag("forge:ores/crimson_iron"), salAmmoniac, 20); - this.makeRecipe(SulfurRegistry.PLATINUM.get(), 5, this.tag("forge:ores/platinum"), salAmmoniac, 20); - this.makeRecipe(SulfurRegistry.VIBRANIUM.get(), 5, this.tag("forge:ores/vibranium"), salAmmoniac, 20); + this.makeRecipe(SulfurRegistry.URANIUM.get(), 5, ItemTagRegistry.ORES_URANIUM, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.SILVER.get(), 5, ItemTagRegistry.ORES_SILVER, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.AZURE_SILVER.get(), 5, ItemTagRegistry.ORES_AZURE_SILVER, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.ZINC.get(), 5, ItemTagRegistry.ORES_ZINC, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.OSMIUM.get(), 5, ItemTagRegistry.ORES_OSMIUM, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.NICKEL.get(), 5, ItemTagRegistry.ORES_NICKEL, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.LEAD.get(), 5, ItemTagRegistry.ORES_LEAD, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.ALLTHEMODIUM.get(), 5, ItemTagRegistry.ORES_ALLTHEMODIUM, salAmmoniac, 100); + this.makeRecipe(SulfurRegistry.UNOBTAINIUM.get(), 5, ItemTagRegistry.ORES_UNOBTAINIUM, salAmmoniac, 100); + this.makeRecipe(SulfurRegistry.IRIDIUM.get(), 5, ItemTagRegistry.ORES_IRIDIUM, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.TIN.get(), 5, ItemTagRegistry.ORES_TIN, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.CINNABAR.get(), 5, ItemTagRegistry.ORES_CINNABAR, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.CRIMSON_IRON.get(), 5, ItemTagRegistry.ORES_CRIMSON_IRON, salAmmoniac, 20); + this.makeRecipe(SulfurRegistry.PLATINUM.get(), 5, ItemTagRegistry.ORES_PLATINUM, salAmmoniac, 20); + this.makeRecipe(SulfurRegistry.VIBRANIUM.get(), 5, ItemTagRegistry.ORES_VIBRANIUM, salAmmoniac, 20); //Common Gems Ore Sulfurs this.makeRecipe(SulfurRegistry.DIAMOND.get(), 4, Tags.Items.ORES_DIAMOND, salAmmoniac, 100); this.makeRecipe(SulfurRegistry.EMERALD.get(), 4, Tags.Items.ORES_EMERALD, salAmmoniac, 100); this.makeRecipe(SulfurRegistry.LAPIS.get(), 12, Tags.Items.ORES_LAPIS, salAmmoniac, 10); this.makeRecipe(SulfurRegistry.QUARTZ.get(), 10, Tags.Items.ORES_QUARTZ, salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.RUBY.get(), 8, this.tag("forge:ores/ruby"), salAmmoniac, 15); - this.makeRecipe(SulfurRegistry.APATITE.get(), 9, this.tag("forge:ores/apatite"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.PERIDOT.get(), 8, this.tag("forge:ores/peridot"), salAmmoniac, 15); - this.makeRecipe(SulfurRegistry.FLUORITE.get(), 8, this.tag("forge:ores/fluorite"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.SAPPHIRE.get(), 8, this.tag("forge:ores/sapphire"), salAmmoniac, 15); - this.makeRecipe(SulfurRegistry.SAL_AMMONIAC.get(), 6, this.tag("forge:ores/sal_ammoniac"), salAmmoniac, 15); + this.makeRecipe(SulfurRegistry.RUBY.get(), 8, ItemTagRegistry.ORES_RUBY, salAmmoniac, 15); + this.makeRecipe(SulfurRegistry.APATITE.get(), 9, ItemTagRegistry.ORES_APATITE, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.PERIDOT.get(), 8, ItemTagRegistry.ORES_PERIDOT, salAmmoniac, 15); + this.makeRecipe(SulfurRegistry.FLUORITE.get(), 8, ItemTagRegistry.ORES_FLUORITE, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.SAPPHIRE.get(), 8, ItemTagRegistry.ORES_SAPPHIRE, salAmmoniac, 15); + this.makeRecipe(SulfurRegistry.SAL_AMMONIAC.get(), 6, ItemTagRegistry.ORES_SAL_AMMONIAC, salAmmoniac, 15); //Other Common Mineral Ores this.makeRecipe(SulfurRegistry.REDSTONE.get(), 9, Tags.Items.ORES_REDSTONE, salAmmoniac, 10); this.makeRecipe(SulfurRegistry.COAL.get(), 4, Tags.Items.ORES_COAL, salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.SULFUR.get(), 6, this.tag("forge:ores/sulfur"), salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.SULFUR.get(), 6, ItemTagRegistry.ORES_SULFUR, salAmmoniac, 10); //Common Raw Materials Sulfurs this.makeRecipe(SulfurRegistry.IRON.get(), 3, Tags.Items.RAW_MATERIALS_IRON, salAmmoniac, 10); this.makeRecipe(SulfurRegistry.COPPER.get(), 3, Tags.Items.RAW_MATERIALS_COPPER, salAmmoniac, 10); this.makeRecipe(SulfurRegistry.GOLD.get(), 3, Tags.Items.RAW_MATERIALS_GOLD, salAmmoniac, 15); - this.makeRecipe(SulfurRegistry.URANIUM.get(), 3, this.tag("forge:raw_materials/uranium"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.AZURE_SILVER.get(), 3, this.tag("forge:raw_materials/azure_silver"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.SILVER.get(), 3, this.tag("forge:raw_materials/silver"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.ZINC.get(), 3, this.tag("forge:raw_materials/zinc"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.OSMIUM.get(), 3, this.tag("forge:raw_materials/osmium"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.NICKEL.get(), 3, this.tag("forge:raw_materials/nickel"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.LEAD.get(), 3, this.tag("forge:raw_materials/lead"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.ALLTHEMODIUM.get(), 3, this.tag("forge:raw_materials/allthemodium"), salAmmoniac, 100); - this.makeRecipe(SulfurRegistry.UNOBTAINIUM.get(), 3, this.tag("forge:raw_materials/unobtainium"), salAmmoniac, 100); - this.makeRecipe(SulfurRegistry.IRIDIUM.get(), 3, this.tag("forge:raw_materials/iridium"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.TIN.get(), 3, this.tag("forge:raw_materials/tin"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.CINNABAR.get(), 3, this.tag("forge:raw_materials/cinnabar"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.CRIMSON_IRON.get(), 3, this.tag("forge:raw_materials/crimson_iron"), salAmmoniac, 20); - this.makeRecipe(SulfurRegistry.PLATINUM.get(), 3, this.tag("forge:raw_materials/platinum"), salAmmoniac, 20); - this.makeRecipe(SulfurRegistry.VIBRANIUM.get(), 3, this.tag("forge:raw_materials/vibranium"), salAmmoniac, 20); + this.makeRecipe(SulfurRegistry.URANIUM.get(), 3, ItemTagRegistry.RAW_MATERIALS_URANIUM, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.AZURE_SILVER.get(), 3, ItemTagRegistry.RAW_MATERIALS_AZURE_SILVER, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.SILVER.get(), 3, ItemTagRegistry.RAW_MATERIALS_SILVER, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.ZINC.get(), 3, ItemTagRegistry.RAW_MATERIALS_ZINC, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.OSMIUM.get(), 3, ItemTagRegistry.RAW_MATERIALS_OSMIUM, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.NICKEL.get(), 3, ItemTagRegistry.RAW_MATERIALS_NICKEL, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.LEAD.get(), 3, ItemTagRegistry.RAW_MATERIALS_LEAD, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.ALLTHEMODIUM.get(), 3, ItemTagRegistry.RAW_MATERIALS_ALLTHEMODIUM, salAmmoniac, 100); + this.makeRecipe(SulfurRegistry.UNOBTAINIUM.get(), 3, ItemTagRegistry.RAW_MATERIALS_UNOBTAINIUM, salAmmoniac, 100); + this.makeRecipe(SulfurRegistry.IRIDIUM.get(), 3, ItemTagRegistry.RAW_MATERIALS_IRIDIUM, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.TIN.get(), 3, ItemTagRegistry.RAW_MATERIALS_TIN, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.CINNABAR.get(), 3, ItemTagRegistry.RAW_MATERIALS_CINNABAR, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.CRIMSON_IRON.get(), 3, ItemTagRegistry.RAW_MATERIALS_CRIMSON_IRON, salAmmoniac, 20); + this.makeRecipe(SulfurRegistry.PLATINUM.get(), 3, ItemTagRegistry.RAW_MATERIALS_PLATINUM, salAmmoniac, 20); + this.makeRecipe(SulfurRegistry.VIBRANIUM.get(), 3, ItemTagRegistry.RAW_MATERIALS_VIBRANIUM, salAmmoniac, 20); //Common Metal Ingots sulfurs this.makeRecipe(SulfurRegistry.IRON.get(), 1, Tags.Items.INGOTS_IRON, salAmmoniac, 10); this.makeRecipe(SulfurRegistry.COPPER.get(), 1, Tags.Items.INGOTS_COPPER, salAmmoniac, 10); this.makeRecipe(SulfurRegistry.GOLD.get(), 1, Tags.Items.INGOTS_GOLD, salAmmoniac, 15); this.makeRecipe(SulfurRegistry.NETHERITE.get(), 1, Tags.Items.INGOTS_NETHERITE, salAmmoniac, 100); - this.makeRecipe(SulfurRegistry.URANIUM.get(), 1, this.tag("forge:ingots/uranium"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.SILVER.get(), 1, this.tag("forge:ingots/silver"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.AZURE_SILVER.get(), 1, this.tag("forge:ingots/azure_silver"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.ZINC.get(), 1, this.tag("forge:ingots/zinc"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.OSMIUM.get(), 1, this.tag("forge:ingots/osmium"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.NICKEL.get(), 1, this.tag("forge:ingots/nickel"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.LEAD.get(), 1, this.tag("forge:ingots/lead"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.ALLTHEMODIUM.get(), 1, this.tag("forge:ingots/allthemodium"), salAmmoniac, 100); - this.makeRecipe(SulfurRegistry.UNOBTAINIUM.get(), 1, this.tag("forge:ingots/unobtainium"), salAmmoniac, 100); - this.makeRecipe(SulfurRegistry.IRIDIUM.get(), 1, this.tag("forge:ingots/iridium"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.TIN.get(), 1, this.tag("forge:ingots/tin"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.CINNABAR.get(), 1, this.tag("forge:ingots/cinnabar"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.CRIMSON_IRON.get(), 1, this.tag("forge:ingots/crimson_iron"), salAmmoniac, 20); - this.makeRecipe(SulfurRegistry.PLATINUM.get(), 1, this.tag("forge:ingots/platinum"), salAmmoniac, 20); - this.makeRecipe(SulfurRegistry.VIBRANIUM.get(), 1, this.tag("forge:ingots/vibranium"), salAmmoniac, 20); + this.makeRecipe(SulfurRegistry.URANIUM.get(), 1, ItemTagRegistry.INGOTS_URANIUM, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.SILVER.get(), 1, ItemTagRegistry.INGOTS_SILVER, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.AZURE_SILVER.get(), 1, ItemTagRegistry.INGOTS_AZURE_SILVER, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.ZINC.get(), 1, ItemTagRegistry.INGOTS_ZINC, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.OSMIUM.get(), 1, ItemTagRegistry.INGOTS_OSMIUM, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.NICKEL.get(), 1, ItemTagRegistry.INGOTS_NICKEL, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.LEAD.get(), 1, ItemTagRegistry.INGOTS_LEAD, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.ALLTHEMODIUM.get(), 1, ItemTagRegistry.INGOTS_ALLTHEMODIUM, salAmmoniac, 100); + this.makeRecipe(SulfurRegistry.UNOBTAINIUM.get(), 1, ItemTagRegistry.INGOTS_UNOBTAINIUM, salAmmoniac, 100); + this.makeRecipe(SulfurRegistry.IRIDIUM.get(), 1, ItemTagRegistry.INGOTS_IRIDIUM, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.TIN.get(), 1, ItemTagRegistry.INGOTS_TIN, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.CINNABAR.get(), 1, ItemTagRegistry.INGOTS_CINNABAR, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.CRIMSON_IRON.get(), 1, ItemTagRegistry.INGOTS_CRIMSON_IRON, salAmmoniac, 20); + this.makeRecipe(SulfurRegistry.PLATINUM.get(), 1, ItemTagRegistry.INGOTS_PLATINUM, salAmmoniac, 20); + this.makeRecipe(SulfurRegistry.VIBRANIUM.get(), 1, ItemTagRegistry.INGOTS_VIBRANIUM, salAmmoniac, 20); //Common Gems Sulfurs this.makeRecipe(SulfurRegistry.DIAMOND.get(), 1, Tags.Items.GEMS_DIAMOND, salAmmoniac, 100); @@ -129,17 +130,17 @@ public void buildRecipes(BiConsumer recipeConsumer this.makeRecipe(SulfurRegistry.QUARTZ.get(), 1, Tags.Items.GEMS_QUARTZ, salAmmoniac, 10); this.makeRecipe(SulfurRegistry.AMETHYST.get(), 1, Tags.Items.GEMS_AMETHYST, salAmmoniac, 10); this.makeRecipe(SulfurRegistry.PRISMARINE.get(), 1, Tags.Items.GEMS_PRISMARINE, salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.RUBY.get(), 1, this.tag("forge:gems/ruby"), salAmmoniac, 15); - this.makeRecipe(SulfurRegistry.APATITE.get(), 1, this.tag("forge:gems/apatite"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.PERIDOT.get(), 1, this.tag("forge:gems/peridot"), salAmmoniac, 15); - this.makeRecipe(SulfurRegistry.FLUORITE.get(), 1, this.tag("forge:gems/fluorite"), salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.SAPPHIRE.get(), 1, this.tag("forge:gems/sapphire"), salAmmoniac, 15); - this.makeRecipe(SulfurRegistry.SAL_AMMONIAC.get(), 1, this.tag("forge:gems/sal_ammoniac"), salAmmoniac, 15); + this.makeRecipe(SulfurRegistry.RUBY.get(), 1, ItemTagRegistry.GEMS_RUBY, salAmmoniac, 15); + this.makeRecipe(SulfurRegistry.APATITE.get(), 1, ItemTagRegistry.GEMS_APATITE, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.PERIDOT.get(), 1, ItemTagRegistry.GEMS_PERIDOT, salAmmoniac, 15); + this.makeRecipe(SulfurRegistry.FLUORITE.get(), 1, ItemTagRegistry.GEMS_FLUORITE, salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.SAPPHIRE.get(), 1, ItemTagRegistry.GEMS_SAPPHIRE, salAmmoniac, 15); + this.makeRecipe(SulfurRegistry.SAL_AMMONIAC.get(), 1, ItemTagRegistry.GEMS_SAL_AMMONIAC, salAmmoniac, 15); //Other Common Minerals Sulfurs this.makeRecipe(SulfurRegistry.REDSTONE.get(), 1, Tags.Items.DUSTS_REDSTONE, salAmmoniac, 10); this.makeRecipe(SulfurRegistry.COAL.get(), 1, ItemTags.COALS, salAmmoniac, 10); - this.makeRecipe(SulfurRegistry.SULFUR.get(), 1, this.tag("forge:gems/sulfur"), salAmmoniac, 10); + this.makeRecipe(SulfurRegistry.SULFUR.get(), 1, ItemTagRegistry.GEMS_SULFUR, salAmmoniac, 10); } @@ -156,16 +157,18 @@ public void makeRecipe(Item sulfur, int resultCount, Item ingredient, Fluid solv } public void makeRecipe(Item sulfur, int resultCount, Item ingredient, Fluid solvent, int solventAmount, int liquefactionTime) { + var name = this.name(sulfur); - var nbt = this.makeSulfurNbt(ingredient); - this.recipeConsumer.accept( - this.modLoc(this.name(sulfur)), - this.makeRecipeJson( - this.makeItemIngredient(this.locFor(ingredient)), - this.makeFluidIngredient(this.locFor(solvent)), - solventAmount, - this.makeItemResult(this.locFor(sulfur), resultCount, nbt), liquefactionTime)); + var recipe = new Builder(RecipeResult.of(new ItemStack(sulfur, resultCount))) + .solvent(solvent, solventAmount) + .ingredient(ingredient) + .time(liquefactionTime) + .build(); + this.recipeConsumer.accept( + this.modLoc(name), + recipe + ); } public void makeRecipe(Item sulfurName, TagKey ingredient, Fluid solvent, int solventAmount) { @@ -181,52 +184,35 @@ public void makeRecipe(Item sulfur, int resultCount, TagKey ingredient, Fl } public void makeRecipe(Item sulfur, int resultCount, TagKey ingredient, Fluid solvent, int solventAmount, int liquefactionTime) { - var name = this.name(sulfur) + "_from_" + this.name(ingredient); - var nbt = this.makeSulfurNbt(ingredient); - var recipe = this.makeRecipeJson( - this.makeTagIngredient(ingredient.location()), - this.makeFluidIngredient(this.locFor(solvent)), - solventAmount, - this.makeItemResult(this.locFor(sulfur), resultCount, nbt), liquefactionTime); - var conditions = new JsonArray(); - conditions.add(this.makeTagNotEmptyCondition(ingredient.location().toString())); - recipe.add("neoforge:conditions", conditions); + var recipe = new Builder(RecipeResult.of(new ItemStack(sulfur, resultCount))) + .solvent(solvent, solventAmount) + .ingredient(ingredient) + .time(liquefactionTime) + .build(); this.recipeConsumer.accept( this.modLoc(name), recipe ); - - } - - - public JsonObject makeSulfurNbt(Item ingredient) { - var nbt = new JsonObject(); - nbt.addProperty(TheurgyConstants.Nbt.SULFUR_SOURCE_ID, this.locFor(ingredient).toString()); - return nbt; - } - - public JsonObject makeSulfurNbt(TagKey ingredient) { - var nbt = new JsonObject(); - nbt.addProperty(TheurgyConstants.Nbt.SULFUR_SOURCE_ID, "#" + ingredient.location()); - return nbt; - } - - public JsonObject makeRecipeJson(JsonObject ingredient, JsonObject solvent, int solventAmount, JsonObject result, int liquefactionTime) { - var recipe = new JsonObject(); - recipe.addProperty("type", RecipeTypeRegistry.LIQUEFACTION.getId().toString()); - recipe.add("solvent", solvent); - recipe.addProperty("solvent_amount", solventAmount); - recipe.add("ingredient", ingredient); - recipe.add("result", result); - recipe.addProperty("time", liquefactionTime); - return recipe; } @Override public String getName() { return "Liquefaction Recipes"; } + + protected static class Builder extends RecipeBuilder { + protected Builder(RecipeResult result) { + super(RecipeTypeRegistry.LIQUEFACTION); + this.result(result); + this.time(TIME); + } + + public Builder solvent(Fluid fluid, int amount) { + this.recipe.addProperty("solventAmount", amount); + return this.ingredient("solvent", fluid); + } + } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ReformationRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ReformationRecipeProvider.java index 9af45538a..9d69e84f6 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ReformationRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ReformationRecipeProvider.java @@ -15,10 +15,15 @@ import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; import com.klikli_dev.theurgy.registry.SulfurRegistry; import com.mojang.datafixers.util.Pair; +import net.minecraft.core.Holder; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; +import net.neoforged.neoforge.common.conditions.NotCondition; +import net.neoforged.neoforge.common.conditions.TagEmptyCondition; import java.util.*; import java.util.function.BiConsumer; @@ -208,20 +213,15 @@ public void makeTagRecipe(Item result, int resultCount, List> sourc public void makeTagRecipe(String recipeName, Item result, int resultCount, List> sources, int mercuryFlux, int reformationTime) { - var recipe = this.makeRecipeJson( - sources.stream().map(s -> this.makeTagIngredient(this.locFor(s))).toList(), - this.makeItemIngredient(this.locFor(result)), - mercuryFlux, - this.makeItemResult(this.locFor(result), resultCount), - reformationTime); - - var conditions = new JsonArray(); - for (var source : sources) { - conditions.add(this.makeTagNotEmptyCondition(source.location().toString())); - } - recipe.add("neoforge:conditions", conditions); - this.recipeCache.put(this.modLoc(recipeName), recipe); + var recipe = new Builder(new ItemStack(result, resultCount)) + .target(result) + .mercuryFlux(mercuryFlux) + .time(reformationTime); + + sources.forEach(s -> recipe.sources(s, 1)); + + this.recipeCache.put(this.modLoc(recipeName), recipe.build()); } public void makeRecipe(Item result, Item source, int mercuryFlux) { @@ -233,34 +233,82 @@ public void makeRecipe(Item result, int resultCount, Item source, int sourceCoun } public void makeRecipe(String recipeName, Item result, int resultCount, List sources, int mercuryFlux, int reformationTime) { - this.recipeCache.put( - this.modLoc(recipeName), - this.makeRecipeJson( - sources.stream().map(s -> this.makeItemIngredient(this.locFor(s))).toList(), - this.makeItemIngredient(this.locFor(result)), - mercuryFlux, - this.makeItemResult(this.locFor(result), resultCount), - reformationTime)); - } - public JsonObject makeRecipeJson(List sources, JsonObject target, int mercuryFlux, JsonObject result, int reformationTime) { - var sourcesArray = new JsonArray(); - for (var source : sources) { - sourcesArray.add(source); - } + var recipe = new Builder(new ItemStack(result, resultCount)) + .target(result) + .mercuryFlux(mercuryFlux) + .time(reformationTime); + + sources.forEach(recipe::sources); - var recipe = new JsonObject(); - recipe.addProperty("type", RecipeTypeRegistry.REFORMATION.getId().toString()); - recipe.add("sources", sourcesArray); - recipe.add("target", target); - recipe.addProperty("mercury_flux", mercuryFlux); - recipe.add("result", result); - recipe.addProperty("time", reformationTime); - return recipe; + this.recipeCache.put(this.modLoc(recipeName), recipe.build()); } @Override public String getName() { return "Reformation Recipes"; } + + + protected static class Builder extends RecipeBuilder { + protected Builder(ItemStack result) { + super(RecipeTypeRegistry.REFORMATION); + this.result(result); + this.time(TIME); + } + + public Builder target(Item item) { + return this.ingredient("target", item); + } + + public Builder mercuryFlux(int mercuryFlux) { + this.recipe.addProperty("mercuryFlux", mercuryFlux); + return this.getThis(); + } + + public Builder sources(ItemLike item) { + //noinspection deprecation + return this.sources(item.asItem().builtInRegistryHolder()); + } + + public Builder sources(ItemLike item, int count) { + //noinspection deprecation + return this.sources(item.asItem().builtInRegistryHolder(), 1); + } + + public Builder sources(Holder itemHolder) { + return this.sources(itemHolder, 1); + } + + public Builder sources(Holder itemHolder, int count) { + if (!this.recipe.has("sources")) + this.recipe.add("sources", new JsonArray()); + + JsonObject jsonobject = new JsonObject(); + //noinspection OptionalGetWithoutIsPresent + jsonobject.addProperty("item", itemHolder.unwrapKey().get().location().toString()); + jsonobject.addProperty("count", count); + + this.recipe.getAsJsonArray("sources").add(jsonobject); + + return this.getThis(); + } + + + public Builder sources(TagKey tag, int count) { + if (!this.recipe.has("sources")) + this.recipe.add("sources", new JsonArray()); + + JsonObject jsonobject = new JsonObject(); + jsonobject.addProperty("tag", tag.location().toString()); + if (count > -1) + jsonobject.addProperty("count", count); + + this.recipe.getAsJsonArray("sources").add(jsonobject); + + this.condition(new NotCondition(new TagEmptyCondition(tag.location().toString()))); + + return this.getThis(); + } + } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ShapedRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ShapedRecipeProvider.java index a7c9b1fb8..1488798f0 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ShapedRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ShapedRecipeProvider.java @@ -7,25 +7,29 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.klikli_dev.theurgy.Theurgy; -import com.klikli_dev.theurgy.TheurgyConstants; import com.klikli_dev.theurgy.content.item.divinationrod.DivinationRodItem; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; import com.klikli_dev.theurgy.registry.ItemRegistry; import com.klikli_dev.theurgy.registry.ItemTagRegistry; +import com.mojang.serialization.JsonOps; +import net.minecraft.core.Holder; +import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraft.world.item.Tier; +import net.minecraft.world.item.Tiers; import net.minecraft.world.item.crafting.CraftingBookCategory; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; import net.neoforged.neoforge.common.Tags; -import net.neoforged.neoforge.common.TierSortingRegistry; -import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; import java.util.function.BiConsumer; @@ -38,110 +42,112 @@ public ShapedRecipeProvider(PackOutput packOutput) { @Override public void buildRecipes(BiConsumer recipeConsumer) { //Divination Rods - this.makeRecipe("divination_rod_t1", new RecipeBuilder( - ItemRegistry.DIVINATION_ROD_T1.get(), 1, this.makeDivinationRodSettings(ItemRegistry.DIVINATION_ROD_T1.get())) + this.makeRecipe(new ShapedRecipeBuilder( + ItemRegistry.DIVINATION_ROD_T1.get(), 1, this.makeDivinationRodSettings(ItemRegistry.DIVINATION_ROD_T1.get()).build()) .pattern(" GR") .pattern(" RG") .pattern("R ") - .define('G', Tags.Items.GLASS) + .define('G', Tags.Items.GLASS_BLOCKS) .define('R', Tags.Items.RODS_WOODEN) ); var amethystDivinationRodSettings = this.makeDivinationRodSettings(ItemRegistry.AMETHYST_DIVINATION_ROD.get()); - amethystDivinationRodSettings.addProperty(TheurgyConstants.Nbt.Divination.LINKED_BLOCK_ID, "minecraft:budding_amethyst"); - this.makeRecipe("amethyst_divination_rod", new RecipeBuilder( - ItemRegistry.AMETHYST_DIVINATION_ROD.get(), 1, amethystDivinationRodSettings) + //noinspection deprecation + amethystDivinationRodSettings.set(DataComponentRegistry.DIVINATION_LINKED_BLOCK.get(), Blocks.BUDDING_AMETHYST.builtInRegistryHolder()); + + this.makeRecipe(new ShapedRecipeBuilder( + ItemRegistry.AMETHYST_DIVINATION_ROD.get(), 1, amethystDivinationRodSettings.build()) .pattern(" GP") .pattern(" RG") .pattern("R ") .define('P', Tags.Items.DYES_PURPLE) - .define('G', Tags.Items.GLASS) + .define('G', Tags.Items.GLASS_BLOCKS) .define('R', Tags.Items.RODS_WOODEN) ); - this.makeRecipe("sulfur_attuned_divination_rod_abundant", new RecipeBuilder( - ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_ABUNDANT.get(), 1, this.makeDivinationRodSettings(ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_ABUNDANT.get()), "theurgy:divination_rod") + this.makeRecipe(new ShapedRecipeBuilder("theurgy:divination_rod", + ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_ABUNDANT.get(), 1, this.makeDivinationRodSettings(ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_ABUNDANT.get()).build()) .pattern(" GS") .pattern(" RG") .pattern("R ") - .define('G', Tags.Items.GLASS) + .define('G', Tags.Items.GLASS_BLOCKS) .define('R', Tags.Items.RODS_WOODEN) .define('S', ItemTagRegistry.ALCHEMICAL_SULFURS_ABUNDANT) ); - this.makeRecipe("sulfur_attuned_divination_rod_common", new RecipeBuilder( - ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_COMMON.get(), 1, this.makeDivinationRodSettings(ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_COMMON.get()), "theurgy:divination_rod") + this.makeRecipe(new ShapedRecipeBuilder("theurgy:divination_rod", + ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_COMMON.get(), 1, this.makeDivinationRodSettings(ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_COMMON.get()).build()) .pattern(" GS") .pattern(" RG") .pattern("R ") - .define('G', Tags.Items.GLASS) + .define('G', Tags.Items.GLASS_BLOCKS) .define('R', Tags.Items.RODS_WOODEN) .define('S', ItemTagRegistry.ALCHEMICAL_SULFURS_COMMON) ); - this.makeRecipe("divination_rod_t2", new RecipeBuilder( - ItemRegistry.DIVINATION_ROD_T2.get(), 1, this.makeDivinationRodSettings(ItemRegistry.DIVINATION_ROD_T2.get())) + this.makeRecipe(new ShapedRecipeBuilder( + ItemRegistry.DIVINATION_ROD_T2.get(), 1, this.makeDivinationRodSettings(ItemRegistry.DIVINATION_ROD_T2.get()).build()) .pattern(" GM") .pattern(" AG") .pattern("R ") - .define('G', Tags.Items.GLASS) + .define('G', Tags.Items.GLASS_BLOCKS) .define('R', Tags.Items.RODS_WOODEN) .define('A', Tags.Items.GEMS_AMETHYST) .define('M', Tags.Items.NUGGETS_GOLD) ); - this.makeRecipe("sulfur_attuned_divination_rod_rare", new RecipeBuilder( - ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_RARE.get(), 1, this.makeDivinationRodSettings(ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_RARE.get()), "theurgy:divination_rod") + this.makeRecipe(new ShapedRecipeBuilder( + "theurgy:divination_rod", ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_RARE.get(), 1, this.makeDivinationRodSettings(ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_RARE.get()).build()) .pattern(" GS") .pattern(" AG") .pattern("R ") - .define('G', Tags.Items.GLASS) + .define('G', Tags.Items.GLASS_BLOCKS) .define('R', Tags.Items.RODS_WOODEN) .define('A', Tags.Items.GEMS_AMETHYST) .define('S', ItemTagRegistry.ALCHEMICAL_SULFURS_RARE) ); - this.makeRecipe("divination_rod_t3", new RecipeBuilder( - ItemRegistry.DIVINATION_ROD_T3.get(), 1, this.makeDivinationRodSettings(ItemRegistry.DIVINATION_ROD_T3.get())) + this.makeRecipe(new ShapedRecipeBuilder( + ItemRegistry.DIVINATION_ROD_T3.get(), 1, this.makeDivinationRodSettings(ItemRegistry.DIVINATION_ROD_T3.get()).build()) .pattern(" GD") .pattern(" QG") .pattern("A ") - .define('G', Tags.Items.GLASS) + .define('G', Tags.Items.GLASS_BLOCKS) .define('Q', Tags.Items.GEMS_QUARTZ) .define('D', Tags.Items.GEMS_DIAMOND) .define('A', Tags.Items.GEMS_AMETHYST) ); - this.makeRecipe("sulfur_attuned_divination_rod_precious", new RecipeBuilder( - ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_PRECIOUS.get(), 1, this.makeDivinationRodSettings(ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_PRECIOUS.get()), "theurgy:divination_rod") + this.makeRecipe(new ShapedRecipeBuilder("theurgy:divination_rod", + ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_PRECIOUS.get(), 1, this.makeDivinationRodSettings(ItemRegistry.SULFUR_ATTUNED_DIVINATION_ROD_PRECIOUS.get()).build()) .pattern(" GS") .pattern(" DG") .pattern("A ") - .define('G', Tags.Items.GLASS) + .define('G', Tags.Items.GLASS_BLOCKS) .define('D', Tags.Items.GEMS_DIAMOND) .define('A', Tags.Items.GEMS_AMETHYST) .define('S', ItemTagRegistry.ALCHEMICAL_SULFURS_PRECIOUS) ); - this.makeRecipe("divination_rod_t4", new RecipeBuilder( - ItemRegistry.DIVINATION_ROD_T4.get(), 1, this.makeDivinationRodSettings(ItemRegistry.DIVINATION_ROD_T4.get())) + this.makeRecipe(new ShapedRecipeBuilder( + ItemRegistry.DIVINATION_ROD_T4.get(), 1, this.makeDivinationRodSettings(ItemRegistry.DIVINATION_ROD_T4.get()).build()) .pattern(" GM") .pattern(" RG") .pattern("A ") - .define('G', Tags.Items.GLASS) + .define('G', Tags.Items.GLASS_BLOCKS) .define('R', Tags.Items.RODS_BLAZE) .define('M', Tags.Items.ORES_NETHERITE_SCRAP) .define('A', Tags.Items.GEMS_AMETHYST) ); - this.makeRecipe(ItemRegistry.PYROMANTIC_BRAZIER.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.PYROMANTIC_BRAZIER.get(), 1) .pattern("CCC") .pattern("CSC") .pattern("SSS") .define('C', Tags.Items.INGOTS_COPPER) - .define('S', Tags.Items.STONE) + .define('S', Tags.Items.STONES) ); - this.makeRecipe(ItemRegistry.CALCINATION_OVEN.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.CALCINATION_OVEN.get(), 1) .pattern(" I ") .pattern("ICI") @@ -151,37 +157,37 @@ public void buildRecipes(BiConsumer recipeConsumer ); - this.makeRecipe(ItemRegistry.DISTILLER.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.DISTILLER.get(), 1) .pattern(" I ") .pattern("ICI") .pattern("SSS") .define('C', Tags.Items.STORAGE_BLOCKS_COPPER) .define('I', Tags.Items.INGOTS_IRON) - .define('S', Tags.Items.STONE) + .define('S', Tags.Items.STONES) ); - this.makeRecipe(ItemRegistry.LIQUEFACTION_CAULDRON.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.LIQUEFACTION_CAULDRON.get(), 1) .pattern("CCC") .pattern("CBC") .pattern("SSS") .define('C', Tags.Items.INGOTS_COPPER) .define('B', Items.CAULDRON) - .define('S', Tags.Items.STONE) + .define('S', Tags.Items.STONES) ); - this.makeRecipe(ItemRegistry.SAL_AMMONIAC_ACCUMULATOR.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.SAL_AMMONIAC_ACCUMULATOR.get(), 1) .pattern("SSS") .pattern("III") .pattern("R R") .define('R', Tags.Items.RODS_WOODEN) .define('I', Tags.Items.INGOTS_IRON) - .define('S', Tags.Items.STONE) + .define('S', Tags.Items.STONES) ); - this.makeRecipe(ItemRegistry.SAL_AMMONIAC_TANK.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.SAL_AMMONIAC_TANK.get(), 1) .pattern("ICI") .pattern("ICI") @@ -191,7 +197,7 @@ public void buildRecipes(BiConsumer recipeConsumer .define('I', Tags.Items.INGOTS_IRON) ); - this.makeRecipe(ItemRegistry.INCUBATOR.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.INCUBATOR.get(), 1) .pattern("PSP") .pattern("GGG") @@ -199,85 +205,85 @@ public void buildRecipes(BiConsumer recipeConsumer .define('P', ItemTags.PLANKS) .define('C', Tags.Items.INGOTS_COPPER) .define('G', Tags.Items.INGOTS_GOLD) - .define('S', Tags.Items.STONE) + .define('S', Tags.Items.STONES) ); - this.makeRecipe(ItemRegistry.INCUBATOR_MERCURY_VESSEL.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.INCUBATOR_MERCURY_VESSEL.get(), 1) .pattern("cMc") .pattern("c c") .pattern("SSS") .define('c', Tags.Items.INGOTS_COPPER) .define('M', ItemTagRegistry.ALCHEMICAL_MERCURIES) - .define('S', Tags.Items.STONE) + .define('S', Tags.Items.STONES) ); - this.makeRecipe(ItemRegistry.INCUBATOR_SALT_VESSEL.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.INCUBATOR_SALT_VESSEL.get(), 1) .pattern("csc") .pattern("c c") .pattern("SSS") .define('c', Tags.Items.INGOTS_COPPER) .define('s', ItemTagRegistry.ALCHEMICAL_SALTS) - .define('S', Tags.Items.STONE) + .define('S', Tags.Items.STONES) ); - this.makeRecipe(ItemRegistry.INCUBATOR_SULFUR_VESSEL.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.INCUBATOR_SULFUR_VESSEL.get(), 1) .pattern("csc") .pattern("c c") .pattern("SSS") .define('c', Tags.Items.INGOTS_COPPER) .define('s', ItemTagRegistry.ALCHEMICAL_SULFURS) - .define('S', Tags.Items.STONE) + .define('S', Tags.Items.STONES) ); - this.makeRecipe(ItemRegistry.MERCURY_CATALYST.get(), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.MERCURY_CATALYST.get(), 1) .pattern("imi") .pattern("gQg") .pattern("igi") - .define('Q', Tags.Items.STORAGE_BLOCKS_QUARTZ) + .define('Q', Items.QUARTZ_BLOCK) .define('g', Tags.Items.INGOTS_GOLD) .define('i', Tags.Items.INGOTS_IRON) .define('m', ItemTagRegistry.ALCHEMICAL_MERCURIES) ); - this.makeRecipe(this.name(ItemRegistry.CALORIC_FLUX_EMITTER.get()) + "_from_campfire", new RecipeBuilder( + this.makeRecipe(this.name(ItemRegistry.CALORIC_FLUX_EMITTER.get()) + "_from_campfire", new ShapedRecipeBuilder( ItemRegistry.CALORIC_FLUX_EMITTER.get(), 1) .pattern(" h ") .pattern("gmg") .pattern("sss") .define('h', Items.CAMPFIRE) .define('g', Tags.Items.INGOTS_GOLD) - .define('s', Tags.Items.STONE) + .define('s', Tags.Items.STONES) .define('m', ItemTagRegistry.ALCHEMICAL_MERCURIES) ); - this.makeRecipe(this.name(ItemRegistry.CALORIC_FLUX_EMITTER.get()) + "_from_lava_bucket", new RecipeBuilder( + this.makeRecipe(this.name(ItemRegistry.CALORIC_FLUX_EMITTER.get()) + "_from_lava_bucket", new ShapedRecipeBuilder( ItemRegistry.CALORIC_FLUX_EMITTER.get(), 1) .pattern(" h ") .pattern("gmg") .pattern("sss") .define('h', Items.LAVA_BUCKET) .define('g', Tags.Items.INGOTS_GOLD) - .define('s', Tags.Items.STONE) + .define('s', Tags.Items.STONES) .define('m', ItemTagRegistry.ALCHEMICAL_MERCURIES) ); - this.makeRecipe(this.name(ItemRegistry.SULFURIC_FLUX_EMITTER.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.SULFURIC_FLUX_EMITTER.get(), 1) .pattern(" a ") .pattern("gSg") .pattern("sss") - .define('a', ItemTagRegistry.SAL_AMMONIAC_GEMS) + .define('a', ItemTagRegistry.GEMS_SAL_AMMONIAC) .define('g', Tags.Items.INGOTS_GOLD) - .define('s', Tags.Items.STONE) + .define('s', Tags.Items.STONES) .define('S', ItemTagRegistry.ALCHEMICAL_SULFURS) ); - this.makeRecipe(this.name(ItemRegistry.REFORMATION_TARGET_PEDESTAL.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.REFORMATION_TARGET_PEDESTAL.get(), 1) .pattern("cSc") .pattern("cdc") @@ -288,7 +294,7 @@ public void buildRecipes(BiConsumer recipeConsumer .define('d', Tags.Items.GEMS_DIAMOND) ); - this.makeRecipe(this.name(ItemRegistry.REFORMATION_SOURCE_PEDESTAL.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.REFORMATION_SOURCE_PEDESTAL.get(), 1) .pattern("sSs") .pattern("iii") @@ -298,7 +304,7 @@ public void buildRecipes(BiConsumer recipeConsumer .define('s', Items.BLACKSTONE) ); - this.makeRecipe(this.name(ItemRegistry.REFORMATION_RESULT_PEDESTAL.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.REFORMATION_RESULT_PEDESTAL.get(), 1) .pattern("ggg") .pattern("gSg") @@ -308,7 +314,7 @@ public void buildRecipes(BiConsumer recipeConsumer .define('s', Items.BLACKSTONE) ); - this.makeRecipe(this.name(ItemRegistry.FERMENTATION_VAT.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.FERMENTATION_VAT.get(), 1) .pattern("csc") .pattern("cbc") @@ -319,26 +325,26 @@ public void buildRecipes(BiConsumer recipeConsumer .define('c', Tags.Items.INGOTS_COPPER) ); - this.makeRecipe(this.name(ItemRegistry.DIGESTION_VAT.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.DIGESTION_VAT.get(), 1) .pattern(" s ") .pattern("gpg") .pattern("SSS") - .define('s', ItemTagRegistry.SAL_AMMONIAC_GEMS) + .define('s', ItemTagRegistry.GEMS_SAL_AMMONIAC) .define('p', Items.DECORATED_POT) .define('g', Tags.Items.INGOTS_GOLD) - .define('S', Tags.Items.SANDSTONE) + .define('S', Tags.Items.SANDSTONE_BLOCKS) ); - this.makeRecipe(this.name(ItemRegistry.COPPER_WIRE.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.COPPER_WIRE.get(), 10) .pattern("cmc") .define('m', ItemRegistry.MERCURY_SHARD) .define('c', Tags.Items.INGOTS_COPPER) ); - this.makeRecipe(this.name(ItemRegistry.MERCURIAL_WAND.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.MERCURIAL_WAND.get(), 1) .pattern(" sm") .pattern(" cs") @@ -348,7 +354,7 @@ public void buildRecipes(BiConsumer recipeConsumer .define('c', Tags.Items.INGOTS_COPPER) ); - this.makeRecipe(this.name(ItemRegistry.LOGISTICS_ITEM_INSERTER.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.LOGISTICS_ITEM_INSERTER.get(), 1) .pattern("m") .pattern("c") @@ -356,7 +362,7 @@ public void buildRecipes(BiConsumer recipeConsumer .define('c', Tags.Items.INGOTS_COPPER) ); - this.makeRecipe(this.name(ItemRegistry.LOGISTICS_ITEM_EXTRACTOR.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.LOGISTICS_ITEM_EXTRACTOR.get(), 1) .pattern("c") .pattern("m") @@ -364,84 +370,121 @@ public void buildRecipes(BiConsumer recipeConsumer .define('c', Tags.Items.INGOTS_COPPER) ); - this.makeRecipe(this.name(ItemRegistry.LOGISTICS_CONNECTION_NODE.get()), new RecipeBuilder( + this.makeRecipe(new ShapedRecipeBuilder( ItemRegistry.LOGISTICS_CONNECTION_NODE.get(), 3) .pattern(" m ") .pattern(" i ") .pattern("bbb") .define('m', ItemRegistry.MERCURY_SHARD) .define('i', Tags.Items.INGOTS_IRON) - .define('b', Tags.Items.INGOTS_BRICK) + .define('b', Tags.Items.BRICKS_NORMAL) ); } - public JsonObject makeDivinationRodSettings(DivinationRodItem rodItem) { + public DataComponentPatch.Builder makeDivinationRodSettings(DivinationRodItem rodItem) { return this.makeDivinationRodSettings(rodItem.defaultTier, rodItem.defaultAllowedBlocksTag, rodItem.defaultDisallowedBlocksTag, rodItem.defaultRange, rodItem.defaultDuration, rodItem.defaultDurability); } - public JsonObject makeDivinationRodSettings(Tier defaultTier, TagKey defaultAllowedBlocksTag, TagKey defaultDisallowedBlocksTag, int defaultRange, int defaultDuration, int defaultDurability) { - JsonObject settings = new JsonObject(); - - settings.addProperty(TheurgyConstants.Nbt.Divination.SETTING_TIER, TierSortingRegistry.getName(defaultTier).toString()); - settings.addProperty(TheurgyConstants.Nbt.Divination.SETTING_ALLOWED_BLOCKS_TAG, defaultAllowedBlocksTag.location().toString()); - settings.addProperty(TheurgyConstants.Nbt.Divination.SETTING_DISALLOWED_BLOCKS_TAG, defaultDisallowedBlocksTag.location().toString()); - settings.addProperty(TheurgyConstants.Nbt.Divination.SETTING_RANGE, defaultRange); - settings.addProperty(TheurgyConstants.Nbt.Divination.SETTING_DURATION, defaultDuration); - settings.addProperty(TheurgyConstants.Nbt.Divination.SETTING_DURABILITY, defaultDurability); + public DataComponentPatch.Builder makeDivinationRodSettings(Tiers defaultTier, TagKey defaultAllowedBlocksTag, TagKey defaultDisallowedBlocksTag, int defaultRange, int defaultDuration, int defaultDurability) { + return DataComponentPatch.builder() + .set(DataComponentRegistry.DIVINATION_SETTINGS_TIER.get(), defaultTier) + .set(DataComponentRegistry.DIVINATION_SETTINGS_ALLOWED_BLOCKS_TAG.get(), defaultAllowedBlocksTag) + .set(DataComponentRegistry.DIVINATION_SETTINGS_DISALLOWED_BLOCKS_TAG.get(), defaultDisallowedBlocksTag) + .set(DataComponentRegistry.DIVINATION_SETTINGS_RANGE.get(), defaultRange) + .set(DataComponentRegistry.DIVINATION_SETTINGS_DURATION.get(), defaultDuration) + .set(DataComponentRegistry.DIVINATION_SETTINGS_MAX_DAMAGE.get(), defaultDurability); + } - return settings; + protected void makeRecipe(ShapedRecipeBuilder recipe) { + this.makeRecipe(this.name(recipe.result()), recipe); } - public void makeRecipe(ItemLike result, RecipeBuilder recipe) { - this.makeRecipe(this.name(result.asItem()), recipe); + protected void makeRecipe(ItemLike result, ShapedRecipeBuilder recipe) { + this.makeRecipe(this.name(result), recipe); } - public void makeRecipe(String name, RecipeBuilder recipe) { + protected void makeRecipe(String name, ShapedRecipeBuilder recipe) { this.recipeConsumer.accept(this.modLoc(name), recipe.build()); } @Override - public String getName() { + public @NotNull String getName() { return "Shaped Crafting Recipes"; } - private class RecipeBuilder { + protected static class ShapedRecipeBuilder { private final JsonObject recipe; + private final ItemStack result; + + public ShapedRecipeBuilder(ItemLike result) { + //noinspection deprecation + this(result.asItem().builtInRegistryHolder()); + } + + public ShapedRecipeBuilder(ItemLike result, int count) { + //noinspection deprecation + this(result.asItem().builtInRegistryHolder(), count); + } + + public ShapedRecipeBuilder(ItemLike result, int count, DataComponentPatch patch) { + //noinspection deprecation + this(result.asItem().builtInRegistryHolder(), count, patch); + } - public RecipeBuilder(ItemLike result) { + public ShapedRecipeBuilder(String recipeType, ItemLike result, int count, DataComponentPatch patch) { + //noinspection deprecation + this(recipeType, new ItemStack(result.asItem().builtInRegistryHolder(), count, patch)); + } + + public ShapedRecipeBuilder(Holder result) { this(result, 1); } - public RecipeBuilder(ItemLike result, int count) { - this(result, count, null); + public ShapedRecipeBuilder(Holder result, int count) { + this(result, count, DataComponentPatch.EMPTY); } - public RecipeBuilder(ItemLike result, int count, @Nullable JsonObject nbt) { - this(result, count, nbt, BuiltInRegistries.RECIPE_SERIALIZER.getKey(RecipeSerializer.SHAPED_RECIPE).toString()); + public ShapedRecipeBuilder(Holder result, int count, DataComponentPatch patch) { + //noinspection DataFlowIssue + this(BuiltInRegistries.RECIPE_SERIALIZER.getKey(RecipeSerializer.SHAPED_RECIPE).toString(), result, count, patch); } - public RecipeBuilder(ItemLike result, int count, @Nullable JsonObject nbt, String recipeType) { - this(ShapedRecipeProvider.this.makeItemResult(ShapedRecipeProvider.this.locFor(result), count, nbt), recipeType); + public ShapedRecipeBuilder(String recipeType, Holder result, int count, DataComponentPatch patch) { + this(recipeType, new ItemStack(result, count, patch)); } - public RecipeBuilder(JsonObject result, String recipeType) { + public ShapedRecipeBuilder(String recipeType, ItemStack result) { + this.result = result; this.recipe = new JsonObject(); this.recipe.addProperty("type", recipeType); - this.recipe.add("result", result); + this.recipe.add("result", ItemStack.STRICT_CODEC.encodeStart(JsonOps.INSTANCE, result).getOrThrow()); this.recipe.add("key", new JsonObject()); this.recipe.add("pattern", new JsonArray()); } - public RecipeBuilder define(char key, TagKey tag) { - return this.define(key, ShapedRecipeProvider.this.makeTagIngredient(ShapedRecipeProvider.this.locFor(tag))); + private JsonObject ingredient(TagKey tag) { + JsonObject jsonobject = new JsonObject(); + jsonobject.addProperty("tag", tag.location().toString()); + return jsonobject; + } + + public ShapedRecipeBuilder define(char key, TagKey tag) { + return this.define(key, this.ingredient(tag)); } - public RecipeBuilder define(char key, ItemLike item) { - return this.define(key, ShapedRecipeProvider.this.makeItemIngredient(ShapedRecipeProvider.this.locFor(item))); + private JsonObject ingredient(ItemLike item) { + JsonObject jsonobject = new JsonObject(); + //noinspection deprecation,OptionalGetWithoutIsPresent + jsonobject.addProperty("item", item.asItem().builtInRegistryHolder().unwrapKey().get().location().toString()); + return jsonobject; } - public RecipeBuilder define(char key, JsonObject ingredient) { + public ShapedRecipeBuilder define(char key, ItemLike item) { + return this.define(key, this.ingredient(item)); + } + + public ShapedRecipeBuilder define(char key, JsonObject ingredient) { var keyString = String.valueOf(key); var keys = this.recipe.getAsJsonObject("key"); if (keys.has(keyString)) @@ -451,15 +494,19 @@ public RecipeBuilder define(char key, JsonObject ingredient) { return this; } - public RecipeBuilder pattern(String pattern) { + public ShapedRecipeBuilder pattern(String pattern) { this.recipe.getAsJsonArray("pattern").add(pattern); return this; } public JsonObject build() { - if(!this.recipe.has("category")) + if (!this.recipe.has("category")) this.recipe.addProperty("category", CraftingBookCategory.MISC.getSerializedName()); return this.recipe; } + + public ItemStack result() { + return this.result; + } } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ShapelessRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ShapelessRecipeProvider.java index 230c12a29..658250ee3 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ShapelessRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/ShapelessRecipeProvider.java @@ -6,19 +6,22 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import com.klikli_dev.modonomicon.registry.DataComponentRegistry; import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.registry.ItemRegistry; +import com.mojang.serialization.JsonOps; +import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.CraftingBookCategory; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.ItemLike; import net.neoforged.neoforge.common.Tags; -import org.jetbrains.annotations.Nullable; import java.util.function.BiConsumer; @@ -30,32 +33,37 @@ public ShapelessRecipeProvider(PackOutput packOutput) { @Override public void buildRecipes(BiConsumer recipeConsumer) { - - var hermeticaNbt = new JsonObject(); - hermeticaNbt.addProperty("modonomicon:book_id", "theurgy:the_hermetica"); this.makeRecipe("the_hermetica", - new RecipeBuilder(com.klikli_dev.modonomicon.registry.ItemRegistry.MODONOMICON.get(), 1, hermeticaNbt) + new ShapelessRecipeBuilder(com.klikli_dev.modonomicon.registry.ItemRegistry.MODONOMICON.get(), 1, DataComponentPatch.builder().set(DataComponentRegistry.BOOK_ID.get(), Theurgy.loc("the_hermetica")).build()) .requires(Items.BOOK) - .requires(Tags.Items.SAND, 2) + .requires(Tags.Items.SANDS, 2) ); this.makeRecipe("sal_ammoniac_crystal_from_sal_ammoniac_bucket", - new RecipeBuilder(ItemRegistry.SAL_AMMONIAC_CRYSTAL.get(), 1) + new ShapelessRecipeBuilder(ItemRegistry.SAL_AMMONIAC_CRYSTAL.get(), 1) .requires(ItemRegistry.SAL_AMMONIAC_BUCKET.get()) ); this.makeRecipe("logistics_item_extractor_from_inserter", - new RecipeBuilder(ItemRegistry.LOGISTICS_ITEM_EXTRACTOR.get(), 1) + new ShapelessRecipeBuilder(ItemRegistry.LOGISTICS_ITEM_EXTRACTOR.get(), 1) .requires(ItemRegistry.LOGISTICS_ITEM_INSERTER.get()) ); this.makeRecipe("logistics_item_inserter_from_extractor", - new RecipeBuilder(ItemRegistry.LOGISTICS_ITEM_INSERTER.get(), 1) + new ShapelessRecipeBuilder(ItemRegistry.LOGISTICS_ITEM_INSERTER.get(), 1) .requires(ItemRegistry.LOGISTICS_ITEM_EXTRACTOR.get()) ); } - public void makeRecipe(String name, RecipeBuilder recipe) { + protected void makeRecipe(ShapelessRecipeBuilder recipe) { + this.makeRecipe(this.name(recipe.result()), recipe); + } + + protected void makeRecipe(ItemLike result, ShapelessRecipeBuilder recipe) { + this.makeRecipe(this.name(result), recipe); + } + + protected void makeRecipe(String name, ShapelessRecipeBuilder recipe) { this.recipeConsumer.accept(this.modLoc(name), recipe.build()); } @@ -64,31 +72,35 @@ public String getName() { return "Shapeless Crafting Recipes"; } - private class RecipeBuilder { + protected static class ShapelessRecipeBuilder { - JsonObject recipe; + private final JsonObject recipe; + private final ItemStack result; - public RecipeBuilder(ItemLike result) { + public ShapelessRecipeBuilder(ItemLike result) { this(result, 1); } - public RecipeBuilder(ItemLike result, int count) { - this(result, count, null); + public ShapelessRecipeBuilder(ItemLike result, int count) { + this(result, count, DataComponentPatch.EMPTY); } - public RecipeBuilder(ItemLike result, int count, @Nullable JsonObject nbt) { - this(ShapelessRecipeProvider.this.makeItemResult(ShapelessRecipeProvider.this.locFor(result), count, nbt)); + public ShapelessRecipeBuilder(ItemLike result, int count, DataComponentPatch patch) { + //noinspection deprecation + this(new ItemStack(result.asItem().builtInRegistryHolder(), count, patch)); } - public RecipeBuilder(JsonObject result) { + public ShapelessRecipeBuilder(ItemStack result) { + this.result = result; this.recipe = new JsonObject(); + //noinspection DataFlowIssue this.recipe.addProperty("type", BuiltInRegistries.RECIPE_SERIALIZER.getKey(RecipeSerializer.SHAPELESS_RECIPE).toString()); - this.recipe.add("result", result); + this.recipe.add("result", ItemStack.STRICT_CODEC.encodeStart(JsonOps.INSTANCE, result).getOrThrow()); this.recipe.add("ingredients", new JsonArray()); } - public RecipeBuilder requires(TagKey tag, int count) { + public ShapelessRecipeBuilder requires(TagKey tag, int count) { for (int i = 0; i < count; ++i) { this.requires(tag); } @@ -96,11 +108,17 @@ public RecipeBuilder requires(TagKey tag, int count) { return this; } - public RecipeBuilder requires(TagKey tag) { - return this.requires(ShapelessRecipeProvider.this.makeTagIngredient(ShapelessRecipeProvider.this.locFor(tag))); + private JsonObject ingredient(TagKey tag) { + JsonObject jsonobject = new JsonObject(); + jsonobject.addProperty("tag", tag.location().toString()); + return jsonobject; } - public RecipeBuilder requires(ItemLike item, int count) { + public ShapelessRecipeBuilder requires(TagKey tag) { + return this.requires(this.ingredient(tag)); + } + + public ShapelessRecipeBuilder requires(ItemLike item, int count) { for (int i = 0; i < count; ++i) { this.requires(item); } @@ -108,21 +126,31 @@ public RecipeBuilder requires(ItemLike item, int count) { return this; } - public RecipeBuilder requires(ItemLike item) { - return this.requires(ShapelessRecipeProvider.this.makeItemIngredient(ShapelessRecipeProvider.this.locFor(item))); + private JsonObject ingredient(ItemLike item) { + JsonObject jsonobject = new JsonObject(); + //noinspection deprecation,OptionalGetWithoutIsPresent + jsonobject.addProperty("item", item.asItem().builtInRegistryHolder().unwrapKey().get().location().toString()); + return jsonobject; } - public RecipeBuilder requires(JsonObject ingredient) { + public ShapelessRecipeBuilder requires(ItemLike item) { + return this.requires(this.ingredient(item)); + } + + public ShapelessRecipeBuilder requires(JsonObject ingredient) { this.recipe.getAsJsonArray("ingredients").add(ingredient); return this; } public JsonObject build() { - if(!this.recipe.has("category")) + if (!this.recipe.has("category")) this.recipe.addProperty("category", CraftingBookCategory.MISC.getSerializedName()); return this.recipe; } + public ItemStack result() { + return this.result; + } } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/SmeltingRecipeProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/SmeltingRecipeProvider.java index c9dfa3782..826977814 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/recipe/SmeltingRecipeProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/recipe/SmeltingRecipeProvider.java @@ -6,15 +6,17 @@ import com.google.gson.JsonObject; import com.klikli_dev.theurgy.Theurgy; +import com.mojang.serialization.JsonOps; +import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.CraftingBookCategory; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.ItemLike; -import org.jetbrains.annotations.Nullable; import java.util.function.BiConsumer; @@ -32,7 +34,15 @@ public void buildRecipes(BiConsumer recipeConsumer // ); //opted against this as it voids the bucket } - public void makeRecipe(String name, RecipeBuilder recipe) { + protected void makeRecipe(SmeltingRecipeBuilder recipe) { + this.makeRecipe(this.name(recipe.result.getItem()), recipe); + } + + protected void makeRecipe(ItemLike result, SmeltingRecipeBuilder recipe) { + this.makeRecipe(this.name(result.asItem()), recipe); + } + + protected void makeRecipe(String name, SmeltingRecipeBuilder recipe) { this.recipeConsumer.accept(this.modLoc(name), recipe.build()); } @@ -41,60 +51,80 @@ public String getName() { return "Smelting Recipes"; } - private class RecipeBuilder { + protected class SmeltingRecipeBuilder { - JsonObject recipe; + private final JsonObject recipe; + private final ItemStack result; - public RecipeBuilder(ItemLike result) { + public SmeltingRecipeBuilder(ItemLike result) { this(result, 1); } - public RecipeBuilder(ItemLike result, int count) { + public SmeltingRecipeBuilder(ItemLike result, int count) { this(result, count, null); } - public RecipeBuilder(ItemLike result, int count, @Nullable JsonObject nbt) { - this(SmeltingRecipeProvider.this.makeItemResult(SmeltingRecipeProvider.this.locFor(result), count, nbt)); + public SmeltingRecipeBuilder(ItemLike result, int count, DataComponentPatch patch) { + //noinspection deprecation + this(new ItemStack(result.asItem().builtInRegistryHolder(), count, patch)); } - public RecipeBuilder(JsonObject result) { + public SmeltingRecipeBuilder(ItemStack result) { + this.result = result; this.recipe = new JsonObject(); + //noinspection DataFlowIssue this.recipe.addProperty("type", BuiltInRegistries.RECIPE_SERIALIZER.getKey(RecipeSerializer.SMELTING_RECIPE).toString()); - this.recipe.add("result", result); + this.recipe.add("result", ItemStack.STRICT_CODEC.encodeStart(JsonOps.INSTANCE, result).getOrThrow()); this.recipe.addProperty("cookingtime", 200); this.recipe.addProperty("experience", 0.7f); } - public RecipeBuilder time(int time) { + public SmeltingRecipeBuilder time(int time) { this.recipe.addProperty("cookingtime", time); return this; } - public RecipeBuilder experience(float exp) { + public SmeltingRecipeBuilder experience(float exp) { this.recipe.addProperty("experience", exp); return this; } - public RecipeBuilder requires(TagKey tag) { - return this.requires(SmeltingRecipeProvider.this.makeTagIngredient(SmeltingRecipeProvider.this.locFor(tag))); + private JsonObject ingredient(TagKey tag) { + JsonObject jsonobject = new JsonObject(); + jsonobject.addProperty("tag", tag.location().toString()); + return jsonobject; } - public RecipeBuilder requires(ItemLike item) { - return this.requires(SmeltingRecipeProvider.this.makeItemIngredient(SmeltingRecipeProvider.this.locFor(item))); + public SmeltingRecipeBuilder requires(TagKey tag) { + return this.requires(this.ingredient(tag)); } - public RecipeBuilder requires(JsonObject ingredient) { + private JsonObject ingredient(ItemLike item) { + JsonObject jsonobject = new JsonObject(); + //noinspection deprecation,OptionalGetWithoutIsPresent + jsonobject.addProperty("item", item.asItem().builtInRegistryHolder().unwrapKey().get().location().toString()); + return jsonobject; + } + + public SmeltingRecipeBuilder requires(ItemLike item) { + return this.requires(this.ingredient(item)); + } + + public SmeltingRecipeBuilder requires(JsonObject ingredient) { this.recipe.add("ingredient", ingredient); return this; } public JsonObject build() { - if(!this.recipe.has("category")) + if (!this.recipe.has("category")) this.recipe.addProperty("category", CraftingBookCategory.MISC.getSerializedName()); return this.recipe; } + public ItemStack result() { + return this.result; + } } } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/tag/TheurgyBlockTagsProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/tag/TheurgyBlockTagsProvider.java index 1e0eb77e8..0c102a699 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/tag/TheurgyBlockTagsProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/tag/TheurgyBlockTagsProvider.java @@ -28,14 +28,14 @@ protected void addTags(HolderLookup.Provider pProvider) { this.tag(BlockTagRegistry.DIVINATION_ROD_T1_ALLOWED_BLOCKS) .add(Blocks.SUGAR_CANE) .addTag(Tags.Blocks.ORES) - .addTag(Tags.Blocks.SAND) - .addTag(Tags.Blocks.STONE) + .addTag(Tags.Blocks.SANDSTONE_BLOCKS) + .addTag(Tags.Blocks.STONES) .addTag(BlockTags.LOGS); this.tag(BlockTagRegistry.DIVINATION_ROD_T1_DISALLOWED_BLOCKS); this.tag(BlockTagRegistry.DIVINATION_ROD_T2_ALLOWED_BLOCKS) .addTag(BlockTagRegistry.DIVINATION_ROD_T1_ALLOWED_BLOCKS) - .addTag(Tags.Blocks.OBSIDIAN); + .addTag(Tags.Blocks.OBSIDIANS); this.tag(BlockTagRegistry.DIVINATION_ROD_T2_DISALLOWED_BLOCKS); this.tag(BlockTagRegistry.DIVINATION_ROD_T3_ALLOWED_BLOCKS) diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/tag/TheurgyItemTagsProvider.java b/src/main/java/com/klikli_dev/theurgy/datagen/tag/TheurgyItemTagsProvider.java index 8a77a2cad..2e7537285 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/tag/TheurgyItemTagsProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/tag/TheurgyItemTagsProvider.java @@ -29,13 +29,13 @@ public TheurgyItemTagsProvider(PackOutput output, CompletableFuture { @@ -66,30 +66,30 @@ protected void addTags(HolderLookup.Provider pProvider) { }); this.tag(ItemTagRegistry.ALCHEMICAL_SULFURS_AND_NITERS) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_NITERS.location()); + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_NITERS); - this.tag(ItemTagRegistry.SUGAR) + this.tag(ItemTagRegistry.SUGARS) .add(Items.SUGAR); //add the tier tags into the material tag this.tag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS_ABUNDANT.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS_COMMON.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS_RARE.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS_PRECIOUS.location()); + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS_ABUNDANT) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS_COMMON) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS_RARE) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS_PRECIOUS); this.tag(ItemTagRegistry.ALCHEMICAL_SULFURS_GEMS) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_GEMS_ABUNDANT.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_GEMS_COMMON.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_GEMS_RARE.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_GEMS_PRECIOUS.location()); + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_GEMS_ABUNDANT) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_GEMS_COMMON) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_GEMS_RARE) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_GEMS_PRECIOUS); this.tag(ItemTagRegistry.ALCHEMICAL_SULFURS_OTHER_MINERALS) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_OTHER_MINERALS_ABUNDANT.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_OTHER_MINERALS_COMMON.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_OTHER_MINERALS_RARE.location()) - .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_OTHER_MINERALS_PRECIOUS.location()); + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_OTHER_MINERALS_ABUNDANT) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_OTHER_MINERALS_COMMON) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_OTHER_MINERALS_RARE) + .addOptionalTag(ItemTagRegistry.ALCHEMICAL_SULFURS_OTHER_MINERALS_PRECIOUS); this.tag(ItemTagRegistry.ALCHEMICAL_SULFURS_METALS_ABUNDANT); @@ -183,110 +183,109 @@ protected void addTags(HolderLookup.Provider pProvider) { .addTag(Tags.Items.ORES_QUARTZ) .addTag(Tags.Items.ORES_REDSTONE) .addTag(Tags.Items.ORES_COAL) - .addOptionalTag(this.rl("forge:ores/zinc")) - .addOptionalTag(this.rl("forge:ores/osmium")) - .addOptionalTag(this.rl("forge:ores/nickel")) - .addOptionalTag(this.rl("forge:ores/lead")) - .addOptionalTag(this.rl("forge:ores/tin")) - .addOptionalTag(this.rl("forge:ores/cinnabar")) - .addOptionalTag(this.rl("forge:ores/apatite")) - .addOptionalTag(this.rl("forge:ores/sulfur")) + .addOptionalTag(ItemTagRegistry.ORES_ZINC) + .addOptionalTag(ItemTagRegistry.ORES_OSMIUM) + .addOptionalTag(ItemTagRegistry.ORES_NICKEL) + .addOptionalTag(ItemTagRegistry.ORES_LEAD) + .addOptionalTag(ItemTagRegistry.ORES_TIN) + .addOptionalTag(ItemTagRegistry.ORES_CINNABAR) + .addOptionalTag(ItemTagRegistry.ORES_APATITE) + .addOptionalTag(ItemTagRegistry.ORES_SULFUR) ; this.tag(ItemTagRegistry.MEDIUM_MERCURY_ORES) .addTag(Tags.Items.ORES_GOLD) - .addOptionalTag(this.rl("forge:ores/azure_silver")) - .addOptionalTag(this.rl("forge:ores/silver")) - .addOptionalTag(this.rl("forge:ores/uranium")) - .addOptionalTag(this.rl("forge:ores/iridium")) - .addOptionalTag(this.rl("forge:ores/platinum")) - .addOptionalTag(this.rl("forge:ores/crimson_iron")) - .addOptionalTag(this.rl("forge:ores/ruby")) - .addOptionalTag(this.rl("forge:ores/peridot")) - .addOptionalTag(this.rl("forge:ores/fluorite")) - .addOptionalTag(this.rl("forge:ores/sapphire")) + .addOptionalTag(ItemTagRegistry.ORES_AZURE_SILVER) + .addOptionalTag(ItemTagRegistry.ORES_SILVER) + .addOptionalTag(ItemTagRegistry.ORES_URANIUM) + .addOptionalTag(ItemTagRegistry.ORES_IRIDIUM) + .addOptionalTag(ItemTagRegistry.ORES_PLATINUM) + .addOptionalTag(ItemTagRegistry.ORES_CRIMSON_IRON) + .addOptionalTag(ItemTagRegistry.ORES_RUBY) + .addOptionalTag(ItemTagRegistry.ORES_PERIDOT) + .addOptionalTag(ItemTagRegistry.ORES_FLUORITE) + .addOptionalTag(ItemTagRegistry.ORES_SAPPHIRE) ; this.tag(ItemTagRegistry.HIGH_MERCURY_ORES) .addTag(Tags.Items.ORES_DIAMOND) .addTag(Tags.Items.ORES_EMERALD) .addTag(Tags.Items.ORES_NETHERITE_SCRAP) - .addOptionalTag(this.rl("forge:ores/allthemodium")) - .addOptionalTag(this.rl("forge:ores/unobtainium")) - .addOptionalTag(this.rl("forge:ores/vibranium")) + .addOptionalTag(ItemTagRegistry.ORES_ALLTHEMODIUM) + .addOptionalTag(ItemTagRegistry.ORES_UNOBTAINIUM) + .addOptionalTag(ItemTagRegistry.ORES_VIBRANIUM) ; this.tag(ItemTagRegistry.LOW_MERCURY_RAW_MATERIALS) .addTag(Tags.Items.RAW_MATERIALS_IRON) .addTag(Tags.Items.RAW_MATERIALS_COPPER) - .addOptionalTag(this.rl("forge:raw_materials/zinc")) - .addOptionalTag(this.rl("forge:raw_materials/osmium")) - .addOptionalTag(this.rl("forge:raw_materials/nickel")) - .addOptionalTag(this.rl("forge:raw_materials/lead")) - .addOptionalTag(this.rl("forge:raw_materials/tin")) - .addOptionalTag(this.rl("forge:raw_materials/cinnabar")) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_ZINC) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_OSMIUM) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_NICKEL) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_LEAD) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_TIN) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_CINNABAR) ; this.tag(ItemTagRegistry.MEDIUM_MERCURY_RAW_MATERIALS) .addTag(Tags.Items.RAW_MATERIALS_GOLD) - .addOptionalTag(this.rl("forge:raw_materials/uranium")) - .addOptionalTag(this.rl("forge:raw_materials/silver")) - .addOptionalTag(this.rl("forge:raw_materials/azure_silver")) - .addOptionalTag(this.rl("forge:raw_materials/iridium")) - .addOptionalTag(this.rl("forge:raw_materials/crimson_iron")) - .addOptionalTag(this.rl("forge:raw_materials/platinum")) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_URANIUM) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_SILVER) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_AZURE_SILVER) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_IRIDIUM) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_CRIMSON_IRON) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_PLATINUM) ; this.tag(ItemTagRegistry.HIGH_MERCURY_RAW_MATERIALS) - .addOptionalTag(this.rl("forge:raw_materials/allthemodium")) - .addOptionalTag(this.rl("forge:raw_materials/unobtainium")) - .addOptionalTag(this.rl("forge:raw_materials/vibranium")) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_ALLTHEMODIUM) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_UNOBTAINIUM) + .addOptionalTag(ItemTagRegistry.RAW_MATERIALS_VIBRANIUM) ; this.tag(ItemTagRegistry.LOW_MERCURY_METALS) .addTag(Tags.Items.INGOTS_IRON) .addTag(Tags.Items.INGOTS_COPPER) - .addOptionalTag(this.rl("forge:ingots/zinc")) - .addOptionalTag(this.rl("forge:ingots/osmium")) - .addOptionalTag(this.rl("forge:ingots/nickel")) - .addOptionalTag(this.rl("forge:ingots/lead")) - .addOptionalTag(this.rl("forge:ingots/tin")) - .addOptionalTag(this.rl("forge:ingots/cinnabar")) + .addOptionalTag(ItemTagRegistry.INGOTS_ZINC) + .addOptionalTag(ItemTagRegistry.INGOTS_OSMIUM) + .addOptionalTag(ItemTagRegistry.INGOTS_NICKEL) + .addOptionalTag(ItemTagRegistry.INGOTS_LEAD) + .addOptionalTag(ItemTagRegistry.INGOTS_TIN) + .addOptionalTag(ItemTagRegistry.INGOTS_CINNABAR) ; this.tag(ItemTagRegistry.MEDIUM_MERCURY_METALS) .addTag(Tags.Items.INGOTS_GOLD) - .addOptionalTag(this.rl("forge:ingots/uranium")) - .addOptionalTag(this.rl("forge:ingots/silver")) - .addOptionalTag(this.rl("forge:ingots/azure_silver")) - .addOptionalTag(this.rl("forge:ingots/iridium")) - .addOptionalTag(this.rl("forge:ingots/crimson_iron")) - .addOptionalTag(this.rl("forge:ingots/platinum")) + .addOptionalTag(ItemTagRegistry.INGOTS_URANIUM) + .addOptionalTag(ItemTagRegistry.INGOTS_SILVER) + .addOptionalTag(ItemTagRegistry.INGOTS_AZURE_SILVER) + .addOptionalTag(ItemTagRegistry.INGOTS_IRIDIUM) + .addOptionalTag(ItemTagRegistry.INGOTS_CRIMSON_IRON) + .addOptionalTag(ItemTagRegistry.INGOTS_PLATINUM) ; this.tag(ItemTagRegistry.HIGH_MERCURY_METALS) .addTag(Tags.Items.INGOTS_NETHERITE) - .addOptionalTag(this.rl("forge:ingots/allthemodium")) - .addOptionalTag(this.rl("forge:ingots/unobtainium")) - .addOptionalTag(this.rl("forge:ingots/vibranium")) + .addOptionalTag(ItemTagRegistry.INGOTS_ALLTHEMODIUM) + .addOptionalTag(ItemTagRegistry.INGOTS_UNOBTAINIUM) + .addOptionalTag(ItemTagRegistry.INGOTS_VIBRANIUM) ; this.tag(ItemTagRegistry.LOW_MERCURY_GEMS) .addTag(Tags.Items.GEMS_LAPIS) .addTag(Tags.Items.GEMS_QUARTZ) - .addOptionalTag(this.rl("forge:gems/cinnabar")) - .addOptionalTag(this.rl("forge:gems/apatite")) + .addOptionalTag(ItemTagRegistry.GEMS_APATITE) ; this.tag(ItemTagRegistry.MEDIUM_MERCURY_GEMS) .addTag(Tags.Items.GEMS_AMETHYST) .addTag(Tags.Items.GEMS_PRISMARINE) - .addTag(ItemTagRegistry.SAL_AMMONIAC_GEMS) - .addOptionalTag(this.rl("forge:gems/ruby")) - .addOptionalTag(this.rl("forge:gems/peridot")) - .addOptionalTag(this.rl("forge:gems/fluorite")) - .addOptionalTag(this.rl("forge:gems/sapphire")) + .addTag(ItemTagRegistry.GEMS_SAL_AMMONIAC) + .addOptionalTag(ItemTagRegistry.GEMS_RUBY) + .addOptionalTag(ItemTagRegistry.GEMS_PERIDOT) + .addOptionalTag(ItemTagRegistry.GEMS_FLUORITE) + .addOptionalTag(ItemTagRegistry.GEMS_SAPPHIRE) ; this.tag(ItemTagRegistry.HIGH_MERCURY_GEMS) @@ -300,7 +299,7 @@ protected void addTags(HolderLookup.Provider pProvider) { ; this.tag(ItemTagRegistry.MEDIUM_MERCURY_OTHER_MINERALS) - .addOptionalTag(this.rl("forge:gems/sulfur")) + .addOptionalTag(ItemTagRegistry.GEMS_SULFUR) ; this.tag(ItemTagRegistry.HIGH_MERCURY_OTHER_MINERALS) @@ -309,7 +308,7 @@ protected void addTags(HolderLookup.Provider pProvider) { this.tag(ItemTagRegistry.OTHER_MINERALS) .addTag(ItemTags.COALS) .addTag(Tags.Items.DUSTS_REDSTONE) - //.addOptionalTag(this.rl("forge:gems/sulfur")) sulfur is classified as a gem, so its handled in the Tags.Items.GEMS + // .addOptionalTag(ItemTagRegistry.GEMS_SULFUR) sulfur is classified as a gem, so its handled in the Tags.Items.GEMS ; } diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/BiomeModifiers.java b/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/BiomeModifiers.java index 52d9bd7ff..e44366698 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/BiomeModifiers.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/BiomeModifiers.java @@ -7,7 +7,7 @@ import com.klikli_dev.theurgy.Theurgy; import net.minecraft.core.HolderSet; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.tags.BiomeTags; import net.minecraft.world.level.levelgen.GenerationStep; @@ -20,7 +20,7 @@ public class BiomeModifiers { public static final ResourceKey ADD_SAL_AMMONIAC_ORE = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Theurgy.loc("add_sal_ammoniac_ore")); - public static void bootstrap(BootstapContext context) { + public static void bootstrap(BootstrapContext context) { var placedFeatures = context.lookup(Registries.PLACED_FEATURE); var biomes = context.lookup(Registries.BIOME); diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/ConfiguredFeatures.java b/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/ConfiguredFeatures.java index 2eb4dc546..c1a89f6be 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/ConfiguredFeatures.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/ConfiguredFeatures.java @@ -7,7 +7,7 @@ import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.registry.BlockRegistry; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.data.worldgen.features.FeatureUtils; import net.minecraft.resources.ResourceKey; import net.minecraft.tags.BlockTags; @@ -21,7 +21,7 @@ public class ConfiguredFeatures { public static final ResourceKey> SAL_AMMONIAC_ORE = ResourceKey.create(Registries.CONFIGURED_FEATURE, Theurgy.loc("sal_ammoniac_ore")); - public static void bootstrap(BootstapContext> context) { + public static void bootstrap(BootstrapContext> context) { var placedFeatures = context.lookup(Registries.PLACED_FEATURE); List salAmmoniacOres = List.of( diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/PlacedFeatures.java b/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/PlacedFeatures.java index 627943d86..06b4b2a59 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/PlacedFeatures.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/PlacedFeatures.java @@ -6,7 +6,7 @@ import com.klikli_dev.theurgy.Theurgy; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.data.worldgen.placement.PlacementUtils; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.levelgen.VerticalAnchor; @@ -18,7 +18,7 @@ public class PlacedFeatures { public static final ResourceKey SAL_AMMONIAC_ORE = ResourceKey.create(Registries.PLACED_FEATURE, Theurgy.loc("sal_ammoniac_ore")); - public static void bootstrap(BootstapContext context) { + public static void bootstrap(BootstrapContext context) { var configuredFeatures = context.lookup(Registries.CONFIGURED_FEATURE); PlacementUtils.register(context, SAL_AMMONIAC_ORE, configuredFeatures.getOrThrow(ConfiguredFeatures.SAL_AMMONIAC_ORE), commonOrePlacement(20, HeightRangePlacement.triangle(VerticalAnchor.absolute(-64), VerticalAnchor.absolute(200)))); diff --git a/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/TheurgyRegistries.java b/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/TheurgyRegistries.java index e65f5a0c6..32a4a7544 100644 --- a/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/TheurgyRegistries.java +++ b/src/main/java/com/klikli_dev/theurgy/datagen/worldgen/TheurgyRegistries.java @@ -6,7 +6,7 @@ import net.minecraft.core.RegistrySetBuilder; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.world.level.biome.Biome; import net.neoforged.neoforge.registries.NeoForgeRegistries; @@ -17,7 +17,7 @@ public class TheurgyRegistries { .add(Registries.BIOME, TheurgyRegistries::bootstrapBiomes) .add(NeoForgeRegistries.Keys.BIOME_MODIFIERS, BiomeModifiers::bootstrap); - public static void bootstrapBiomes(BootstapContext context) { + public static void bootstrapBiomes(BootstrapContext context) { //doesn't need to do anything, just gives us access to a biome registry with empty tag lookup in our other boopstrap contexts } } diff --git a/src/main/java/com/klikli_dev/theurgy/integration/jade/MercuryFluxEnergyProvider.java b/src/main/java/com/klikli_dev/theurgy/integration/jade/MercuryFluxEnergyProvider.java index de83c3ac7..87f11805c 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/jade/MercuryFluxEnergyProvider.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/jade/MercuryFluxEnergyProvider.java @@ -10,13 +10,13 @@ import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.Nullable; import snownee.jade.api.Accessor; -import snownee.jade.api.BlockAccessor; import snownee.jade.api.view.*; +import snownee.jade.util.CommonProxy; import java.util.List; import java.util.Objects; -public class MercuryFluxEnergyProvider implements IServerExtensionProvider, IClientExtensionProvider { +public class MercuryFluxEnergyProvider implements IServerExtensionProvider, IClientExtensionProvider { public static final ResourceLocation ID = Theurgy.loc("mercury_flux"); private static final MercuryFluxEnergyProvider instance = new MercuryFluxEnergyProvider(); @@ -25,17 +25,15 @@ public static MercuryFluxEnergyProvider get() { return instance; } - public static List> wrapMercuryFluxStorage(Accessor accessor, Object target) { - if (accessor instanceof BlockAccessor ba) { - var storage = ba.getLevel().getCapability(CapabilityRegistry.MERCURY_FLUX_HANDLER, ba.getPosition(), ba.getBlockState(), ba.getBlockEntity(), null); - if (storage != null) { - ViewGroup group = new ViewGroup(List.of(EnergyView.of(storage.getEnergyStored(), storage.getMaxEnergyStored()))); - group.getExtraData().putString("Unit", "MF"); - return List.of(group); - } + public static @Nullable List> wrapMercuryFluxStorage(Accessor accessor) { + var storage = CommonProxy.getDefaultStorage(accessor, CapabilityRegistry.MERCURY_FLUX_HANDLER, null); + if (storage != null) { + ViewGroup group = new ViewGroup(List.of(EnergyView.of(storage.getEnergyStored(), storage.getMaxEnergyStored()))); + group.getExtraData().putString("Unit", "MF"); + return List.of(group); + } else { + return null; } - - return null; } @Override @@ -52,7 +50,7 @@ public ResourceLocation getUid() { } @Override - public @Nullable List> getGroups(Accessor accessor, Object o) { - return wrapMercuryFluxStorage(accessor, o); + public @Nullable List> getGroups(Accessor accessor) { + return wrapMercuryFluxStorage(accessor); } } diff --git a/src/main/java/com/klikli_dev/theurgy/integration/jei/AlchemicalSulfurSubtypeInterpreter.java b/src/main/java/com/klikli_dev/theurgy/integration/jei/AlchemicalSulfurSubtypeInterpreter.java index 730ba15e6..50587a9c9 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/jei/AlchemicalSulfurSubtypeInterpreter.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/jei/AlchemicalSulfurSubtypeInterpreter.java @@ -29,9 +29,9 @@ public String apply(ItemStack ingredient, UidContext context) { } return nbtTagCompound.toString() - .replace("#forge:ores", "#theurgy:minerals") - .replace("#forge:ingots", "#theurgy:minerals") - .replace("#forge:gems", "#theurgy:minerals") - .replace("#forge:raw_materials", "#theurgy:minerals"); + .replace("#c:ores", "#theurgy:minerals") + .replace("#c:ingots", "#theurgy:minerals") + .replace("#c:gems", "#theurgy:minerals") + .replace("#c:raw_materials", "#theurgy:minerals"); } } diff --git a/src/main/java/com/klikli_dev/theurgy/integration/jei/JeiPlugin.java b/src/main/java/com/klikli_dev/theurgy/integration/jei/JeiPlugin.java index 2ae4e7438..dd333bf72 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/jei/JeiPlugin.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/jei/JeiPlugin.java @@ -78,6 +78,7 @@ public void registerRecipes(IRecipeRegistration registration) { var accumulationRecipes = recipeManager.getAllRecipesFor(RecipeTypeRegistry.ACCUMULATION.get()); registration.addRecipes(JeiRecipeTypes.ACCUMULATION, accumulationRecipes); + //TODO: Test if this works -> sulfur registry onBuildCreativeModTabs changed! //now remove sulfurs that have no recipe -> otherwise we see "no source" sulfurs in tag recipes //See also Theurgy.Client#onRecipesUpdated var sulfursWithoutRecipe = SulfurRegistry.SULFURS.getEntries().stream() diff --git a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/accumulation/BookAccumulationRecipePage.java b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/accumulation/BookAccumulationRecipePage.java index 880685bda..b36d96b8e 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/accumulation/BookAccumulationRecipePage.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/accumulation/BookAccumulationRecipePage.java @@ -5,15 +5,16 @@ package com.klikli_dev.theurgy.integration.modonomicon.page.accumulation; import com.google.gson.JsonObject; -import com.klikli_dev.modonomicon.book.BookEntry; import com.klikli_dev.modonomicon.book.BookTextHolder; import com.klikli_dev.modonomicon.book.conditions.BookCondition; import com.klikli_dev.modonomicon.book.conditions.BookNoneCondition; +import com.klikli_dev.modonomicon.book.entries.ContentBookEntry; import com.klikli_dev.modonomicon.book.page.BookRecipePage; import com.klikli_dev.theurgy.content.recipe.AccumulationRecipe; import com.klikli_dev.theurgy.integration.modonomicon.TheurgyModonomiconConstants; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.HolderLookup; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.Style; import net.minecraft.resources.ResourceLocation; @@ -28,16 +29,16 @@ public BookAccumulationRecipePage(BookTextHolder title1, ResourceLocation recipe super(RecipeTypeRegistry.ACCUMULATION.get(), title1, recipeId1, title2, recipeId2, text, anchor, condition); } - public static BookAccumulationRecipePage fromJson(JsonObject json) { - var common = BookRecipePage.commonFromJson(json); + public static BookAccumulationRecipePage fromJson(JsonObject json, HolderLookup.Provider provider) { + var common = BookRecipePage.commonFromJson(json, provider); var anchor = GsonHelper.getAsString(json, "anchor", ""); var condition = json.has("condition") - ? BookCondition.fromJson(json.getAsJsonObject("condition")) + ? BookCondition.fromJson(json.getAsJsonObject("condition"), provider) : new BookNoneCondition(); return new BookAccumulationRecipePage(common.title1(), common.recipeId1(), common.title2(), common.recipeId2(), common.text(), anchor, condition); } - public static BookAccumulationRecipePage fromNetwork(FriendlyByteBuf buffer) { + public static BookAccumulationRecipePage fromNetwork(RegistryFriendlyByteBuf buffer) { var common = BookRecipePage.commonFromNetwork(buffer); var anchor = buffer.readUtf(); var condition = BookCondition.fromNetwork(buffer); @@ -50,7 +51,7 @@ public ResourceLocation getType() { } @Override - public void build(Level level, BookEntry parentEntry, int pageNum) { + public void build(Level level, ContentBookEntry parentEntry, int pageNum) { //copy from parents parent as we won't be calling super. this.parentEntry = parentEntry; this.pageNumber = pageNum; @@ -69,7 +70,7 @@ public void build(Level level, BookEntry parentEntry, int pageNum) { if (this.title1.isEmpty()) { //use recipe title if we don't have a custom one this.title1 = new BookTextHolder(((MutableComponent) - this.recipe1.value().getResult().getDisplayName()) + this.recipe1.value().getResult().getHoverName()) .withStyle(Style.EMPTY .withBold(true) .withColor(this.getParentEntry().getBook().getDefaultTitleColor()) @@ -78,7 +79,7 @@ public void build(Level level, BookEntry parentEntry, int pageNum) { if (this.recipe2 != null && this.title2.isEmpty()) { //use recipe title if we don't have a custom one - this.title2 = new BookTextHolder(((MutableComponent) this.recipe2.value().getResult().getDisplayName()) + this.title2 = new BookTextHolder(((MutableComponent) this.recipe2.value().getResult().getHoverName()) .withStyle(Style.EMPTY .withBold(true) .withColor(this.getParentEntry().getBook().getDefaultTitleColor()) diff --git a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/accumulation/BookAccumulationRecipePageRenderer.java b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/accumulation/BookAccumulationRecipePageRenderer.java index d69e37151..81611f25a 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/accumulation/BookAccumulationRecipePageRenderer.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/accumulation/BookAccumulationRecipePageRenderer.java @@ -45,7 +45,7 @@ protected void drawRecipe(GuiGraphics guiGraphics, RecipeHolder (FluidHolder) new NeoFluidHolder(f.getFluid(), recipe.getEvaporantAmount(), f.getTag())).toList(), FluidType.BUCKET_VOLUME); + this.parentScreen.renderFluidStacks(guiGraphics, recipeX + 2, recipeY + 2, mouseX, mouseY, Arrays.stream(recipe.getEvaporant().getStacks()).map(f -> (FluidHolder) new NeoFluidHolder(f.getFluidHolder(), recipe.getEvaporantAmount(), f.getComponentsPatch())).toList(), FluidType.BUCKET_VOLUME); if (recipe.hasSolute()) { GuiTextures.MODONOMICON_SLOT.render(guiGraphics, recipeX, recipeY + 24); //render the item input slot diff --git a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/calcination/BookCalcinationRecipePage.java b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/calcination/BookCalcinationRecipePage.java index d5fe7fce5..81099faad 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/calcination/BookCalcinationRecipePage.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/calcination/BookCalcinationRecipePage.java @@ -13,7 +13,8 @@ import com.klikli_dev.theurgy.content.recipe.CalcinationRecipe; import com.klikli_dev.theurgy.integration.modonomicon.TheurgyModonomiconConstants; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.HolderLookup; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; @@ -23,16 +24,16 @@ public BookCalcinationRecipePage(BookTextHolder title1, ResourceLocation recipeI super(RecipeTypeRegistry.CALCINATION.get(), title1, recipeId1, title2, recipeId2, text, anchor, condition); } - public static BookCalcinationRecipePage fromJson(JsonObject json) { - var common = BookRecipePage.commonFromJson(json); + public static BookCalcinationRecipePage fromJson(JsonObject json, HolderLookup.Provider provider) { + var common = BookRecipePage.commonFromJson(json, provider); var anchor = GsonHelper.getAsString(json, "anchor", ""); var condition = json.has("condition") - ? BookCondition.fromJson(json.getAsJsonObject("condition")) + ? BookCondition.fromJson(json.getAsJsonObject("condition"), provider) : new BookNoneCondition(); return new BookCalcinationRecipePage(common.title1(), common.recipeId1(), common.title2(), common.recipeId2(), common.text(), anchor, condition); } - public static BookCalcinationRecipePage fromNetwork(FriendlyByteBuf buffer) { + public static BookCalcinationRecipePage fromNetwork(RegistryFriendlyByteBuf buffer) { var common = BookRecipePage.commonFromNetwork(buffer); var anchor = buffer.readUtf(); var condition = BookCondition.fromNetwork(buffer); diff --git a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/distillation/BookDistillationRecipePage.java b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/distillation/BookDistillationRecipePage.java index 8fbedfab9..ca0aa36fa 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/distillation/BookDistillationRecipePage.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/distillation/BookDistillationRecipePage.java @@ -13,7 +13,8 @@ import com.klikli_dev.theurgy.content.recipe.DistillationRecipe; import com.klikli_dev.theurgy.integration.modonomicon.TheurgyModonomiconConstants; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.HolderLookup; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; @@ -23,16 +24,16 @@ public BookDistillationRecipePage(BookTextHolder title1, ResourceLocation recipe super(RecipeTypeRegistry.DISTILLATION.get(), title1, recipeId1, title2, recipeId2, text, anchor, condition); } - public static BookDistillationRecipePage fromJson(JsonObject json) { - var common = BookRecipePage.commonFromJson(json); + public static BookDistillationRecipePage fromJson(JsonObject json, HolderLookup.Provider provider) { + var common = BookRecipePage.commonFromJson(json, provider); var anchor = GsonHelper.getAsString(json, "anchor", ""); var condition = json.has("condition") - ? BookCondition.fromJson(json.getAsJsonObject("condition")) + ? BookCondition.fromJson(json.getAsJsonObject("condition"), provider) : new BookNoneCondition(); return new BookDistillationRecipePage(common.title1(), common.recipeId1(), common.title2(), common.recipeId2(), common.text(), anchor, condition); } - public static BookDistillationRecipePage fromNetwork(FriendlyByteBuf buffer) { + public static BookDistillationRecipePage fromNetwork(RegistryFriendlyByteBuf buffer) { var common = BookRecipePage.commonFromNetwork(buffer); var anchor = buffer.readUtf(); var condition = BookCondition.fromNetwork(buffer); diff --git a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/incubation/BookIncubationRecipePage.java b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/incubation/BookIncubationRecipePage.java index de55fe2a6..29dafa976 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/incubation/BookIncubationRecipePage.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/incubation/BookIncubationRecipePage.java @@ -13,7 +13,8 @@ import com.klikli_dev.theurgy.content.recipe.IncubationRecipe; import com.klikli_dev.theurgy.integration.modonomicon.TheurgyModonomiconConstants; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.HolderLookup; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; @@ -23,16 +24,16 @@ public BookIncubationRecipePage(BookTextHolder title1, ResourceLocation recipeId super(RecipeTypeRegistry.INCUBATION.get(), title1, recipeId1, title2, recipeId2, text, anchor, condition); } - public static BookIncubationRecipePage fromJson(JsonObject json) { - var common = BookRecipePage.commonFromJson(json); + public static BookIncubationRecipePage fromJson(JsonObject json, HolderLookup.Provider provider) { + var common = BookRecipePage.commonFromJson(json, provider); var anchor = GsonHelper.getAsString(json, "anchor", ""); var condition = json.has("condition") - ? BookCondition.fromJson(json.getAsJsonObject("condition")) + ? BookCondition.fromJson(json.getAsJsonObject("condition"), provider) : new BookNoneCondition(); return new BookIncubationRecipePage(common.title1(), common.recipeId1(), common.title2(), common.recipeId2(), common.text(), anchor, condition); } - public static BookIncubationRecipePage fromNetwork(FriendlyByteBuf buffer) { + public static BookIncubationRecipePage fromNetwork(RegistryFriendlyByteBuf buffer) { var common = BookRecipePage.commonFromNetwork(buffer); var anchor = buffer.readUtf(); var condition = BookCondition.fromNetwork(buffer); diff --git a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/incubation/BookIncubationRecipePageRenderer.java b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/incubation/BookIncubationRecipePageRenderer.java index 9784373df..5e8b0b650 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/incubation/BookIncubationRecipePageRenderer.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/incubation/BookIncubationRecipePageRenderer.java @@ -39,32 +39,14 @@ protected int getRecipeHeight() { public void onBeginDisplayPage(BookContentScreen parentScreen, int left, int top) { super.onBeginDisplayPage(parentScreen, left, top); - //sulfurs in the recipe are in most cases specified only via the item id (as one sulfur = one item), but for rendering we need the nbt, so we get it from the corresponding recipe. - var recipeManager = Minecraft.getInstance().level.getRecipeManager(); - var liquefactionRecipes = recipeManager.getAllRecipesFor(RecipeTypeRegistry.LIQUEFACTION.get()).stream().filter(r -> r.value().getResultItem(Minecraft.getInstance().level.registryAccess()) != null).collect(Collectors.toList()); - if (this.page.getRecipe1() != null) - this.renderableSulfurIngredients.put(this.page.getRecipe1().id(), this.getRenderableSulfurIngredients(liquefactionRecipes, this.page.getRecipe1())); + this.renderableSulfurIngredients.put(this.page.getRecipe1().id(), this.getRenderableSulfurIngredients(this.page.getRecipe1())); if (this.page.getRecipe2() != null) - this.renderableSulfurIngredients.put(this.page.getRecipe2().id(), this.getRenderableSulfurIngredients(liquefactionRecipes, this.page.getRecipe2())); + this.renderableSulfurIngredients.put(this.page.getRecipe2().id(), this.getRenderableSulfurIngredients(this.page.getRecipe2())); } - protected ItemStack[] getRenderableSulfurIngredients(List> liquefactionRecipes, RecipeHolder recipe) { - return Arrays.stream(recipe.value().getSulfur().getItems()).map(sulfur -> { - if (sulfur.hasTag()) - return sulfur; - - var sulfurItem = sulfur.getItem(); - var sulfurWithNbt = liquefactionRecipes.stream() - .filter(r -> r.value().getResultItem(Minecraft.getInstance().level.registryAccess()).getItem() == sulfurItem).map(r -> r.value().getResultItem(Minecraft.getInstance().level.registryAccess())).findFirst(); - - if (sulfurWithNbt.isPresent()) { - sulfur = sulfur.copy(); - sulfur.setTag(sulfurWithNbt.get().getTag()); - } - - return sulfur; - }).toArray(ItemStack[]::new); + protected ItemStack[] getRenderableSulfurIngredients(RecipeHolder recipe) { + return Arrays.stream(recipe.value().getSulfur().getItems()).map(sulfur -> sulfur.copyWithCount(1)).toArray(ItemStack[]::new); } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/liquefaction/BookLiquefactionRecipePage.java b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/liquefaction/BookLiquefactionRecipePage.java index 821234990..3a97f3813 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/liquefaction/BookLiquefactionRecipePage.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/liquefaction/BookLiquefactionRecipePage.java @@ -13,7 +13,8 @@ import com.klikli_dev.theurgy.content.recipe.LiquefactionRecipe; import com.klikli_dev.theurgy.integration.modonomicon.TheurgyModonomiconConstants; import com.klikli_dev.theurgy.registry.RecipeTypeRegistry; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.HolderLookup; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; @@ -23,16 +24,16 @@ public BookLiquefactionRecipePage(BookTextHolder title1, ResourceLocation recipe super(RecipeTypeRegistry.LIQUEFACTION.get(), title1, recipeId1, title2, recipeId2, text, anchor, condition); } - public static BookLiquefactionRecipePage fromJson(JsonObject json) { - var common = BookRecipePage.commonFromJson(json); + public static BookLiquefactionRecipePage fromJson(JsonObject json, HolderLookup.Provider provider) { + var common = BookRecipePage.commonFromJson(json, provider); var anchor = GsonHelper.getAsString(json, "anchor", ""); var condition = json.has("condition") - ? BookCondition.fromJson(json.getAsJsonObject("condition")) + ? BookCondition.fromJson(json.getAsJsonObject("condition"), provider) : new BookNoneCondition(); return new BookLiquefactionRecipePage(common.title1(), common.recipeId1(), common.title2(), common.recipeId2(), common.text(), anchor, condition); } - public static BookLiquefactionRecipePage fromNetwork(FriendlyByteBuf buffer) { + public static BookLiquefactionRecipePage fromNetwork(RegistryFriendlyByteBuf buffer) { var common = BookRecipePage.commonFromNetwork(buffer); var anchor = buffer.readUtf(); var condition = BookCondition.fromNetwork(buffer); diff --git a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/liquefaction/BookLiquefactionRecipePageRenderer.java b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/liquefaction/BookLiquefactionRecipePageRenderer.java index aaf905d28..1d374e684 100644 --- a/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/liquefaction/BookLiquefactionRecipePageRenderer.java +++ b/src/main/java/com/klikli_dev/theurgy/integration/modonomicon/page/liquefaction/BookLiquefactionRecipePageRenderer.java @@ -43,7 +43,7 @@ protected void drawRecipe(GuiGraphics guiGraphics, RecipeHolder (FluidHolder) new NeoFluidHolder(f.getFluid(), recipe.getSolventAmount(), f.getTag())).toList(), FluidType.BUCKET_VOLUME); + this.parentScreen.renderFluidStacks(guiGraphics, recipeX + 2, recipeY + 2, mouseX, mouseY, Arrays.stream(recipe.getSolvent().getStacks()).map(f -> (FluidHolder) new NeoFluidHolder(f.getFluidHolder(), recipe.getSolventAmount(), f.getComponentsPatch())).toList(), FluidType.BUCKET_VOLUME); GuiTextures.MODONOMICON_SLOT.render(guiGraphics, recipeX, recipeY + 24); //render the item input slot this.parentScreen.renderIngredient(guiGraphics, recipeX + 3, recipeY + 24 + +3, mouseX, mouseY, recipe.getIngredients().get(0)); diff --git a/src/main/java/com/klikli_dev/theurgy/logistics/Logistics.java b/src/main/java/com/klikli_dev/theurgy/logistics/Logistics.java index 2fe0b3fd9..8d931e7d6 100644 --- a/src/main/java/com/klikli_dev/theurgy/logistics/Logistics.java +++ b/src/main/java/com/klikli_dev/theurgy/logistics/Logistics.java @@ -15,6 +15,7 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; import net.minecraft.core.GlobalPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; import net.minecraft.server.MinecraftServer; @@ -73,7 +74,7 @@ public Logistics(MutableGraph graph) { this.rebuildGraph(); } - public static Logistics load(CompoundTag pCompoundTag) { + public static Logistics load(CompoundTag pCompoundTag, HolderLookup.Provider pRegistries) { return CODEC.parse(NbtOps.INSTANCE, pCompoundTag.get(NBT_TAG)).result().orElseThrow(); } @@ -401,7 +402,7 @@ public void remove(GlobalPos a, GlobalPos b) { } @Override - public CompoundTag save(CompoundTag pCompoundTag) { + public CompoundTag save(CompoundTag pCompoundTag, HolderLookup.Provider pRegistries) { pCompoundTag.put(NBT_TAG, CODEC.encodeStart(NbtOps.INSTANCE, this).result().orElseThrow()); return pCompoundTag; } diff --git a/src/main/java/com/klikli_dev/theurgy/logistics/Wire.java b/src/main/java/com/klikli_dev/theurgy/logistics/Wire.java index 4e0c2fe03..d3cbbed3d 100644 --- a/src/main/java/com/klikli_dev/theurgy/logistics/Wire.java +++ b/src/main/java/com/klikli_dev/theurgy/logistics/Wire.java @@ -4,10 +4,14 @@ package com.klikli_dev.theurgy.logistics; +import com.klikli_dev.modonomicon.networking.ClickCommandLinkMessage; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceLocation; public record Wire(BlockPos from, BlockPos to) { public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( @@ -15,6 +19,13 @@ public record Wire(BlockPos from, BlockPos to) { BlockPos.CODEC.fieldOf("to").forGetter(Wire::to) ).apply(instance, Wire::new)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + BlockPos.STREAM_CODEC, + (w) -> w.from, + BlockPos.STREAM_CODEC, + (w) -> w.to, + Wire::new + ); public static Wire load(CompoundTag tag) { return new Wire(BlockPos.of(tag.getLong("from")), BlockPos.of(tag.getLong("to"))); diff --git a/src/main/java/com/klikli_dev/theurgy/logistics/WireEndPoint.java b/src/main/java/com/klikli_dev/theurgy/logistics/WireEndPoint.java index 50d88ba9c..4735dad9f 100644 --- a/src/main/java/com/klikli_dev/theurgy/logistics/WireEndPoint.java +++ b/src/main/java/com/klikli_dev/theurgy/logistics/WireEndPoint.java @@ -4,9 +4,15 @@ package com.klikli_dev.theurgy.logistics; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.BlockPos; import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -14,25 +20,35 @@ public record WireEndPoint(BlockPos pos, ResourceKey level) { + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + BlockPos.CODEC.fieldOf("pos").forGetter((r) -> r.pos), + ResourceKey.codec(Registries.DIMENSION).fieldOf("level").forGetter((r) -> r.level) + ).apply(instance, WireEndPoint::new) + ); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + BlockPos.STREAM_CODEC, + WireEndPoint::pos, + ResourceKey.streamCodec(Registries.DIMENSION), + WireEndPoint::level, + WireEndPoint::new + ); + + public static WireEndPoint load(CompoundTag tag) { return new WireEndPoint(BlockPos.of(tag.getLong("pos")), ResourceKey.create(Registries.DIMENSION, new ResourceLocation(tag.getString("level")))); } public static WireEndPoint load(ItemStack stack) { - if (!stack.hasTag() || !stack.getOrCreateTag().contains("wirePoint")) - return null; - return load(stack.getOrCreateTag().getCompound("wirePoint")); + return stack.get(DataComponentRegistry.WIRE_END_POINT.get()); } public static void removeFrom(ItemStack stack) { - if (!stack.hasTag() || !stack.getOrCreateTag().contains("wirePoint")) - return; - stack.getOrCreateTag().remove("wirePoint"); + stack.remove(DataComponentRegistry.WIRE_END_POINT.get()); } public void save(ItemStack stack) { - CompoundTag tag = stack.getOrCreateTag(); - tag.put("wirePoint", this.save(new CompoundTag())); + stack.set(DataComponentRegistry.WIRE_END_POINT.get(), this); } public CompoundTag save(CompoundTag tag) { diff --git a/src/main/java/com/klikli_dev/theurgy/logistics/WireRenderer.java b/src/main/java/com/klikli_dev/theurgy/logistics/WireRenderer.java index 466f40c62..8fbb8b6df 100644 --- a/src/main/java/com/klikli_dev/theurgy/logistics/WireRenderer.java +++ b/src/main/java/com/klikli_dev/theurgy/logistics/WireRenderer.java @@ -99,12 +99,12 @@ private void renderWire(VertexConsumer vertexBuilder, PoseStack poseStack, Vec3 vertexBuilder.vertex(fourMatrix, (float) firstPoint.x(), (float) firstPoint.y(), (float) firstPoint.z()) .color(0, 0, 0, 255) - .normal(poseStack.last().normal(), (float) normal.x(), (float) normal.y(), (float) normal.z()) + .normal(poseStack.last(), (float) normal.x(), (float) normal.y(), (float) normal.z()) .endVertex(); vertexBuilder.vertex(fourMatrix, (float) secondPoint.x(), (float) secondPoint.y(), (float) secondPoint.z()) .color(0, 0, 0, 255) - .normal(poseStack.last().normal(), (float) reverseNormal.x(), (float) reverseNormal.y(), (float) reverseNormal.z()) + .normal(poseStack.last(), (float) reverseNormal.x(), (float) reverseNormal.y(), (float) reverseNormal.z()) .endVertex(); } poseStack.popPose(); diff --git a/src/main/java/com/klikli_dev/theurgy/logistics/Wires.java b/src/main/java/com/klikli_dev/theurgy/logistics/Wires.java index a5f0ccd87..97b1901b5 100644 --- a/src/main/java/com/klikli_dev/theurgy/logistics/Wires.java +++ b/src/main/java/com/klikli_dev/theurgy/logistics/Wires.java @@ -12,6 +12,7 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.core.SectionPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; @@ -159,7 +160,7 @@ public static void onLevelUnload(LevelEvent.Unload event) { } } - public static Wires load(CompoundTag pCompoundTag) { + public static Wires load(CompoundTag pCompoundTag, HolderLookup.Provider pRegistries) { return CODEC.parse(NbtOps.INSTANCE, pCompoundTag.get(NBT_TAG)).result().orElseThrow(); } @@ -222,7 +223,7 @@ public void removeWire(Wire wire) { } @Override - public CompoundTag save(CompoundTag pCompoundTag) { + public CompoundTag save(CompoundTag pCompoundTag, HolderLookup.Provider pRegistries) { pCompoundTag.put(NBT_TAG, CODEC.encodeStart(NbtOps.INSTANCE, this).result().orElseThrow()); return pCompoundTag; } diff --git a/src/main/java/com/klikli_dev/theurgy/network/Message.java b/src/main/java/com/klikli_dev/theurgy/network/Message.java index 49f0835bf..77f9fbf4e 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/Message.java +++ b/src/main/java/com/klikli_dev/theurgy/network/Message.java @@ -5,16 +5,12 @@ package com.klikli_dev.theurgy.network; import net.minecraft.client.Minecraft; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; public interface Message extends CustomPacketPayload { - void encode(FriendlyByteBuf buf); - - void decode(FriendlyByteBuf buf); default void onClientReceived(Minecraft minecraft, Player player) { @@ -23,9 +19,4 @@ default void onClientReceived(Minecraft minecraft, Player player) { default void onServerReceived(MinecraftServer minecraftServer, ServerPlayer player) { } - - @Override - default void write(FriendlyByteBuf pBuffer) { - this.encode(pBuffer); - } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/MessageHandler.java b/src/main/java/com/klikli_dev/theurgy/network/MessageHandler.java index d715c8adf..c1671b5ba 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/MessageHandler.java +++ b/src/main/java/com/klikli_dev/theurgy/network/MessageHandler.java @@ -5,39 +5,33 @@ package com.klikli_dev.theurgy.network; import net.minecraft.client.Minecraft; -import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.neoforged.fml.LogicalSide; -import net.neoforged.neoforge.network.handling.PlayPayloadContext; +import net.neoforged.neoforge.network.handling.IPayloadContext; public class MessageHandler { - public static void handle(T payload, PlayPayloadContext ctx) { + public static void handle(T message, IPayloadContext ctx) { if (ctx.flow().getReceptionSide() == LogicalSide.SERVER) { - ctx.workHandler().submitAsync(() -> { - handleServer(payload, ctx); - }); + handleServer(message, ctx); } else { - ctx.workHandler().submitAsync(() -> { - //separate class to avoid loading client code on server. - ClientMessageHandler.handleClient(payload, ctx); - }); + //separate class to avoid loading client code on server. + //Using OnlyIn on a method in this class would work too, but is discouraged + ClientMessageHandler.handleClient(message, ctx); } } - public static void handleServer(T payload, PlayPayloadContext ctx) { - MinecraftServer server = ctx.level().get().getServer(); - if (payload instanceof Message message) - message.onServerReceived(server, (ServerPlayer) ctx.player().get()); + public static void handleServer(T message, IPayloadContext ctx) { + MinecraftServer server = ctx.player().getServer(); + message.onServerReceived(server, (ServerPlayer) ctx.player()); } public static class ClientMessageHandler { - public static void handleClient(T payload, PlayPayloadContext ctx) { + public static void handleClient(T message, IPayloadContext ctx) { Minecraft minecraft = Minecraft.getInstance(); - if (payload instanceof Message message) - message.onClientReceived(minecraft, minecraft.player); + message.onClientReceived(minecraft, minecraft.player); } } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/Networking.java b/src/main/java/com/klikli_dev/theurgy/network/Networking.java index b48dcc07a..72d00b97e 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/Networking.java +++ b/src/main/java/com/klikli_dev/theurgy/network/Networking.java @@ -6,55 +6,43 @@ import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.network.messages.*; -import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.chunk.LevelChunk; +import net.minecraft.world.level.ChunkPos; import net.neoforged.neoforge.network.PacketDistributor; -import net.neoforged.neoforge.network.event.RegisterPayloadHandlerEvent; -import net.neoforged.neoforge.network.registration.IPayloadRegistrar; +import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; public class Networking { - public static void register(final RegisterPayloadHandlerEvent event) { - final IPayloadRegistrar registrar = event.registrar(Theurgy.MODID); + public static void register(final RegisterPayloadHandlersEvent event) { + var registrar = event.registrar(Theurgy.MODID); //to server - registrar.play(MessageSetDivinationResult.ID, MessageSetDivinationResult::new, MessageHandler::handle); - registrar.play(MessageSetMode.ID, MessageSetMode::new, MessageHandler::handle); - registrar.play(MessageItemModeSelectDirection.ID, MessageItemModeSelectDirection::new, MessageHandler::handle); - registrar.play(MessageCaloricFluxEmitterSelection.ID, MessageCaloricFluxEmitterSelection::new, MessageHandler::handle); - registrar.play(MessageSulfuricFluxEmitterSelection.ID, MessageSulfuricFluxEmitterSelection::new, MessageHandler::handle); + registrar.playToServer(MessageSetDivinationResult.TYPE, MessageSetDivinationResult.STREAM_CODEC, MessageHandler::handle); + registrar.playToServer(MessageSetMode.TYPE, MessageSetMode.STREAM_CODEC, MessageHandler::handle); + registrar.playToServer(MessageCaloricFluxEmitterSelection.TYPE, MessageCaloricFluxEmitterSelection.STREAM_CODEC, MessageHandler::handle); + registrar.playToServer(MessageSulfuricFluxEmitterSelection.TYPE, MessageSulfuricFluxEmitterSelection.STREAM_CODEC, MessageHandler::handle); //to client - registrar.play(MessageRequestCaloricFluxEmitterSelection.ID, MessageRequestCaloricFluxEmitterSelection::new, MessageHandler::handle); - registrar.play(MessageRequestSulfuricFluxEmitterSelection.ID, MessageRequestSulfuricFluxEmitterSelection::new, MessageHandler::handle); - registrar.play(MessageShowCaloricFlux.ID, MessageShowCaloricFlux::new, MessageHandler::handle); - registrar.play(MessageShowSulfuricFluxEmitterStatus.ID, MessageShowSulfuricFluxEmitterStatus::new, MessageHandler::handle); - registrar.play(MessageShowLogisticsNodeStatus.ID, MessageShowLogisticsNodeStatus::new, MessageHandler::handle); - registrar.play(MessageAddWires.ID, MessageAddWires::new, MessageHandler::handle); - registrar.play(MessageRemoveWires.ID, MessageRemoveWires::new, MessageHandler::handle); + registrar.playToClient(MessageRequestCaloricFluxEmitterSelection.TYPE, MessageRequestCaloricFluxEmitterSelection.STREAM_CODEC, MessageHandler::handle); + registrar.playToClient(MessageRequestSulfuricFluxEmitterSelection.TYPE, MessageRequestSulfuricFluxEmitterSelection.STREAM_CODEC, MessageHandler::handle); + registrar.playToClient(MessageShowCaloricFlux.TYPE, MessageShowCaloricFlux.STREAM_CODEC, MessageHandler::handle); + registrar.playToClient(MessageShowSulfuricFluxEmitterStatus.TYPE, MessageShowSulfuricFluxEmitterStatus.STREAM_CODEC, MessageHandler::handle); + registrar.playToClient(MessageShowLogisticsNodeStatus.TYPE, MessageShowLogisticsNodeStatus.STREAM_CODEC, MessageHandler::handle); + registrar.playToClient(MessageAddWires.TYPE, MessageAddWires.STREAM_CODEC, MessageHandler::handle); + registrar.playToClient(MessageRemoveWires.TYPE, MessageRemoveWires.STREAM_CODEC, MessageHandler::handle); } public static void sendTo(ServerPlayer player, T message) { - PacketDistributor.PLAYER.with(player).send(message); + PacketDistributor.sendToPlayer(player, message); } - public static void sendToServer(T message) { - PacketDistributor.SERVER.noArg().send(message); - } - - public static void sendToTracking(Entity entity, T message) { - PacketDistributor.TRACKING_ENTITY.with(entity).send(message); + public static void sendToTracking(ServerLevel level, ChunkPos chunkPos, T message) { + PacketDistributor.sendToPlayersTrackingChunk(level, chunkPos, message); } - public static void sendToTracking(LevelChunk chunk, T message) { - PacketDistributor.TRACKING_CHUNK.with(chunk).send(message); - } - - public static void sendToDimension(ResourceKey dimensionKey, T message) { - PacketDistributor.DIMENSION.with(dimensionKey).send(message); + public static void sendToServer(T message) { + PacketDistributor.sendToServer(message); } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageAddWires.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageAddWires.java index fc44fc34c..1aa9eb3ad 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageAddWires.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageAddWires.java @@ -10,40 +10,34 @@ import com.klikli_dev.theurgy.network.Message; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; import net.minecraft.client.Minecraft; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.world.entity.player.Player; +import org.jetbrains.annotations.NotNull; import java.util.Set; public class MessageAddWires implements Message { - public static final ResourceLocation ID = Theurgy.loc("add_wires"); + public static final Type TYPE = new Type<>(Theurgy.loc("add_wires")); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + Wire.STREAM_CODEC.apply(ByteBufCodecs.collection(ObjectOpenHashSet::new)), + (m) -> m.wires, + MessageAddWires::new + ); - public Set wires; + public final Set wires; public MessageAddWires(Set wires) { this.wires = wires; } - public MessageAddWires(FriendlyByteBuf buf) { - this.decode(buf); - } - - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeCollection(this.wires, (buf1, wire) -> buf1.writeNbt(wire.save(new CompoundTag()))); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.wires = buf.readCollection(ObjectOpenHashSet::new, (buf1) -> Wire.load(buf1.readNbt())); - } - @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageCaloricFluxEmitterSelection.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageCaloricFluxEmitterSelection.java index 463678401..119669626 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageCaloricFluxEmitterSelection.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageCaloricFluxEmitterSelection.java @@ -9,45 +9,39 @@ import com.klikli_dev.theurgy.content.apparatus.caloricfluxemitter.CaloricFluxEmitterSelectedPoint; import com.klikli_dev.theurgy.network.Message; import net.minecraft.core.BlockPos; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; public class MessageCaloricFluxEmitterSelection implements Message { + public static final Type TYPE = new Type<>(Theurgy.loc("caloric_flux_emitter_selection")); - public static final ResourceLocation ID = Theurgy.loc("caloric_flux_emitter_selection"); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + BlockPos.STREAM_CODEC, + (m) -> m.blockPos, + CaloricFluxEmitterSelectedPoint.STREAM_CODEC.apply(ByteBufCodecs.list()), + (m) -> m.selectedPoints, + MessageCaloricFluxEmitterSelection::new + ); - - private List selectedPoints; - private BlockPos blockPos; + private final List selectedPoints; + private final BlockPos blockPos; public MessageCaloricFluxEmitterSelection(BlockPos blockPos, List selectedPoints) { this.blockPos = blockPos; this.selectedPoints = new ArrayList<>(selectedPoints); } - public MessageCaloricFluxEmitterSelection(FriendlyByteBuf buf) { - this.decode(buf); - } - - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeBlockPos(this.blockPos); - buf.writeCollection(this.selectedPoints, (buf1, point) -> buf1.writeJsonWithCodec(point.codec(), point)); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.blockPos = buf.readBlockPos(); - this.selectedPoints = buf.readList(buf1 -> buf1.readJsonWithCodec(CaloricFluxEmitterSelectedPoint.CODEC)); - } - @Override public void onServerReceived(MinecraftServer minecraftServer, ServerPlayer player) { Level level = player.level(); @@ -63,7 +57,7 @@ public void onServerReceived(MinecraftServer minecraftServer, ServerPlayer playe } @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageItemModeSelectDirection.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageItemModeSelectDirection.java deleted file mode 100644 index a4e020042..000000000 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageItemModeSelectDirection.java +++ /dev/null @@ -1,60 +0,0 @@ -// SPDX-FileCopyrightText: 2023 klikli-dev -// -// SPDX-License-Identifier: MIT - -package com.klikli_dev.theurgy.network.messages; - -import com.klikli_dev.theurgy.Theurgy; -import com.klikli_dev.theurgy.content.item.mercurialwand.mode.MercurialWandItemMode; -import com.klikli_dev.theurgy.content.item.mercurialwand.mode.SelectDirectionMode; -import com.klikli_dev.theurgy.content.item.mode.ModeItem; -import com.klikli_dev.theurgy.network.Message; -import net.minecraft.core.Direction; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.item.ItemStack; - - -public class MessageItemModeSelectDirection implements Message { - - public static final ResourceLocation ID = Theurgy.loc("select_direction"); - - public Direction direction; - - public MessageItemModeSelectDirection(FriendlyByteBuf buf) { - this.decode(buf); - } - - public MessageItemModeSelectDirection(Direction direction) { - this.direction = direction; - } - - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeByte(this.direction.ordinal()); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.direction = Direction.values()[buf.readByte()]; - } - - @Override - public void onServerReceived(MinecraftServer minecraftServer, ServerPlayer player) { - ItemStack stack = player.getItemInHand(InteractionHand.MAIN_HAND); - if (stack.getItem() instanceof ModeItem modeItem) { - //theoretically the current mode should be the select direction mode, - // but if we run into some sort of race condition it is better to just get it directly - var mode = (SelectDirectionMode) MercurialWandItemMode.Type.SELECT_DIRECTION.mode(); - mode.setDirection(stack, this.direction); - } - } - - @Override - public ResourceLocation id() { - return ID; - } -} diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRemoveWires.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRemoveWires.java index 436fd1936..7b9b0f2a6 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRemoveWires.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRemoveWires.java @@ -12,38 +12,35 @@ import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; +import org.jetbrains.annotations.NotNull; import java.util.Set; public class MessageRemoveWires implements Message { + public static final Type TYPE = new Type<>(Theurgy.loc("remove_wires")); - public static final ResourceLocation ID = Theurgy.loc("remove_wires"); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + Wire.STREAM_CODEC.apply(ByteBufCodecs.collection(ObjectOpenHashSet::new)), + (m) -> m.wires, + MessageRemoveWires::new + ); - public Set wires; + public final Set wires; public MessageRemoveWires(Set wires) { this.wires = wires; } - public MessageRemoveWires(FriendlyByteBuf buf) { - this.decode(buf); - } - - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeCollection(this.wires, (buf1, wire) -> buf1.writeNbt(wire.save(new CompoundTag()))); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.wires = buf.readCollection(ObjectOpenHashSet::new, (buf1) -> Wire.load(buf1.readNbt())); - } - @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } @Override diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRequestCaloricFluxEmitterSelection.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRequestCaloricFluxEmitterSelection.java index 3e4c5c733..18015e7b3 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRequestCaloricFluxEmitterSelection.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRequestCaloricFluxEmitterSelection.java @@ -9,42 +9,36 @@ import com.klikli_dev.theurgy.registry.BlockRegistry; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.world.entity.player.Player; +import org.jetbrains.annotations.NotNull; public class MessageRequestCaloricFluxEmitterSelection implements Message { + public static final Type TYPE = new Type<>(Theurgy.loc("request_caloric_flux_emitter_selection")); - public static final ResourceLocation ID = Theurgy.loc("request_caloric_flux_emitter_selection"); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + BlockPos.STREAM_CODEC, + (m) -> m.blockPos, + MessageRequestCaloricFluxEmitterSelection::new + ); - private BlockPos blockPos; + private final BlockPos blockPos; public MessageRequestCaloricFluxEmitterSelection(BlockPos blockPos) { this.blockPos = blockPos; } - public MessageRequestCaloricFluxEmitterSelection(FriendlyByteBuf buf) { - this.decode(buf); - } - - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeBlockPos(this.blockPos); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.blockPos = buf.readBlockPos(); - } - @Override public void onClientReceived(Minecraft minecraft, Player player) { BlockRegistry.CALORIC_FLUX_EMITTER.get().selectionBehaviour().onPlace(this.blockPos, player); } @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRequestSulfuricFluxEmitterSelection.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRequestSulfuricFluxEmitterSelection.java index ffd3ef1f1..f2d59d865 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRequestSulfuricFluxEmitterSelection.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageRequestSulfuricFluxEmitterSelection.java @@ -10,41 +10,37 @@ import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; +import org.jetbrains.annotations.NotNull; public class MessageRequestSulfuricFluxEmitterSelection implements Message { + public static final Type TYPE = new Type<>(Theurgy.loc("request_sulfuric_flux_emitter_selection")); - public static final ResourceLocation ID = Theurgy.loc("request_sulfuric_flux_emitter_selection"); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + BlockPos.STREAM_CODEC, + (m) -> m.blockPos, + MessageRequestSulfuricFluxEmitterSelection::new + ); - private BlockPos blockPos; + private final BlockPos blockPos; public MessageRequestSulfuricFluxEmitterSelection(BlockPos blockPos) { this.blockPos = blockPos; } - public MessageRequestSulfuricFluxEmitterSelection(FriendlyByteBuf buf) { - this.decode(buf); - } - - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeBlockPos(this.blockPos); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.blockPos = buf.readBlockPos(); - } - @Override public void onClientReceived(Minecraft minecraft, Player player) { BlockRegistry.SULFURIC_FLUX_EMITTER.get().selectionBehaviour().onPlace(this.blockPos, player); } @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSetDivinationResult.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSetDivinationResult.java index 2082381c2..195fba9e3 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSetDivinationResult.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSetDivinationResult.java @@ -8,63 +8,58 @@ import com.klikli_dev.theurgy.TheurgyConstants; import com.klikli_dev.theurgy.content.item.divinationrod.DivinationRodItem; import com.klikli_dev.theurgy.network.Message; +import com.klikli_dev.theurgy.registry.DataComponentRegistry; +import io.netty.buffer.ByteBuf; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.NotNull; +import java.util.Optional; -public class MessageSetDivinationResult implements Message { - public static final ResourceLocation ID = Theurgy.loc("set_divination_result"); +public class MessageSetDivinationResult implements Message { + public static final Type TYPE = new Type<>(Theurgy.loc("set_divination_result")); - public BlockPos pos; - public byte distance; + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + ByteBufCodecs.optional(BlockPos.STREAM_CODEC), + (m) -> Optional.ofNullable(m.pos), + ByteBufCodecs.BYTE, + (m) -> m.distance, + (pos, distance) -> new MessageSetDivinationResult(pos.orElse(null), distance) + ); - public MessageSetDivinationResult(FriendlyByteBuf buf) { - this.decode(buf); - } + public final BlockPos pos; + public final byte distance; public MessageSetDivinationResult(BlockPos pos, float distance) { this.pos = pos; this.distance = (byte) Math.min(256, distance); } - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeBoolean(this.pos != null); - if (this.pos != null) { - buf.writeBlockPos(this.pos); - } - buf.writeByte(this.distance); - } - - @Override - public void decode(FriendlyByteBuf buf) { - if (buf.readBoolean()) { - this.pos = buf.readBlockPos(); - } - this.distance = buf.readByte(); - } - @Override public void onServerReceived(MinecraftServer minecraftServer, ServerPlayer player) { ItemStack stack = player.getItemInHand(InteractionHand.MAIN_HAND); if (stack.getItem() instanceof DivinationRodItem) { - var tag = stack.getOrCreateTag(); - tag.putFloat(TheurgyConstants.Nbt.Divination.DISTANCE, this.distance); - if (this.pos != null) { - tag.putLong(TheurgyConstants.Nbt.Divination.POS, this.pos.asLong()); - } + + stack.set(DataComponentRegistry.DIVINATION_DISTANCE.get(), (float)this.distance); + stack.set(DataComponentRegistry.DIVINATION_POS.get(), this.pos); + player.inventoryMenu.broadcastChanges(); } } @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSetMode.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSetMode.java index bbcb5cc06..e8dc81ba6 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSetMode.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSetMode.java @@ -7,36 +7,36 @@ import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.content.item.mode.ModeItem; import com.klikli_dev.theurgy.network.Message; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.NotNull; public class MessageSetMode implements Message { + public static final Type TYPE = new Type<>(Theurgy.loc("set_mode")); - public static final ResourceLocation ID = Theurgy.loc("set_mode"); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + ByteBufCodecs.BYTE, + (m) -> m.shift, + MessageSetMode::new + ); - public byte shift; - public MessageSetMode(FriendlyByteBuf buf) { - this.decode(buf); - } + public final byte shift; public MessageSetMode(int shift) { - this.shift = (byte) shift; + this((byte) shift); } - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeByte(this.shift); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.shift = buf.readByte(); + public MessageSetMode(byte shift) { + this.shift = shift; } @Override @@ -48,7 +48,7 @@ public void onServerReceived(MinecraftServer minecraftServer, ServerPlayer playe } @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowCaloricFlux.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowCaloricFlux.java index 1cda17e63..e1d11e716 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowCaloricFlux.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowCaloricFlux.java @@ -12,22 +12,34 @@ import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.world.entity.player.Player; import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.NotNull; public class MessageShowCaloricFlux implements Message { - - public static final ResourceLocation ID = Theurgy.loc("show_caloric_flux"); + public static final Type TYPE = new Type<>(Theurgy.loc("show_caloric_flux")); public static final Color COLOR = new Color(0xdb3f07, false); - private BlockPos from; - private BlockPos to; + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + BlockPos.STREAM_CODEC, + (m) -> m.from, + BlockPos.STREAM_CODEC, + (m) -> m.to, + Direction.STREAM_CODEC, + (m) -> m.emitterDirection, + MessageShowCaloricFlux::new + ); + + private final BlockPos from; + private final BlockPos to; - private Direction emitterDirection; + private final Direction emitterDirection; public MessageShowCaloricFlux(BlockPos from, BlockPos to, Direction emitterDirection) { this.from = from; @@ -35,24 +47,6 @@ public MessageShowCaloricFlux(BlockPos from, BlockPos to, Direction emitterDirec this.emitterDirection = emitterDirection; } - public MessageShowCaloricFlux(FriendlyByteBuf buf) { - this.decode(buf); - } - - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeBlockPos(this.from); - buf.writeBlockPos(this.to); - buf.writeEnum(this.emitterDirection); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.from = buf.readBlockPos(); - this.to = buf.readBlockPos(); - this.emitterDirection = buf.readEnum(Direction.class); - } - @Override public void onClientReceived(Minecraft minecraft, Player player) { var level = player.level(); @@ -69,7 +63,7 @@ public void onClientReceived(Minecraft minecraft, Player player) { } @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowLogisticsNodeStatus.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowLogisticsNodeStatus.java index 154b091c1..75a2f4db0 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowLogisticsNodeStatus.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowLogisticsNodeStatus.java @@ -7,61 +7,50 @@ import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.content.render.outliner.Outliner; import com.klikli_dev.theurgy.network.Message; +import com.klikli_dev.theurgy.util.TheurgyExtraStreamCodecs; import com.mojang.datafixers.util.Pair; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.phys.shapes.Shapes; +import org.jetbrains.annotations.NotNull; import java.util.List; public class MessageShowLogisticsNodeStatus implements Message { + public static final Type TYPE = new Type<>(Theurgy.loc("show_logistics_node_status")); - public static final ResourceLocation ID = Theurgy.loc("show_logistics_node_status"); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + TheurgyExtraStreamCodecs.pair(BlockPos.STREAM_CODEC, ByteBufCodecs.INT).apply(ByteBufCodecs.list()), + (m) -> m.blockPos, + MessageShowLogisticsNodeStatus::new + ); - private List> blockPos; + private final List> blockPos; public MessageShowLogisticsNodeStatus(List> blockPos) { this.blockPos = blockPos; } - public MessageShowLogisticsNodeStatus(FriendlyByteBuf buf) { - this.decode(buf); - } - - @Override - public void encode(FriendlyByteBuf buf) { - buf.writeCollection(this.blockPos, (buffer, pair) -> { - buffer.writeBlockPos(pair.getFirst()); - buffer.writeInt(pair.getSecond()); - }); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.blockPos = buf.readList((buffer) -> { - BlockPos pos = buffer.readBlockPos(); - int status = buffer.readInt(); - return Pair.of(pos, status); - }); - } - @Override public void onClientReceived(Minecraft minecraft, Player player) { Level level = player.level(); for (var target : this.blockPos) { - Outliner.get().showAABB(target, Shapes.block().bounds().move(target.getFirst()), (int)(20 * 2.5)) + Outliner.get().showAABB(target, Shapes.block().bounds().move(target.getFirst()), (int) (20 * 2.5)) .colored(target.getSecond()) .lineWidth(1 / 16f); } } @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowSulfuricFluxEmitterStatus.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowSulfuricFluxEmitterStatus.java index b9acaa099..1ca11ce6f 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowSulfuricFluxEmitterStatus.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageShowSulfuricFluxEmitterStatus.java @@ -11,22 +11,38 @@ import com.klikli_dev.theurgy.registry.BlockRegistry; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import org.jetbrains.annotations.NotNull; import java.util.List; +import java.util.Optional; public class MessageShowSulfuricFluxEmitterStatus implements Message { + public static final Type TYPE = new Type<>(Theurgy.loc("show_sulfuric_flux_emitter_status")); - public static final ResourceLocation ID = Theurgy.loc("show_sulfuric_flux_emitter_status"); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + BlockPos.STREAM_CODEC, + (m) -> m.blockPos, + SulfuricFluxEmitterSelectedPoint.STREAM_CODEC.apply(ByteBufCodecs.list()), + (m) -> m.sourcePedestals, + ByteBufCodecs.optional(SulfuricFluxEmitterSelectedPoint.STREAM_CODEC), + (m) -> Optional.ofNullable(m.targetPedestal), + ByteBufCodecs.optional(SulfuricFluxEmitterSelectedPoint.STREAM_CODEC), + (m) -> Optional.ofNullable(m.resultPedestal), + (blockPos, sourcePedestals, targetPedestal, resultPedestal) -> new MessageShowSulfuricFluxEmitterStatus(blockPos, sourcePedestals, targetPedestal.orElse(null), resultPedestal.orElse(null)) + ); - private List sourcePedestals; - private SulfuricFluxEmitterSelectedPoint targetPedestal; - private SulfuricFluxEmitterSelectedPoint resultPedestal; - private BlockPos blockPos; + private final List sourcePedestals; + private final SulfuricFluxEmitterSelectedPoint targetPedestal; + private final SulfuricFluxEmitterSelectedPoint resultPedestal; + private final BlockPos blockPos; public MessageShowSulfuricFluxEmitterStatus(BlockPos blockPos, List sourcePedestals, SulfuricFluxEmitterSelectedPoint targetPedestal, SulfuricFluxEmitterSelectedPoint resultPedestal) { this.blockPos = blockPos; @@ -35,26 +51,6 @@ public MessageShowSulfuricFluxEmitterStatus(BlockPos blockPos, List buf1.writeJsonWithCodec(point.codec(), point)); - buf.writeNullable(this.targetPedestal, (buf1, point) -> buf1.writeJsonWithCodec(point.codec(), point)); - buf.writeNullable(this.resultPedestal, (buf1, point) -> buf1.writeJsonWithCodec(point.codec(), point)); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.blockPos = buf.readBlockPos(); - this.sourcePedestals = buf.readList(buf1 -> buf1.readJsonWithCodec(SulfuricFluxEmitterSelectedPoint.CODEC)); - this.targetPedestal = buf.readNullable(buf1 -> buf1.readJsonWithCodec(SulfuricFluxEmitterSelectedPoint.CODEC)); - this.resultPedestal = buf.readNullable(buf1 -> buf1.readJsonWithCodec(SulfuricFluxEmitterSelectedPoint.CODEC)); - } - @Override public void onClientReceived(Minecraft minecraft, Player player) { Level level = player.level(); @@ -74,7 +70,7 @@ public void onClientReceived(Minecraft minecraft, Player player) { } @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSulfuricFluxEmitterSelection.java b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSulfuricFluxEmitterSelection.java index 069c7f5a2..4ecfb5d4e 100644 --- a/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSulfuricFluxEmitterSelection.java +++ b/src/main/java/com/klikli_dev/theurgy/network/messages/MessageSulfuricFluxEmitterSelection.java @@ -9,24 +9,40 @@ import com.klikli_dev.theurgy.content.apparatus.reformationarray.SulfuricFluxEmitterSelectedPoint; import com.klikli_dev.theurgy.network.Message; import net.minecraft.core.BlockPos; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; +import java.util.Optional; public class MessageSulfuricFluxEmitterSelection implements Message { + public static final Type TYPE = new Type<>(Theurgy.loc("sulfuric_flux_emitter_selection")); - public static final ResourceLocation ID = Theurgy.loc("sulfuric_flux_emitter_selection"); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + BlockPos.STREAM_CODEC, + (m) -> m.blockPos, + SulfuricFluxEmitterSelectedPoint.STREAM_CODEC.apply(ByteBufCodecs.list()), + (m) -> m.sourcePedestals, + ByteBufCodecs.optional(SulfuricFluxEmitterSelectedPoint.STREAM_CODEC), + (m) -> Optional.ofNullable(m.targetPedestal), + ByteBufCodecs.optional(SulfuricFluxEmitterSelectedPoint.STREAM_CODEC), + (m) -> Optional.ofNullable(m.resultPedestal), + (blockPos, sourcePedestals, targetPedestal, resultPedestal) -> new MessageSulfuricFluxEmitterSelection(blockPos, sourcePedestals, targetPedestal.orElse(null), resultPedestal.orElse(null)) + ); - private List sourcePedestals; - private SulfuricFluxEmitterSelectedPoint targetPedestal; - private SulfuricFluxEmitterSelectedPoint resultPedestal; - private BlockPos blockPos; + private final List sourcePedestals; + private final SulfuricFluxEmitterSelectedPoint targetPedestal; + private final SulfuricFluxEmitterSelectedPoint resultPedestal; + private final BlockPos blockPos; public MessageSulfuricFluxEmitterSelection(BlockPos blockPos, List sourcePedestals, SulfuricFluxEmitterSelectedPoint targetPedestal, SulfuricFluxEmitterSelectedPoint resultPedestal) { this.blockPos = blockPos; @@ -35,26 +51,6 @@ public MessageSulfuricFluxEmitterSelection(BlockPos blockPos, List buf1.writeJsonWithCodec(point.codec(), point)); - buf.writeNullable(this.targetPedestal, (buf1, point) -> buf1.writeJsonWithCodec(point.codec(), point)); - buf.writeNullable(this.resultPedestal, (buf1, point) -> buf1.writeJsonWithCodec(point.codec(), point)); - } - - @Override - public void decode(FriendlyByteBuf buf) { - this.blockPos = buf.readBlockPos(); - this.sourcePedestals = buf.readList(buf1 -> buf1.readJsonWithCodec(SulfuricFluxEmitterSelectedPoint.CODEC)); - this.targetPedestal = buf.readNullable(buf1 -> buf1.readJsonWithCodec(SulfuricFluxEmitterSelectedPoint.CODEC)); - this.resultPedestal = buf.readNullable(buf1 -> buf1.readJsonWithCodec(SulfuricFluxEmitterSelectedPoint.CODEC)); - } - @Override public void onServerReceived(MinecraftServer minecraftServer, ServerPlayer player) { Level level = player.level(); @@ -74,7 +70,7 @@ public void onServerReceived(MinecraftServer minecraftServer, ServerPlayer playe } @Override - public ResourceLocation id() { - return ID; + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/com/klikli_dev/theurgy/registry/BlockTagRegistry.java b/src/main/java/com/klikli_dev/theurgy/registry/BlockTagRegistry.java index 3d40add5d..955fec4fd 100644 --- a/src/main/java/com/klikli_dev/theurgy/registry/BlockTagRegistry.java +++ b/src/main/java/com/klikli_dev/theurgy/registry/BlockTagRegistry.java @@ -7,7 +7,10 @@ import com.klikli_dev.theurgy.Theurgy; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; public class BlockTagRegistry { @@ -30,19 +33,18 @@ public class BlockTagRegistry { public static final TagKey REFORMATION_RESULT_PEDESTALS = tag("reformation_result_pedestals"); public static final TagKey REFORMATION_PEDESTALS = tag("reformation_pedestals"); - public static final TagKey SAL_AMMONIAC_ORES = neoTag("ores/sal_ammoniac"); + public static final TagKey SAL_AMMONIAC_ORES = cTag("ores/sal_ammoniac"); public static TagKey tag(String id) { - return tag(Theurgy.loc(id)); + return BlockTags.create(Theurgy.loc(id)); } - - public static TagKey neoTag(String id) { - return tag(new ResourceLocation("forge", id)); + public static TagKey tag(ResourceLocation id) { + return BlockTags.create(id); } - public static TagKey tag(ResourceLocation id) { - return TagKey.create(Registries.BLOCK, id); + private static TagKey cTag(String name) { + return BlockTags.create(new ResourceLocation("c", name)); } } diff --git a/src/main/java/com/klikli_dev/theurgy/registry/ConditionRegistry.java b/src/main/java/com/klikli_dev/theurgy/registry/ConditionRegistry.java index a325b6fb8..1168c9708 100644 --- a/src/main/java/com/klikli_dev/theurgy/registry/ConditionRegistry.java +++ b/src/main/java/com/klikli_dev/theurgy/registry/ConditionRegistry.java @@ -7,13 +7,14 @@ import com.klikli_dev.theurgy.Theurgy; import com.klikli_dev.theurgy.content.recipe.condition.FluidTagEmptyCondition; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.neoforged.neoforge.common.conditions.ICondition; import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredRegister; import net.neoforged.neoforge.registries.NeoForgeRegistries; public class ConditionRegistry { - public static final DeferredRegister> CONDITION_SERIALIZERS = DeferredRegister.create(NeoForgeRegistries.CONDITION_SERIALIZERS, Theurgy.MODID); + public static final DeferredRegister> CONDITION_SERIALIZERS = DeferredRegister.create(NeoForgeRegistries.CONDITION_SERIALIZERS, Theurgy.MODID); - public static final DeferredHolder, Codec> FLUID_TAG_EMPTY = CONDITION_SERIALIZERS.register("fluid_tag_empty", () -> FluidTagEmptyCondition.CODEC); + public static final DeferredHolder, MapCodec> FLUID_TAG_EMPTY = CONDITION_SERIALIZERS.register("fluid_tag_empty", () -> FluidTagEmptyCondition.CODEC); } diff --git a/src/main/java/com/klikli_dev/theurgy/registry/DataComponentRegistry.java b/src/main/java/com/klikli_dev/theurgy/registry/DataComponentRegistry.java new file mode 100644 index 000000000..469dc4d0d --- /dev/null +++ b/src/main/java/com/klikli_dev/theurgy/registry/DataComponentRegistry.java @@ -0,0 +1,142 @@ +/* + * SPDX-FileCopyrightText: 2022 klikli-dev + * + * SPDX-License-Identifier: MIT + */ + +package com.klikli_dev.theurgy.registry; + +import com.klikli_dev.theurgy.Theurgy; +import com.klikli_dev.theurgy.content.item.mercurialwand.mode.MercurialWandItemMode; +import com.klikli_dev.theurgy.logistics.WireEndPoint; +import com.klikli_dev.theurgy.util.TheurgyExtraCodecs; +import com.klikli_dev.theurgy.util.TheurgyExtraStreamCodecs; +import com.mojang.serialization.Codec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.Tiers; +import net.minecraft.world.level.block.Block; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.function.UnaryOperator; + +public class DataComponentRegistry { + + public static final DeferredRegister.DataComponents DATA_COMPONENTS = DeferredRegister.createDataComponents(Theurgy.MODID); + + public static final DeferredHolder, DataComponentType> MERCURY_FLUX_STORAGE = DATA_COMPONENTS.registerComponentType("mercury_flux_storage", builder -> builder + .persistent(Codec.INT) + .networkSynchronized(ByteBufCodecs.INT) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> MERCURY_FLUX_TO_CONVERT = DATA_COMPONENTS.registerComponentType("mercury_flux_to_convert", builder -> builder + .persistent(Codec.INT) + .networkSynchronized(ByteBufCodecs.INT) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> CURRENT_MERCURY_FLUX_PER_TICK = DATA_COMPONENTS.registerComponentType("current_mercury_flux_per_tick", builder -> builder + .persistent(Codec.INT) + .networkSynchronized(ByteBufCodecs.INT) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType>> DIVINATION_SETTINGS_ALLOWED_BLOCKS_TAG = DATA_COMPONENTS.registerComponentType("divination_settings_allowed_blocks_tag", builder -> builder + .persistent(TagKey.codec(Registries.BLOCK)) + .networkSynchronized(ByteBufCodecs.fromCodec(TagKey.codec(Registries.BLOCK))) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType>> DIVINATION_SETTINGS_DISALLOWED_BLOCKS_TAG = DATA_COMPONENTS.registerComponentType("divination_settings_disallowed_blocks_tag", builder -> builder + .persistent(TagKey.codec(Registries.BLOCK)) + .networkSynchronized(ByteBufCodecs.fromCodec(TagKey.codec(Registries.BLOCK))) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> DIVINATION_SETTINGS_DURATION = DATA_COMPONENTS.registerComponentType("divination_settings_duration", builder -> builder + .persistent(Codec.INT) + .networkSynchronized(ByteBufCodecs.INT) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> DIVINATION_SETTINGS_MAX_DAMAGE = DATA_COMPONENTS.registerComponentType("divination_settings_max_damage", builder -> builder + .persistent(Codec.INT) + .networkSynchronized(ByteBufCodecs.INT) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> DIVINATION_SETTINGS_RANGE = DATA_COMPONENTS.registerComponentType("divination_settings_range", builder -> builder + .persistent(Codec.INT) + .networkSynchronized(ByteBufCodecs.INT) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> DIVINATION_SETTINGS_TIER = DATA_COMPONENTS.registerComponentType("divination_settings_tier", builder -> builder + .persistent(TheurgyExtraCodecs.TIERS_CODEC) + .networkSynchronized(TheurgyExtraStreamCodecs.TIERS_STREAM_CODEC) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> DIVINATION_SETTINGS_ALLOW_ATTUNING = DATA_COMPONENTS.registerComponentType("divination_settings_allow_attuning", builder -> builder + .persistent(Codec.BOOL) + .networkSynchronized(ByteBufCodecs.BOOL) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> DIVINATION_DISTANCE = DATA_COMPONENTS.registerComponentType("divination_distance", builder -> builder + .persistent(Codec.FLOAT) + .networkSynchronized(ByteBufCodecs.FLOAT) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> DIVINATION_POS = DATA_COMPONENTS.registerComponentType("divination_pos", builder -> builder + .persistent(BlockPos.CODEC) + .networkSynchronized(BlockPos.STREAM_CODEC) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType>> DIVINATION_LINKED_BLOCK = DATA_COMPONENTS.registerComponentType("divination_linked_block", builder -> builder + .persistent(BuiltInRegistries.BLOCK.holderByNameCodec()) + .networkSynchronized(ByteBufCodecs.holderRegistry(Registries.BLOCK)) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType>> DIVINATION_LINKED_TAG = DATA_COMPONENTS.registerComponentType("divination_linked_tag", builder -> builder + .persistent(TagKey.codec(Registries.BLOCK)) + .networkSynchronized(ByteBufCodecs.fromCodec(TagKey.codec(Registries.BLOCK))) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> WIRE_END_POINT = DATA_COMPONENTS.registerComponentType("wire_end_point", builder -> builder + .persistent(WireEndPoint.CODEC) + .networkSynchronized(WireEndPoint.STREAM_CODEC) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType> MERCURIAL_WAND_ITEM_MODE = DATA_COMPONENTS.registerComponentType("mercurial_wand_item_mode", builder -> builder + .persistent(MercurialWandItemMode.CODEC) + .networkSynchronized(MercurialWandItemMode.STREAM_CODEC) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType>> SULFUR_SOURCE_ITEM = DATA_COMPONENTS.registerComponentType("sulfur_source_item", builder -> builder + .persistent(BuiltInRegistries.ITEM.holderByNameCodec()) + .networkSynchronized(ByteBufCodecs.holderRegistry(Registries.ITEM)) + .cacheEncoding() + ); + + public static final DeferredHolder, DataComponentType>> SULFUR_SOURCE_TAG = DATA_COMPONENTS.registerComponentType("sulfur_source_tag", builder -> builder + .persistent(TagKey.codec(Registries.ITEM)) + .networkSynchronized(ByteBufCodecs.fromCodec(TagKey.codec(Registries.ITEM))) + .cacheEncoding() + ); +} diff --git a/src/main/java/com/klikli_dev/theurgy/registry/EntityDataSerializerRegistry.java b/src/main/java/com/klikli_dev/theurgy/registry/EntityDataSerializerRegistry.java index ac03fe5ed..b6c203496 100644 --- a/src/main/java/com/klikli_dev/theurgy/registry/EntityDataSerializerRegistry.java +++ b/src/main/java/com/klikli_dev/theurgy/registry/EntityDataSerializerRegistry.java @@ -5,20 +5,19 @@ package com.klikli_dev.theurgy.registry; import com.klikli_dev.theurgy.Theurgy; +import com.klikli_dev.theurgy.util.TheurgyExtraStreamCodecs; +import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.syncher.EntityDataSerializer; import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.registries.DeferredRegister; import net.neoforged.neoforge.registries.NeoForgeRegistries; +import org.joml.Vector3f; import java.util.function.Supplier; public class EntityDataSerializerRegistry { public static DeferredRegister> ENTITY_DATA_SERIALIZERS = DeferredRegister.create(NeoForgeRegistries.ENTITY_DATA_SERIALIZERS, Theurgy.MODID); - public static final Supplier> VEC3_FLOAT = ENTITY_DATA_SERIALIZERS.register("vec3_float", () -> EntityDataSerializer.simple((buf, vec) -> { - buf.writeFloat((float) vec.x); - buf.writeFloat((float) vec.y); - buf.writeFloat((float) vec.z); - }, (buf) -> new Vec3(buf.readFloat(), buf.readFloat(), buf.readFloat()))); - + public static final Supplier> VEC3_FLOAT = ENTITY_DATA_SERIALIZERS.register("vec3_float", () -> + EntityDataSerializer.forValueType(TheurgyExtraStreamCodecs.VEC3_FLOAT)); } diff --git a/src/main/java/com/klikli_dev/theurgy/registry/IngredientTypeRegistry.java b/src/main/java/com/klikli_dev/theurgy/registry/IngredientTypeRegistry.java deleted file mode 100644 index 2ed616ed8..000000000 --- a/src/main/java/com/klikli_dev/theurgy/registry/IngredientTypeRegistry.java +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-FileCopyrightText: 2024 klikli_dev -// -// SPDX-License-Identifier: MIT - -package com.klikli_dev.theurgy.registry; - -import com.klikli_dev.theurgy.Theurgy; -import com.klikli_dev.theurgy.content.recipe.ingredient.FluidIngredient; -import net.neoforged.neoforge.common.crafting.IngredientType; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; -import net.neoforged.neoforge.registries.NeoForgeRegistries; - -public class IngredientTypeRegistry { - public static final DeferredRegister> INGREDIENT_TYPES = DeferredRegister.create(NeoForgeRegistries.INGREDIENT_TYPES, Theurgy.MODID); - - public static final DeferredHolder, IngredientType> FLUID_INGREDIENT = INGREDIENT_TYPES.register("fluid", () -> new IngredientType<>(FluidIngredient.CODEC, FluidIngredient.CODEC_NONEMPTY)); -} diff --git a/src/main/java/com/klikli_dev/theurgy/registry/ItemRegistry.java b/src/main/java/com/klikli_dev/theurgy/registry/ItemRegistry.java index b7118c97d..5c789b777 100644 --- a/src/main/java/com/klikli_dev/theurgy/registry/ItemRegistry.java +++ b/src/main/java/com/klikli_dev/theurgy/registry/ItemRegistry.java @@ -71,54 +71,54 @@ public class ItemRegistry { //Divination rods public static final DeferredItem DIVINATION_ROD_T1 = ITEMS.register("divination_rod_t1", () -> new DivinationRodItem( - new Item.Properties().stacksTo(1).defaultDurability(1), + new Item.Properties().stacksTo(1).durability(1), Tiers.STONE, BlockTagRegistry.DIVINATION_ROD_T1_ALLOWED_BLOCKS, BlockTagRegistry.DIVINATION_ROD_T1_DISALLOWED_BLOCKS, 96, 40, 8, true)); public static final DeferredItem DIVINATION_ROD_T2 = ITEMS.register("divination_rod_t2", () -> new DivinationRodItem( - new Item.Properties().stacksTo(1).defaultDurability(1), + new Item.Properties().stacksTo(1).durability(1), Tiers.IRON, BlockTagRegistry.DIVINATION_ROD_T2_ALLOWED_BLOCKS, BlockTagRegistry.DIVINATION_ROD_T2_DISALLOWED_BLOCKS, 96, 40, 16, true)); public static final DeferredItem DIVINATION_ROD_T3 = ITEMS.register("divination_rod_t3", () -> new DivinationRodItem( - new Item.Properties().stacksTo(1).defaultDurability(1), + new Item.Properties().stacksTo(1).durability(1), Tiers.DIAMOND, BlockTagRegistry.DIVINATION_ROD_T3_ALLOWED_BLOCKS, BlockTagRegistry.DIVINATION_ROD_T3_DISALLOWED_BLOCKS, 96, 40, 32, true)); public static final DeferredItem DIVINATION_ROD_T4 = ITEMS.register("divination_rod_t4", () -> new DivinationRodItem( - new Item.Properties().stacksTo(1).defaultDurability(1), + new Item.Properties().stacksTo(1).durability(1), Tiers.NETHERITE, BlockTagRegistry.DIVINATION_ROD_T4_ALLOWED_BLOCKS, BlockTagRegistry.DIVINATION_ROD_T4_DISALLOWED_BLOCKS, 96, 40, 128, true)); public static final DeferredItem SULFUR_ATTUNED_DIVINATION_ROD_ABUNDANT = ITEMS.register("sulfur_attuned_divination_rod_abundant", () -> new DivinationRodItem( - new Item.Properties().stacksTo(1).defaultDurability(1), + new Item.Properties().stacksTo(1).durability(1), Tiers.STONE, BlockTagRegistry.DIVINATION_ROD_T1_ALLOWED_BLOCKS, BlockTagRegistry.DIVINATION_ROD_T1_DISALLOWED_BLOCKS, 96, 40, 16, false)); public static final DeferredItem SULFUR_ATTUNED_DIVINATION_ROD_COMMON = ITEMS.register("sulfur_attuned_divination_rod_common", () -> new DivinationRodItem( - new Item.Properties().stacksTo(1).defaultDurability(1), + new Item.Properties().stacksTo(1).durability(1), Tiers.STONE, BlockTagRegistry.DIVINATION_ROD_T1_ALLOWED_BLOCKS, BlockTagRegistry.DIVINATION_ROD_T1_DISALLOWED_BLOCKS, 96, 40, 16, false)); public static final DeferredItem SULFUR_ATTUNED_DIVINATION_ROD_RARE = ITEMS.register("sulfur_attuned_divination_rod_rare", () -> new DivinationRodItem( - new Item.Properties().stacksTo(1).defaultDurability(1), + new Item.Properties().stacksTo(1).durability(1), Tiers.STONE, BlockTagRegistry.DIVINATION_ROD_T2_ALLOWED_BLOCKS, BlockTagRegistry.DIVINATION_ROD_T2_DISALLOWED_BLOCKS, 96, 40, 32, false)); public static final DeferredItem SULFUR_ATTUNED_DIVINATION_ROD_PRECIOUS = ITEMS.register("sulfur_attuned_divination_rod_precious", () -> new DivinationRodItem( - new Item.Properties().stacksTo(1).defaultDurability(1), + new Item.Properties().stacksTo(1).durability(1), Tiers.STONE, BlockTagRegistry.DIVINATION_ROD_T3_ALLOWED_BLOCKS, BlockTagRegistry.DIVINATION_ROD_T3_DISALLOWED_BLOCKS, 96, 40, 32, false)); public static final DeferredItem AMETHYST_DIVINATION_ROD = ITEMS.register("amethyst_divination_rod", () -> new DivinationRodItem( - new Item.Properties().stacksTo(1).defaultDurability(1), + new Item.Properties().stacksTo(1).durability(1), Tiers.STONE, BlockTagRegistry.DIVINATION_ROD_T1_ALLOWED_BLOCKS, BlockTagRegistry.DIVINATION_ROD_T1_DISALLOWED_BLOCKS, 96, 40, 16, false)); @@ -132,7 +132,7 @@ public class ItemRegistry { //Buckets public static final DeferredItem SAL_AMMONIAC_BUCKET = ITEMS.register("sal_ammoniac_bucket", () -> new BucketItem( - () -> FluidRegistry.SAL_AMMONIAC.get(), new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1)) + FluidRegistry.SAL_AMMONIAC.get(), new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1)) ); //Ingredients diff --git a/src/main/java/com/klikli_dev/theurgy/registry/ItemTagRegistry.java b/src/main/java/com/klikli_dev/theurgy/registry/ItemTagRegistry.java index ce42c7e1d..6ec0da487 100644 --- a/src/main/java/com/klikli_dev/theurgy/registry/ItemTagRegistry.java +++ b/src/main/java/com/klikli_dev/theurgy/registry/ItemTagRegistry.java @@ -5,10 +5,11 @@ package com.klikli_dev.theurgy.registry; import com.klikli_dev.theurgy.Theurgy; -import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.neoforged.neoforge.common.Tags; public class ItemTagRegistry { @@ -42,10 +43,6 @@ public class ItemTagRegistry { public static final TagKey ALCHEMICAL_SALTS = tag("alchemical_salts"); public static final TagKey ALCHEMICAL_MERCURIES = tag("alchemical_mercuries"); - public static final TagKey SAL_AMMONIAC_GEMS = neoTag("gems/sal_ammoniac"); - public static final TagKey SAL_AMMONIAC_ORES = neoTag("ores/sal_ammoniac"); - - public static final TagKey LOW_MERCURY_ORES = tag("ores/mercury/low"); public static final TagKey MEDIUM_MERCURY_ORES = tag("ores/mercury/medium"); public static final TagKey HIGH_MERCURY_ORES = tag("ores/mercury/high"); @@ -66,18 +63,89 @@ public class ItemTagRegistry { public static final TagKey MEDIUM_MERCURY_OTHER_MINERALS = tag("other_minerals/mercury/medium"); public static final TagKey HIGH_MERCURY_OTHER_MINERALS = tag("other_minerals/mercury/high"); - public static final TagKey SUGAR = neoTag("sugar"); + public static final TagKey GEMS_SAL_AMMONIAC = cTag("gems/sal_ammoniac"); + public static final TagKey ORES_SAL_AMMONIAC = cTag("ores/sal_ammoniac"); + + //Common tags for other mods start here: + + //Common Metal Ores + public static final TagKey ORES_URANIUM = cTag("ores/uranium"); + public static final TagKey ORES_SILVER = cTag("ores/silver"); + public static final TagKey ORES_AZURE_SILVER = cTag("ores/azure_silver"); + public static final TagKey ORES_ZINC = cTag("ores/zinc"); + public static final TagKey ORES_OSMIUM = cTag("ores/osmium"); + public static final TagKey ORES_NICKEL = cTag("ores/nickel"); + public static final TagKey ORES_LEAD = cTag("ores/lead"); + public static final TagKey ORES_ALLTHEMODIUM = cTag("ores/allthemodium"); + public static final TagKey ORES_UNOBTAINIUM = cTag("ores/unobtainium"); + public static final TagKey ORES_IRIDIUM = cTag("ores/iridium"); + public static final TagKey ORES_TIN = cTag("ores/tin"); + public static final TagKey ORES_CINNABAR = cTag("ores/cinnabar"); + public static final TagKey ORES_CRIMSON_IRON = cTag("ores/crimson_iron"); + public static final TagKey ORES_PLATINUM = cTag("ores/platinum"); + public static final TagKey ORES_VIBRANIUM = cTag("ores/vibranium"); + + // Common Gem Ores + public static final TagKey ORES_RUBY = cTag("ores/ruby"); + public static final TagKey ORES_APATITE = cTag("ores/apatite"); + public static final TagKey ORES_PERIDOT = cTag("ores/peridot"); + public static final TagKey ORES_FLUORITE = cTag("ores/fluorite"); + public static final TagKey ORES_SAPPHIRE = cTag("ores/sapphire"); + + //Other Common Mineral Ores + public static final TagKey ORES_SULFUR = cTag("ores/sulfur"); + + //Common Raw Materials + public static final TagKey RAW_MATERIALS_URANIUM = cTag("raw_materials/uranium"); + public static final TagKey RAW_MATERIALS_AZURE_SILVER = cTag("raw_materials/azure_silver"); + public static final TagKey RAW_MATERIALS_SILVER = cTag("raw_materials/silver"); + public static final TagKey RAW_MATERIALS_ZINC = cTag("raw_materials/zinc"); + public static final TagKey RAW_MATERIALS_OSMIUM = cTag("raw_materials/osmium"); + public static final TagKey RAW_MATERIALS_NICKEL = cTag("raw_materials/nickel"); + public static final TagKey RAW_MATERIALS_LEAD = cTag("raw_materials/lead"); + public static final TagKey RAW_MATERIALS_ALLTHEMODIUM = cTag("raw_materials/allthemodium"); + public static final TagKey RAW_MATERIALS_UNOBTAINIUM = cTag("raw_materials/unobtainium"); + public static final TagKey RAW_MATERIALS_IRIDIUM = cTag("raw_materials/iridium"); + public static final TagKey RAW_MATERIALS_TIN = cTag("raw_materials/tin"); + public static final TagKey RAW_MATERIALS_CINNABAR = cTag("raw_materials/cinnabar"); + public static final TagKey RAW_MATERIALS_CRIMSON_IRON = cTag("raw_materials/crimson_iron"); + public static final TagKey RAW_MATERIALS_PLATINUM = cTag("raw_materials/platinum"); + public static final TagKey RAW_MATERIALS_VIBRANIUM = cTag("raw_materials/vibranium"); + + //Common Metal Ingots + public static final TagKey INGOTS_URANIUM = cTag("ingots/uranium"); + public static final TagKey INGOTS_SILVER = cTag("ingots/silver"); + public static final TagKey INGOTS_AZURE_SILVER = cTag("ingots/azure_silver"); + public static final TagKey INGOTS_ZINC = cTag("ingots/zinc"); + public static final TagKey INGOTS_OSMIUM = cTag("ingots/osmium"); + public static final TagKey INGOTS_NICKEL = cTag("ingots/nickel"); + public static final TagKey INGOTS_LEAD = cTag("ingots/lead"); + public static final TagKey INGOTS_ALLTHEMODIUM = cTag("ingots/allthemodium"); + public static final TagKey INGOTS_UNOBTAINIUM = cTag("ingots/unobtainium"); + public static final TagKey INGOTS_IRIDIUM = cTag("ingots/iridium"); + public static final TagKey INGOTS_TIN = cTag("ingots/tin"); + public static final TagKey INGOTS_CINNABAR = cTag("ingots/cinnabar"); + public static final TagKey INGOTS_CRIMSON_IRON = cTag("ingots/crimson_iron"); + public static final TagKey INGOTS_PLATINUM = cTag("ingots/platinum"); + public static final TagKey INGOTS_VIBRANIUM = cTag("ingots/vibranium"); + + //Common Gems + public static final TagKey GEMS_RUBY = cTag("gems/ruby"); + public static final TagKey GEMS_APATITE = cTag("gems/apatite"); + public static final TagKey GEMS_PERIDOT = cTag("gems/peridot"); + public static final TagKey GEMS_FLUORITE = cTag("gems/fluorite"); + public static final TagKey GEMS_SAPPHIRE = cTag("gems/sapphire"); + + //Other Common Minerals + public static final TagKey GEMS_SULFUR = cTag("gems/sulfur"); + + public static final TagKey SUGARS = cTag("sugars"); public static TagKey tag(String id) { - return tag(Theurgy.loc(id)); + return ItemTags.create(Theurgy.loc(id)); } - public static TagKey neoTag(String id) { - return tag(new ResourceLocation("forge", id)); + private static TagKey cTag(String name) { + return ItemTags.create(new ResourceLocation("c", name)); } - - public static TagKey tag(ResourceLocation id) { - return TagKey.create(Registries.ITEM, id); - } - } diff --git a/src/main/java/com/klikli_dev/theurgy/registry/RecipeResultRegistry.java b/src/main/java/com/klikli_dev/theurgy/registry/RecipeResultRegistry.java new file mode 100644 index 000000000..13aac6887 --- /dev/null +++ b/src/main/java/com/klikli_dev/theurgy/registry/RecipeResultRegistry.java @@ -0,0 +1,26 @@ +// SPDX-FileCopyrightText: 2024 klikli-dev +// +// SPDX-License-Identifier: MIT + +package com.klikli_dev.theurgy.registry; + +import com.klikli_dev.theurgy.Theurgy; +import com.klikli_dev.theurgy.content.recipe.result.ItemRecipeResult; +import com.klikli_dev.theurgy.content.recipe.result.RecipeResultType; +import com.klikli_dev.theurgy.content.recipe.result.TagRecipeResult; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class RecipeResultRegistry { + public static final DeferredRegister> RECIPE_RESULT_TYPES = DeferredRegister.create( + TheurgyRegistries.RECIPE_RESULT_TYPES, Theurgy.MODID); + + + public static final DeferredHolder, RecipeResultType> ITEM = + RECIPE_RESULT_TYPES.register("item", () -> new RecipeResultType<>(ItemRecipeResult.CODEC, ItemRecipeResult.STREAM_CODEC)); + + public static final DeferredHolder, RecipeResultType> TAG = + RECIPE_RESULT_TYPES.register("tag", () -> new RecipeResultType<>(TagRecipeResult.CODEC, TagRecipeResult.STREAM_CODEC)); + + +} diff --git a/src/main/java/com/klikli_dev/theurgy/registry/SulfurRegistry.java b/src/main/java/com/klikli_dev/theurgy/registry/SulfurRegistry.java index 7aaceca9d..96b54ab31 100644 --- a/src/main/java/com/klikli_dev/theurgy/registry/SulfurRegistry.java +++ b/src/main/java/com/klikli_dev/theurgy/registry/SulfurRegistry.java @@ -11,8 +11,12 @@ import com.klikli_dev.theurgy.content.item.sulfur.AlchemicalSulfurType; import com.klikli_dev.theurgy.content.recipe.LiquefactionRecipe; import com.klikli_dev.theurgy.util.LevelUtil; +import net.minecraft.core.registries.Registries; +import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.level.Level; import net.neoforged.neoforge.common.Tags; @@ -30,8 +34,6 @@ public class SulfurRegistry { public static final DeferredRegister.Items SULFURS = DeferredRegister.createItems(Theurgy.MODID); - public static final DeferredItem GENERIC = registerWithTagSourceNameOverride("generic", AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.MISC); - public static final DeferredItem GEMS_ABUNDANT = registerNiter("gems_abundant", ItemRegistry.GEMS_ABUNDANT_ICON, AlchemicalSulfurTier.ABUNDANT); public static final DeferredItem GEMS_COMMON = registerNiter("gems_common", ItemRegistry.GEMS_COMMON_ICON, AlchemicalSulfurTier.COMMON); public static final DeferredItem GEMS_RARE = registerNiter("gems_rare", ItemRegistry.GEMS_RARE_ICON, AlchemicalSulfurTier.RARE); @@ -48,56 +50,57 @@ public class SulfurRegistry { public static final DeferredItem OTHER_MINERALS_PRECIOUS = registerNiter("other_minerals_precious", ItemRegistry.OTHER_MINERALS_PRECIOUS_ICON, AlchemicalSulfurTier.PRECIOUS); - public static final DeferredItem LOGS = registerWithTagSourceNameOverride("logs", AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.MISC); + public static final DeferredItem LOGS = registerWithTagSourceNameOverride(ItemTags.LOGS, AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.MISC); //Crops - public static final DeferredItem WHEAT = registerDefault("wheat", AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.MISC); + public static final DeferredItem WHEAT = registerDefault("wheat", Items.WHEAT, AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.MISC); //Common Metals - public static final DeferredItem IRON = registerWithSourceNameOverride("iron", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); - public static final DeferredItem COPPER = registerWithSourceNameOverride("copper", AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.METALS); - - public static final DeferredItem SILVER = registerWithSourceNameOverride("silver", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); - - public static final DeferredItem GOLD = registerWithSourceNameOverride("gold", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); - - public static final DeferredItem NETHERITE = registerWithSourceNameOverride("netherite", AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.METALS); - public static final DeferredItem URANIUM = registerWithSourceNameOverride("uranium", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); - public static final DeferredItem AZURE_SILVER = registerWithSourceNameOverride("azure_silver", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); - public static final DeferredItem ZINC = registerWithSourceNameOverride("zinc", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); - public static final DeferredItem OSMIUM = registerWithSourceNameOverride("osmium", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); - public static final DeferredItem NICKEL = registerWithSourceNameOverride("nickel", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); - public static final DeferredItem LEAD = registerWithSourceNameOverride("lead", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); - public static final DeferredItem ALLTHEMODIUM = registerWithSourceNameOverride("allthemodium", AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.METALS); - public static final DeferredItem UNOBTAINIUM = registerWithSourceNameOverride("unobtainium", AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.METALS); - public static final DeferredItem IRIDIUM = registerWithSourceNameOverride("iridium", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); - public static final DeferredItem TIN = registerWithSourceNameOverride("tin", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); - public static final DeferredItem CINNABAR = registerWithSourceNameOverride("cinnabar", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); - public static final DeferredItem CRIMSON_IRON = registerWithSourceNameOverride("crimson_iron", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); - public static final DeferredItem PLATINUM = registerWithSourceNameOverride("platinum", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); - public static final DeferredItem VIBRANIUM = registerWithSourceNameOverride("vibranium", AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.METALS); + public static final DeferredItem IRON = registerWithSourceNameOverride(Tags.Items.INGOTS_IRON, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); + public static final DeferredItem COPPER = registerWithSourceNameOverride(Tags.Items.INGOTS_COPPER, AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.METALS); + + public static final DeferredItem SILVER = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_SILVER, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); + + public static final DeferredItem GOLD = registerWithSourceNameOverride(Tags.Items.INGOTS_GOLD, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); + + public static final DeferredItem NETHERITE = registerWithSourceNameOverride(Tags.Items.INGOTS_NETHERITE, AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.METALS); + public static final DeferredItem URANIUM = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_URANIUM, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); + + public static final DeferredItem AZURE_SILVER = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_AZURE_SILVER, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); + public static final DeferredItem ZINC = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_ZINC, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); + public static final DeferredItem OSMIUM = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_OSMIUM, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); + public static final DeferredItem NICKEL = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_NICKEL, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); + public static final DeferredItem LEAD = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_LEAD, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); + public static final DeferredItem ALLTHEMODIUM = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_ALLTHEMODIUM, AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.METALS); + public static final DeferredItem UNOBTAINIUM = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_UNOBTAINIUM, AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.METALS); + public static final DeferredItem IRIDIUM = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_IRIDIUM, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); + public static final DeferredItem TIN = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_TIN, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); + public static final DeferredItem CINNABAR = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_CINNABAR, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.METALS); + public static final DeferredItem CRIMSON_IRON = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_CRIMSON_IRON, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); + public static final DeferredItem PLATINUM = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_PLATINUM, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.METALS); + public static final DeferredItem VIBRANIUM = registerWithSourceNameOverride(ItemTagRegistry.INGOTS_VIBRANIUM, AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.METALS); //Common Gems - public static final DeferredItem DIAMOND = registerWithSourceNameOverride("diamond", AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.GEMS); - public static final DeferredItem EMERALD = registerWithSourceNameOverride("emerald", AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.GEMS); - public static final DeferredItem LAPIS = registerWithSourceNameOverride("lapis", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.GEMS); - public static final DeferredItem QUARTZ = registerWithSourceNameOverride("quartz", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.GEMS); - public static final DeferredItem AMETHYST = registerWithSourceNameOverride("amethyst", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); - public static final DeferredItem PRISMARINE = registerWithSourceNameOverride("prismarine", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); - public static final DeferredItem RUBY = registerWithSourceNameOverride("ruby", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); - public static final DeferredItem APATITE = registerWithSourceNameOverride("apatite", AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.GEMS); - public static final DeferredItem PERIDOT = registerWithSourceNameOverride("peridot", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); - public static final DeferredItem FLUORITE = registerWithSourceNameOverride("fluorite", AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.GEMS); - public static final DeferredItem SAPPHIRE = registerWithSourceNameOverride("sapphire", AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); + public static final DeferredItem DIAMOND = registerWithSourceNameOverride(Tags.Items.GEMS_DIAMOND, AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.GEMS); + public static final DeferredItem EMERALD = registerWithSourceNameOverride(Tags.Items.GEMS_EMERALD, AlchemicalSulfurTier.PRECIOUS, AlchemicalSulfurType.GEMS); + public static final DeferredItem LAPIS = registerWithSourceNameOverride(Tags.Items.GEMS_LAPIS, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.GEMS); + public static final DeferredItem QUARTZ = registerWithSourceNameOverride(Tags.Items.GEMS_QUARTZ, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.GEMS); + public static final DeferredItem AMETHYST = registerWithSourceNameOverride(Tags.Items.GEMS_AMETHYST, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); + public static final DeferredItem PRISMARINE = registerWithSourceNameOverride(Tags.Items.GEMS_PRISMARINE, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); + public static final DeferredItem RUBY = registerWithSourceNameOverride(ItemTagRegistry.GEMS_RUBY, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); + public static final DeferredItem APATITE = registerWithSourceNameOverride(ItemTagRegistry.GEMS_APATITE, AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.GEMS); + public static final DeferredItem PERIDOT = registerWithSourceNameOverride(ItemTagRegistry.GEMS_PERIDOT, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); + public static final DeferredItem FLUORITE = registerWithSourceNameOverride(ItemTagRegistry.GEMS_FLUORITE, AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.GEMS); + public static final DeferredItem SAPPHIRE = registerWithSourceNameOverride(ItemTagRegistry.GEMS_SAPPHIRE, AlchemicalSulfurTier.RARE, AlchemicalSulfurType.GEMS); - public static final DeferredItem SAL_AMMONIAC = registerWithSourceNameOverride("sal_ammoniac", AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.GEMS); + public static final DeferredItem SAL_AMMONIAC = registerWithSourceNameOverride(ItemTagRegistry.GEMS_SAL_AMMONIAC, AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.GEMS); //Other Common Minerals - public static final DeferredItem REDSTONE = registerWithSourceNameOverride("redstone", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.OTHER_MINERALS); - public static final DeferredItem COAL = registerDefault("coal", AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.OTHER_MINERALS); - public static final DeferredItem SULFUR = registerWithSourceNameOverride("sulfur", AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.OTHER_MINERALS); + public static final DeferredItem REDSTONE = registerWithSourceNameOverride(Tags.Items.DUSTS_REDSTONE, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.OTHER_MINERALS); + public static final DeferredItem COAL = registerDefault("coal", ItemTags.COALS, AlchemicalSulfurTier.ABUNDANT, AlchemicalSulfurType.OTHER_MINERALS); + public static final DeferredItem SULFUR = registerWithSourceNameOverride(ItemTagRegistry.GEMS_SULFUR, AlchemicalSulfurTier.COMMON, AlchemicalSulfurType.OTHER_MINERALS); /** * Sulfurs for which we return true will not be exlcuded from jei/modonomicon renderers despite not having a liquefaction recipe @@ -110,22 +113,73 @@ public static DeferredItem registerWithTagSourceNameOverri return register(name, () -> new AlchemicalSulfurItem(new Item.Properties()).overrideTagSourceName(true).tier(tier).type(type)); } + public static DeferredItem registerWithTagSourceNameOverride(TagKey source, AlchemicalSulfurTier tier, AlchemicalSulfurType type) { + return register(name(source), () -> new AlchemicalSulfurItem(new Item.Properties() + .component( + DataComponentRegistry.SULFUR_SOURCE_TAG, + source) + ).overrideTagSourceName(true).tier(tier).type(type)); + } + public static DeferredItem registerWithSourceNameOverride(String name, AlchemicalSulfurTier tier, AlchemicalSulfurType type) { return register(name, () -> new AlchemicalSulfurItem(new Item.Properties()).overrideSourceName(true).tier(tier).type(type)); } - public static DeferredItem registerNiter(String name, Supplier sourceStackSupplier, AlchemicalSulfurTier tier) { - return register(name, () -> new AlchemicalSulfurItem(new Item.Properties(), Suppliers.memoize(() -> new ItemStack(sourceStackSupplier.get()))).overrideSourceName(true).autoTooltip(true, false).autoName(true, false).withJarIcon(Suppliers.memoize(() -> new ItemStack(ItemRegistry.EMPTY_CERAMIC_JAR_ICON.get()))).tier(tier).type(AlchemicalSulfurType.NITER)); + /** + * The source tag does not need to cover all possible sources (e.g. a "uranium" tag that covers ore, raw metal, ingot, ...) but rather one possible source that should be used to get the icon from. + */ + public static DeferredItem registerWithSourceNameOverride(TagKey source, AlchemicalSulfurTier tier, AlchemicalSulfurType type) { + return register(name(source), () -> new AlchemicalSulfurItem(new Item.Properties() + .component( + DataComponentRegistry.SULFUR_SOURCE_TAG, + source + )).overrideSourceName(true).tier(tier).type(type)); + } + + public static DeferredItem registerNiter(String name, DeferredItem sourceStack, AlchemicalSulfurTier tier) { + return register(name, () -> new AlchemicalSulfurItem(new Item.Properties().component( + DataComponentRegistry.SULFUR_SOURCE_ITEM, + DeferredHolder.create(Registries.ITEM, sourceStack.getId()) + )).overrideSourceName(true).autoTooltip(true, false).autoName(true, false).withJarIcon(Suppliers.memoize(() -> new ItemStack(ItemRegistry.EMPTY_CERAMIC_JAR_ICON.get()))).tier(tier).type(AlchemicalSulfurType.NITER)); } public static DeferredItem registerDefault(String name, AlchemicalSulfurTier tier, AlchemicalSulfurType type) { return register(name, () -> new AlchemicalSulfurItem(new Item.Properties()).tier(tier).type(type)); } + public static DeferredItem registerDefault(String name, TagKey source, AlchemicalSulfurTier tier, AlchemicalSulfurType type) { + return register(name, () -> new AlchemicalSulfurItem(new Item.Properties() + .component( + DataComponentRegistry.SULFUR_SOURCE_TAG, + source) + ).tier(tier).type(type)); + } + + public static DeferredItem registerDefault(String name, DeferredItem sourceStack, AlchemicalSulfurTier tier, AlchemicalSulfurType type) { + return register(name, () -> new AlchemicalSulfurItem(new Item.Properties() + .component( + DataComponentRegistry.SULFUR_SOURCE_ITEM, + DeferredHolder.create(Registries.ITEM, sourceStack.getId()) + )).tier(tier).type(type)); + } + + public static DeferredItem registerDefault(String name, Item sourceStack, AlchemicalSulfurTier tier, AlchemicalSulfurType type) { + return register(name, () -> new AlchemicalSulfurItem(new Item.Properties() + .component( + DataComponentRegistry.SULFUR_SOURCE_ITEM, + sourceStack.builtInRegistryHolder() + )).tier(tier).type(type)); + } + public static DeferredItem register(String name, Supplier sup) { return SULFURS.register("alchemical_sulfur_" + name, sup); } + private static String name(TagKey source) { + var slashIndex = source.location().getPath().lastIndexOf("/"); + return source.location().getPath().substring(slashIndex + 1); + } + /** * We add only those sulfurs that have a recipe to the creative tab. @@ -141,15 +195,12 @@ public static void onBuildCreativeModTabs(BuildCreativeModeTabContentsEvent even var recipeManager = level.getRecipeManager(); var liquefactionRecipes = recipeManager.getAllRecipesFor(RecipeTypeRegistry.LIQUEFACTION.get()); - var sulfursWithoutRecipe = SulfurRegistry.SULFURS.getEntries().stream() - .map(DeferredHolder::get) - .map(AlchemicalSulfurItem.class::cast) - .filter(sulfur -> !SulfurRegistry.keepInItemLists(sulfur)) - .filter(sulfur -> liquefactionRecipes.stream().noneMatch(r -> r.value().getResultItem(level.registryAccess()) != null && r.value().getResultItem(level.registryAccess()).getItem() == sulfur)).collect(Collectors.toSet()); - - SULFURS.getEntries().stream().map(DeferredHolder::get).map(AlchemicalSulfurItem.class::cast).filter(i -> !sulfursWithoutRecipe.contains(i)).forEach(sulfur -> { - var preferred = getPreferredSulfurVariant(sulfur, liquefactionRecipes, level); - preferred.ifPresent(itemStack -> event.accept(itemStack.copyWithCount(1))); + //Register only sulfurs that have a liquefaction recipe + liquefactionRecipes.forEach(r -> { + var result = r.value().getResultItem(level.registryAccess()); + if (result != null && !result.isEmpty() && result.getItem() instanceof AlchemicalSulfurItem){ + event.accept(result.copyWithCount(1)); + } }); event.accept(SulfurRegistry.GEMS_ABUNDANT.get()); @@ -166,26 +217,4 @@ public static void onBuildCreativeModTabs(BuildCreativeModeTabContentsEvent even event.accept(SulfurRegistry.OTHER_MINERALS_PRECIOUS.get()); } } - - /** - * We want sulfurs to display with the most recognizable source items: ingots, gems, dusts. - * This method selects these sulfurs, and otherwise gets the first matching one. - */ - public static Optional getPreferredSulfurVariant(AlchemicalSulfurItem sulfur, List> liquefactionRecipes, Level level) { - var matchingRecipes = liquefactionRecipes.stream() - .filter(recipe -> recipe.value().getResultItem(level.registryAccess()) != null && recipe.value().getResultItem(level.registryAccess()).getItem() == sulfur).toList(); - - //prefer ingot/gems - var sulfurWithNbt = matchingRecipes.stream().filter(r -> Arrays.stream(r.value().getIngredient().getItems()).anyMatch(i -> i.is(Tags.Items.INGOTS) || i.is(Tags.Items.GEMS))).findFirst().map(r -> r.value().getResultItem(level.registryAccess())); - - //second choice: dusts (e.g redstone, glowstone) - if (sulfurWithNbt.isEmpty()) - sulfurWithNbt = matchingRecipes.stream().filter(r -> Arrays.stream(r.value().getIngredient().getItems()).anyMatch(i -> i.is(Tags.Items.DUSTS))).findFirst().map(r -> r.value().getResultItem(level.registryAccess())); - - //but fall back to any other - if (sulfurWithNbt.isEmpty()) - sulfurWithNbt = matchingRecipes.stream().findFirst().map(r -> r.value().getResultItem(level.registryAccess())); - - return sulfurWithNbt; - } } diff --git a/src/main/java/com/klikli_dev/theurgy/registry/TheurgyRegistries.java b/src/main/java/com/klikli_dev/theurgy/registry/TheurgyRegistries.java new file mode 100644 index 000000000..654d23ade --- /dev/null +++ b/src/main/java/com/klikli_dev/theurgy/registry/TheurgyRegistries.java @@ -0,0 +1,25 @@ +// SPDX-FileCopyrightText: 2024 klikli-dev +// +// SPDX-License-Identifier: MIT + +package com.klikli_dev.theurgy.registry; + +import com.klikli_dev.theurgy.Theurgy; +import com.klikli_dev.theurgy.content.recipe.result.RecipeResultType; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.neoforged.neoforge.registries.NewRegistryEvent; +import net.neoforged.neoforge.registries.RegistryBuilder; + +public class TheurgyRegistries { + public static final Registry> RECIPE_RESULT_TYPES = new RegistryBuilder<>(Keys.RECIPE_RESULT_TYPES).sync(true).create(); + + + public static void onRegisterRegistries(NewRegistryEvent event) { + event.register(RECIPE_RESULT_TYPES); + } + + public static final class Keys { + public static final ResourceKey>> RECIPE_RESULT_TYPES = ResourceKey.createRegistryKey(Theurgy.loc("recipe_result_type")); + } +} diff --git a/src/main/java/com/klikli_dev/theurgy/util/TagUtil.java b/src/main/java/com/klikli_dev/theurgy/util/TagUtil.java index 2dcb60e0f..7a717d848 100644 --- a/src/main/java/com/klikli_dev/theurgy/util/TagUtil.java +++ b/src/main/java/com/klikli_dev/theurgy/util/TagUtil.java @@ -10,6 +10,7 @@ import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; import org.jetbrains.annotations.Nullable; @@ -29,4 +30,16 @@ public static ItemStack getItemStackForTag(TagKey tag) { var item = getItemForTag(tag); return item != null ? new ItemStack(item) : ItemStack.EMPTY; } + + @Nullable + public static Block getBlockForTag(TagKey tag) { + return BuiltInRegistries.BLOCK.getTag(tag) + .flatMap(t -> t.stream().map(Holder::value).findFirst()) + .orElse(null); + } + + public static ItemStack getItemStackForBlockTag(TagKey tag) { + var item = getBlockForTag(tag); + return item != null ? new ItemStack(item) : ItemStack.EMPTY; + } } diff --git a/src/main/java/com/klikli_dev/theurgy/util/TheurgyExtraCodecs.java b/src/main/java/com/klikli_dev/theurgy/util/TheurgyExtraCodecs.java index e9c1ee4f0..6ec18bee0 100644 --- a/src/main/java/com/klikli_dev/theurgy/util/TheurgyExtraCodecs.java +++ b/src/main/java/com/klikli_dev/theurgy/util/TheurgyExtraCodecs.java @@ -8,15 +8,34 @@ import com.google.common.graph.MutableGraph; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import io.netty.buffer.ByteBuf; +import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.util.ByIdMap; +import net.minecraft.world.item.Tiers; +import net.minecraft.world.level.block.state.properties.BlockSetType; import net.neoforged.neoforge.fluids.FluidStack; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.IntFunction; import java.util.function.Supplier; public class TheurgyExtraCodecs { + private static final Map TIERS = Map.of( + "wood", Tiers.WOOD, + "stone", Tiers.STONE, + "iron", Tiers.IRON, + "diamond", Tiers.DIAMOND, + "gold", Tiers.GOLD, + "netherite", Tiers.NETHERITE + ); + + public static final Codec TIERS_CODEC = Codec.stringResolver(Tiers::name, TIERS::get); + public static final Codec SINGLE_FLUID_CODEC = BuiltInRegistries.FLUID.byNameCodec().xmap(fluid -> new FluidStack(fluid, 1), FluidStack::getFluid); @SuppressWarnings("UnstableApiUsage") diff --git a/src/main/java/com/klikli_dev/theurgy/util/TheurgyExtraStreamCodecs.java b/src/main/java/com/klikli_dev/theurgy/util/TheurgyExtraStreamCodecs.java new file mode 100644 index 000000000..52dced7a5 --- /dev/null +++ b/src/main/java/com/klikli_dev/theurgy/util/TheurgyExtraStreamCodecs.java @@ -0,0 +1,87 @@ +// SPDX-FileCopyrightText: 2023 klikli-dev +// +// SPDX-License-Identifier: MIT + +package com.klikli_dev.theurgy.util; + +import com.mojang.datafixers.util.Function7; +import com.mojang.datafixers.util.Pair; +import io.netty.buffer.ByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.util.ByIdMap; +import net.minecraft.world.item.Tiers; +import net.minecraft.world.phys.Vec3; + +import java.util.function.Function; +import java.util.function.IntFunction; + +public class TheurgyExtraStreamCodecs { + + public static final StreamCodec VEC3_FLOAT = new StreamCodec<>() { + public Vec3 decode(ByteBuf buf) { + return new Vec3(buf.readFloat(), buf.readFloat(), buf.readFloat()); + } + + public void encode(ByteBuf buf, Vec3 vec) { + buf.writeFloat((float) vec.x); + buf.writeFloat((float) vec.y); + buf.writeFloat((float) vec.z); + } + }; + private static final IntFunction TIERS_BY_ID = ByIdMap.continuous(Enum::ordinal, Tiers.values(), ByIdMap.OutOfBoundsStrategy.WRAP); + public static final StreamCodec TIERS_STREAM_CODEC = ByteBufCodecs.idMapper(TIERS_BY_ID, Tiers::ordinal); + + public static StreamCodec> pair(StreamCodec firstCodec, StreamCodec secondCodec) { + return StreamCodec.composite( + firstCodec, + Pair::getFirst, + secondCodec, + Pair::getSecond, + Pair::of + ); + } + + public static StreamCodec composite( + final StreamCodec pCodec1, + final Function pGetter1, + final StreamCodec pCodec2, + final Function pGetter2, + final StreamCodec pCodec3, + final Function pGetter3, + final StreamCodec pCodec4, + final Function pGetter4, + final StreamCodec pCodec5, + final Function pGetter5, + final StreamCodec pCodec6, + final Function pGetter6, + final StreamCodec pCodec7, + final Function pGetter7, + final Function7 pFactory + ) { + return new StreamCodec() { + @Override + public C decode(B p_330310_) { + T1 t1 = pCodec1.decode(p_330310_); + T2 t2 = pCodec2.decode(p_330310_); + T3 t3 = pCodec3.decode(p_330310_); + T4 t4 = pCodec4.decode(p_330310_); + T5 t5 = pCodec5.decode(p_330310_); + T6 t6 = pCodec6.decode(p_330310_); + T7 t7 = pCodec7.decode(p_330310_); + return pFactory.apply(t1, t2, t3, t4, t5, t6, t7); + } + + @Override + public void encode(B p_332052_, C p_331912_) { + pCodec1.encode(p_332052_, pGetter1.apply(p_331912_)); + pCodec2.encode(p_332052_, pGetter2.apply(p_331912_)); + pCodec3.encode(p_332052_, pGetter3.apply(p_331912_)); + pCodec4.encode(p_332052_, pGetter4.apply(p_331912_)); + pCodec5.encode(p_332052_, pGetter5.apply(p_331912_)); + pCodec6.encode(p_332052_, pGetter6.apply(p_331912_)); + pCodec7.encode(p_332052_, pGetter7.apply(p_331912_)); + } + }; + } +} \ No newline at end of file diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index e89182e16..813a88c47 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -1,7 +1,9 @@ public-f net.minecraft.world.entity.Entity setRemoved(Lnet/minecraft/world/entity/Entity$RemovalReason;)V # setRemoved public net.minecraft.world.item.crafting.SimpleCookingSerializer$CookieBaker public net.minecraft.data.loot.BlockLootSubProvider map -public net.minecraft.world.item.crafting.RecipeManager byType(Lnet/minecraft/world/item/crafting/RecipeType;)Ljava/util/Map; # byType +public net.minecraft.world.item.crafting.RecipeManager byType(Lnet/minecraft/world/item/crafting/RecipeType;)Ljava/util/Collection; # byType +public net.minecraft.world.item.crafting.RecipeManager byKeyTyped(Lnet/minecraft/world/item/crafting/RecipeType;Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/world/item/crafting/RecipeHolder; #byKeyTyped +public net.minecraft.world.item.crafting.RecipeManager m_44043_()Ljava/util/Optional; # byKey public net.minecraft.world.level.block.DoublePlantBlock preventDropFromBottomPart(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/entity/player/Player;)V # preventCreativeDropFromBottomPart public net.minecraft.client.Minecraft pausePartialTick public net.minecraft.world.item.crafting.ShapedRecipe pattern diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/neoforge.mods.toml similarity index 96% rename from src/main/resources/META-INF/mods.toml rename to src/main/resources/META-INF/neoforge.mods.toml index 00a7d0897..ec7a7065f 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -1,4 +1,4 @@ -# This is an example mods.toml file. It contains the data relating to the loading mods. +# This is an example neoforge.mods.toml file. It contains the data relating to the loading mods. # There are several mandatory fields (#mandatory), and many more that are optional (#optional). # The overall format is standard TOML format, v0.5.0. # Note that there are a couple of TOML lists in this file. diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta deleted file mode 100644 index add527bcf..000000000 --- a/src/main/resources/pack.mcmeta +++ /dev/null @@ -1,8 +0,0 @@ -{ - "pack": { - "description": { - "text": "${mod_id} resources" - }, - "pack_format": 15 - } -} \ No newline at end of file