diff --git a/.github/workflows/build_docs.yml b/.github/workflows/build_docs.yml index f2d8c7906c..736ec27fd2 100644 --- a/.github/workflows/build_docs.yml +++ b/.github/workflows/build_docs.yml @@ -24,7 +24,7 @@ permissions: jobs: hexdoc: - uses: hexdoc-dev/hexdoc/.github/workflows/hexdoc.yml@main + uses: hexdoc-dev/actions/.github/workflows/hexdoc.yml@v1 permissions: contents: write pages: read @@ -51,7 +51,7 @@ jobs: id-token: write steps: - name: Download package artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: hexdoc-build path: dist diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 2600ad5068..54de83fdc3 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -11,7 +11,7 @@ on: branches: main env: - JAVA_VERSION: '17.0.1' + JAVA_VERSION: '21.0.5' jobs: build: @@ -34,7 +34,7 @@ jobs: - name: Prepare artifacts for upload run: | mkdir -p dist - cp {Common,Forge,Fabric}/build/libs/*.jar dist + cp {Common,Neoforge,Fabric}/build/libs/*.jar dist - name: Upload artifacts uses: actions/upload-artifact@v4 @@ -74,7 +74,7 @@ jobs: hexdoc: # don't bother running the docs build when pushing to main - nothing necessary to cache here if: github.event_name != 'push' - uses: hexdoc-dev/hexdoc/.github/workflows/hexdoc.yml@main + uses: hexdoc-dev/actions/.github/workflows/hexdoc.yml@v1 permissions: contents: write pages: read diff --git a/Common/build.gradle b/Common/build.gradle index 91a09e78b5..a5c91e1913 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -2,6 +2,10 @@ architectury { common(["fabric", "neoforge"]) } +loom { + accessWidenerPath = file("src/main/resources/hexplat.accesswidener") +} + pkSubproj { platform = "common" pkPublish = false @@ -9,6 +13,7 @@ pkSubproj { repositories { mavenCentral() + mavenLocal() maven { url 'https://maven.blamejared.com' } @@ -30,17 +35,25 @@ repositories { maven { url = "https://maven.terraformersmc.com/releases/" } } +loom { + accessWidenerPath = file("src/main/resources/hexplat.accesswidener") +} + dependencies { // === MANDATORY DEPS === - compileOnly "at.petra-k:paucal:$paucalVersion+$minecraftVersion-common" + // We depend on Fabric Loader here to use the Fabric @Environment annotations, + // which get remapped to the correct annotations on each platform. + // Do NOT use other classes from Fabric Loader. + modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version" + + modCompileOnly "at.petra-k:paucal:$paucalVersion+$minecraftVersion-common" // i do not know why the xplat and mod jars are in different coordinates - compileOnly "vazkii.patchouli:Patchouli-xplat:1.21-$patchouliVersion-SNAPSHOT" - // inline isn't out for 1.21 yet shaking my sm my shaking smh head -// compileOnly "com.samsthenerd.inline:inline-forge:$minecraftVersion-$inlineVersion" + modCompileOnly "vazkii.patchouli:Patchouli-xplat:1.21-$patchouliVersion-SNAPSHOT" + modCompileOnly "com.samsthenerd.inline:inline-common:1.21.1-1.2.2-74" // === OPTIONAL DEPS === modCompileOnly "dev.emi:emi-xplat-intermediary:${emiVersion}:api" - compileOnly "io.wispforest:accessories-common:$accessoriesVersion" + modCompileOnly "io.wispforest:accessories-common:$accessoriesVersion" // === OTHER STUFF === compileOnly "org.jetbrains:annotations:$jetbrainsAnnotationsVersion" @@ -65,4 +78,4 @@ processResources { } // it wants a task by this name to exist for some reason -task("prepareWorkspace") {} +tasks.register('prepareWorkspace') {} diff --git a/Common/src/generated/resources/.cache/8f7cd5c924d3264b7777ef1696459761f9a70902 b/Common/src/generated/resources/.cache/8f7cd5c924d3264b7777ef1696459761f9a70902 deleted file mode 100644 index 8cf64135d8..0000000000 --- a/Common/src/generated/resources/.cache/8f7cd5c924d3264b7777ef1696459761f9a70902 +++ /dev/null @@ -1,260 +0,0 @@ -// 1.20.1 2023-12-24T17:59:13.7584156 Item Models: hexcasting -2fc68dcd6d73da3deaa6a33240dd9160a2b79592 assets/hexcasting/models/block/deco/quenched_allay_bricks_0.json -d59af7a48b20b210240b26115fb172d6202f9254 assets/hexcasting/models/block/deco/quenched_allay_bricks_1.json -a62eeebbca2d145c22f25725bd848ed4d673cefa assets/hexcasting/models/block/deco/quenched_allay_bricks_2.json -90e14c7ae44f667810fa5d31af5fd02cb575c13a assets/hexcasting/models/block/deco/quenched_allay_bricks_3.json -669d9348f4581dae45c35268a760675509a89a29 assets/hexcasting/models/block/deco/quenched_allay_bricks_small_0.json -bb65f6b36336fb4746e749a2b248e521ff24f901 assets/hexcasting/models/block/deco/quenched_allay_bricks_small_1.json -39b54b608cdf5e959a5c115379e45aaf590a254a assets/hexcasting/models/block/deco/quenched_allay_bricks_small_2.json -da0aee7c9516804372262165dc5aab16bd1c6ce6 assets/hexcasting/models/block/deco/quenched_allay_bricks_small_3.json -bacd99e8c24b9ce004e8aeff509cca4b971f3ed9 assets/hexcasting/models/block/deco/quenched_allay_tiles_0.json -1b272b737dea8a856c63e253359863dff7ec7e54 assets/hexcasting/models/block/deco/quenched_allay_tiles_1.json -9840fe9648aedd03ecda485e7c6466bbe2a418ba assets/hexcasting/models/block/deco/quenched_allay_tiles_2.json -71abe574694be3f0be75433068bae0489bae5055 assets/hexcasting/models/block/deco/quenched_allay_tiles_3.json -9af2754cb1e53eeaa85618cf92651b4878cf62b1 assets/hexcasting/models/block/quenched_allay_0.json -de4ff723b4332d4e26bd01f74e0485e28c9a2178 assets/hexcasting/models/block/quenched_allay_1.json -4c29163e07f3a903017e38a9cc102f4b37db20b1 assets/hexcasting/models/block/quenched_allay_2.json -487d34cd8e70b3e468337228b74af5c1b4d14c53 assets/hexcasting/models/block/quenched_allay_3.json -f2156b3a7041cf99891b528393db64c6b9ca1a4f assets/hexcasting/models/item/abacus.json -19730853397b109cfedd0c3bbda83d5de6cd15b9 assets/hexcasting/models/item/akashic_record.json -8c735feff09d46d00ed681311f46f61a50cfdc9b assets/hexcasting/models/item/amethyst_dust.json -fbb8706993fbc3246c56b9f3eb274ff8968b70f8 assets/hexcasting/models/item/amethyst_pillar.json -87e7ee44cdd0808a3dd72babfd1db716df2bcdfe assets/hexcasting/models/item/artifact.json -1cd1b4d002d1a9a044ceab7cca842e4a2b7bd2f4 assets/hexcasting/models/item/artifact_0_filled.json -4709e65d8e74cf45b3ba014bdf70373728cccc78 assets/hexcasting/models/item/artifact_1.json -13915cc6b9ebbdce7043939c32c308bf129c2099 assets/hexcasting/models/item/artifact_1_filled.json -5434775bd88a654db6b2d09ab5f74a93a1983528 assets/hexcasting/models/item/artifact_2.json -a084bdd9039f5a16183d0cf70d744bf29a3c8760 assets/hexcasting/models/item/artifact_2_filled.json -206548428fd1a142442469c8b65fae24a1b50af6 assets/hexcasting/models/item/artifact_3.json -d6de8ae6a4d546aac12489cae386731490040c5e assets/hexcasting/models/item/artifact_3_filled.json -a0dbd0d40833d91dd33036686cd58494572cbe42 assets/hexcasting/models/item/artifact_4.json -86f1f0c0cbae34010ec9eca723db64303d5f5d5f assets/hexcasting/models/item/artifact_4_filled.json -e822e463834b9bf4433defbace06cc586629da95 assets/hexcasting/models/item/artifact_5.json -a44fec20b346e1e660027d204b42df312a310086 assets/hexcasting/models/item/artifact_5_filled.json -c499e86bb5b5bc2fe29914ce14832212ca23df10 assets/hexcasting/models/item/artifact_6.json -ccb8a41fdd4bc1b493a11cfa2ea4a39b7f7c3888 assets/hexcasting/models/item/artifact_6_filled.json -6461c5261ec1eb92a608bd2db420b1e5b0c3591a assets/hexcasting/models/item/artifact_7.json -373617635cf75ee236da52eb5b9f341d2b77eac3 assets/hexcasting/models/item/artifact_7_filled.json -c77fe07e43f7a46e04f16e43054588cdcdf4c01e assets/hexcasting/models/item/battery.json -ec7c3a51882a432185fdbb6a449e66165b6a4c4c assets/hexcasting/models/item/charged_amethyst.json -3ed3e3d86dcbc29d2e6fb59b9c6a7e455e9a3332 assets/hexcasting/models/item/cherry_staff.json -c64ed609ece68994ce23dd2809145040bce13579 assets/hexcasting/models/item/conjured_block.json -c64ed609ece68994ce23dd2809145040bce13579 assets/hexcasting/models/item/conjured_light.json -c8da4227db3c80e3e2e7f2fb2ae2649656429d68 assets/hexcasting/models/item/creative_unlocker.json -afe7113b8411c64651b679ea6b4e41bf36ab38c3 assets/hexcasting/models/item/cypher.json -3b9442e76a05b7fa70f9fb30186f94b1ba08a69b assets/hexcasting/models/item/cypher_0_filled.json -2c240a69627de02937aa601faa2578adc7d44906 assets/hexcasting/models/item/cypher_1.json -5dc34d91f0d6db16d537dd93345ccca8fe4f6aaa assets/hexcasting/models/item/cypher_1_filled.json -29e2a1e5c0e518e5edf0c6c25a5259c361ece478 assets/hexcasting/models/item/cypher_2.json -af274f590258b97dadf050d925c1187ee6e35d77 assets/hexcasting/models/item/cypher_2_filled.json -89a21d5aeef41fe788e799b89c7f80a26f09abed assets/hexcasting/models/item/cypher_3.json -e80d8c33a0b4ca69b157888fbc5f5660ba9c411d assets/hexcasting/models/item/cypher_3_filled.json -fcc1b8d2b97207af1f8c06061e170b11949bcf51 assets/hexcasting/models/item/cypher_4.json -7554e24b6f52c6b8db358e0cb5449449752a5808 assets/hexcasting/models/item/cypher_4_filled.json -85cd0adf020150c69ca7fec1f5200b027fd01d09 assets/hexcasting/models/item/cypher_5.json -1010ce5e3def445462ab69c4289f3ba94f50eacc assets/hexcasting/models/item/cypher_5_filled.json -d5b444a363c101779a01f7298d55161a8271c742 assets/hexcasting/models/item/cypher_6.json -6f4d37c92c0d43da6d20705955e9b7cee83ed612 assets/hexcasting/models/item/cypher_6_filled.json -69e61ff1976e99c43a17c7b1e0591829ac44a4d6 assets/hexcasting/models/item/cypher_7.json -41ee99d878ec66f480ebcbacc65f16696c31d161 assets/hexcasting/models/item/cypher_7_filled.json -c6523de66cbfae3a1e6361c635cc693a0a089bb3 assets/hexcasting/models/item/default_colorizer.json -113c51af571a92009f5f687a82e10bc5ce97b010 assets/hexcasting/models/item/dye_colorizer_black.json -b5a04716775ba2e1b137abc513025b2f1065e5d1 assets/hexcasting/models/item/dye_colorizer_blue.json -0bb3afbd937b2e07523a581f6e3f389e11078595 assets/hexcasting/models/item/dye_colorizer_brown.json -6da7c3fb38f79e87506da06befe18730187e5183 assets/hexcasting/models/item/dye_colorizer_cyan.json -1afb238702f40275c30262ea349d5c8a590c314d assets/hexcasting/models/item/dye_colorizer_gray.json -0daf8bf5f98ed6dccb701cc4c8a4de3f3a53aed0 assets/hexcasting/models/item/dye_colorizer_green.json -82bc0bf11d7f02f18fef8f04ba5aed13c88e5556 assets/hexcasting/models/item/dye_colorizer_light_blue.json -d8ac48c96b5bc37525a5b26ce451e53229f83b7e assets/hexcasting/models/item/dye_colorizer_light_gray.json -317ac0b46bb76d6df66e350fd824cd18b2af2776 assets/hexcasting/models/item/dye_colorizer_lime.json -0290be48770c6c3b11e7d99c677c6a590168168d assets/hexcasting/models/item/dye_colorizer_magenta.json -88b74eda6ddf728301c73e683f2c416139b956c8 assets/hexcasting/models/item/dye_colorizer_orange.json -de7f7dec75da3170672de5c46a87ff47297db12b assets/hexcasting/models/item/dye_colorizer_pink.json -9bec032a4f17aeaa68f5dc88bd43de97a476df21 assets/hexcasting/models/item/dye_colorizer_purple.json -63b7438b1ab3ec9be3213d2964914c42c838643e assets/hexcasting/models/item/dye_colorizer_red.json -79f4120a9571ecf8be1767dfb41c4604f2ab985b assets/hexcasting/models/item/dye_colorizer_white.json -667ea00dbc366ee41e97f21c099001440212d183 assets/hexcasting/models/item/dye_colorizer_yellow.json -f867a3b2bbc117a782d49f0819b60f4727d1f483 assets/hexcasting/models/item/edified_button.json -c9faada6299f388afc2d2798843d2b45159950d1 assets/hexcasting/models/item/edified_door.json -32f6086df25000e0af341e49ab60fa214f0c4a52 assets/hexcasting/models/item/edified_fence.json -12b4c0ce637123f5a39c00c4c973958f5106eecf assets/hexcasting/models/item/edified_fence_gate.json -7f22e012a844cc2c5e30b0fcbdc2e7e4afac1c40 assets/hexcasting/models/item/edified_log.json -8197108bfba4b5963e3c0b1e76a04b8a0d6aae03 assets/hexcasting/models/item/edified_log_amethyst.json -7d6bd7d94d4417f85444c387fc34d9b6947858f1 assets/hexcasting/models/item/edified_log_aventurine.json -c13f4b5b9e57224107c7f7c00928a6873b437245 assets/hexcasting/models/item/edified_log_citrine.json -2415591623223d1cb1a4ac2aeb2d1337694fa9a9 assets/hexcasting/models/item/edified_log_purple.json -6b2c9d4aca0c869d7e18707c22b00c14e1d30f0c assets/hexcasting/models/item/edified_pressure_plate.json -31b4d60ff15a6d6de7aecb6feeba25a366bba2fd assets/hexcasting/models/item/edified_slab.json -2584421c2e9e1cdf22a703018b54cf449613d7d9 assets/hexcasting/models/item/edified_stairs.json -ae58c5b7c304d33cbde60caf44a4c4ee4ec1a633 assets/hexcasting/models/item/edified_trapdoor.json -084183e4351973c8165f6f459c0f0dba2463d957 assets/hexcasting/models/item/edified_wood.json -1943e85c2ce9a40b0bbe0e4ffca2b6a968287091 assets/hexcasting/models/item/focus.json -7a19f436fc9e8d0e0e01b4404f326eb48404855a assets/hexcasting/models/item/focus_0_filled.json -88615c49de2c14a19da34431724401652e94be79 assets/hexcasting/models/item/focus_0_sealed.json -8099bd2e0afe118fa013b9d635ad47ffaab556bd assets/hexcasting/models/item/focus_1.json -340001b99100480d06cab60229d4af308be3c4ac assets/hexcasting/models/item/focus_1_filled.json -e0f8fef2e2d8d0e9168d10327d55115293ad2ae7 assets/hexcasting/models/item/focus_1_sealed.json -3578e575573fc52c4e819bcc5e207ce7a4e0f808 assets/hexcasting/models/item/focus_2.json -3e31f3b513df519f5e2e2eb4747faa02b89db67d assets/hexcasting/models/item/focus_2_filled.json -6724475ce4ef36295839f95098035889e57896f2 assets/hexcasting/models/item/focus_2_sealed.json -cb22fbb79432527d828475aa457c9c6fdb78bbff assets/hexcasting/models/item/focus_3.json -54f5d42d7104297162cc9b322ff477d568656e26 assets/hexcasting/models/item/focus_3_filled.json -283fcd45c639953802f8345c20ec45d9aa8c463d assets/hexcasting/models/item/focus_3_sealed.json -7818903b0ec7c7926e040e4d634495a7699e6deb assets/hexcasting/models/item/focus_4.json -e2f8f78c5009deb7368e44af09d90c1da075240d assets/hexcasting/models/item/focus_4_filled.json -abdeb1a3563f983bd09db8e7c666ddbdffc3903b assets/hexcasting/models/item/focus_4_sealed.json -9b687b3c191c5802bc39613ae705d7313139b310 assets/hexcasting/models/item/focus_5.json -a00edbeef7c2d828f4f16ed43d5e3a53e9674787 assets/hexcasting/models/item/focus_5_filled.json -c40bd0246003cd2c1824ad61ad718f5959dc6e10 assets/hexcasting/models/item/focus_5_sealed.json -3c77a283be7249e00e1947676276f7484b00ea83 assets/hexcasting/models/item/focus_6.json -732c8201606b3c510c0467fc3840aa1475f7b56f assets/hexcasting/models/item/focus_6_filled.json -9bf849da1973419685e4ed36a823285b154b143f assets/hexcasting/models/item/focus_6_sealed.json -759efbfda9f003e920e37b3b8f0306dd20562e94 assets/hexcasting/models/item/focus_7.json -b2702eb139b47fcdfd3ef268bbc9700eeaae82f3 assets/hexcasting/models/item/focus_7_filled.json -1e89b03a5f3a860dae1864c4dbfe855564f89705 assets/hexcasting/models/item/focus_7_sealed.json -6ec61fea7d8c49cc0c45b64857fd926451b4845f assets/hexcasting/models/item/jeweler_hammer.json -abfc028c974a02780aed3d7a5859352503bbd920 assets/hexcasting/models/item/lens.json -a34a6d777ae265c7e49c8bb23c15f04359236544 assets/hexcasting/models/item/lore_fragment.json -a3e134b79977545049da01671f3a1bd636d14789 assets/hexcasting/models/item/old_staff.json -82fa0a2bb17e40c0b3f826e97b2e95445ec24ab8 assets/hexcasting/models/item/patchouli_book.json -91186c79af073cc390a1f1e6712540e1a49b716e assets/hexcasting/models/item/phial_larger_0.json -548d6999c6b5cb2c5b8d36d190fc849632f9f8ea assets/hexcasting/models/item/phial_larger_1.json -3162e3b88e59a9ab4b9df345724a0964db695688 assets/hexcasting/models/item/phial_larger_2.json -4e8f120d8472135ba1d8c332848fd0cc4c9ef1a0 assets/hexcasting/models/item/phial_larger_3.json -7b0d93186cd60cf31049512ca1147262a2bf203f assets/hexcasting/models/item/phial_larger_4.json -8943ca4912ab23d507725744f675ddcc56ccf1a9 assets/hexcasting/models/item/phial_largest_0.json -e20faba33418dac72ff3ad360eeb6fce3fce2728 assets/hexcasting/models/item/phial_largest_1.json -f0623e9b9192098dff982fabf1e598a27f96b7a8 assets/hexcasting/models/item/phial_largest_2.json -911736f4e2e3d825fb01f13dd32bf0108b68df99 assets/hexcasting/models/item/phial_largest_3.json -86d475f4c5bda63a564604e828f408ac6769e9eb assets/hexcasting/models/item/phial_largest_4.json -d69d10e6cb967b98b3294cc86174182c671de671 assets/hexcasting/models/item/phial_large_0.json -9b7805bec9481956b0ccc6c65dd8e02d3b3cdf54 assets/hexcasting/models/item/phial_large_1.json -596a866a0fac7cfe916d1e78f2a5f20856493c62 assets/hexcasting/models/item/phial_large_2.json -34aacc4fb999949e455d01548546a52eafb97e24 assets/hexcasting/models/item/phial_large_3.json -3a6f6b51e72a040d039abae580ef5db2a6c8101d assets/hexcasting/models/item/phial_large_4.json -d5a3a98a51146a94b95ea84d49236fc83b08b807 assets/hexcasting/models/item/phial_medium_0.json -2165d19e514a3358fb8e3ceb91efd2fbc47ddebd assets/hexcasting/models/item/phial_medium_1.json -89933a425604fb6c0599848df3fef62ab07ea5a2 assets/hexcasting/models/item/phial_medium_2.json -1088d2440c7958a37509c753d74d8cfd383d05ca assets/hexcasting/models/item/phial_medium_3.json -a3d2dc8be83802e4444e0152904b2d48accd196c assets/hexcasting/models/item/phial_medium_4.json -b7492bc7b30d0890cfc38392e538b439a03ebc32 assets/hexcasting/models/item/phial_small_0.json -69553fbc4c9e0bf54fcc17f108f43baeabe66d2a assets/hexcasting/models/item/phial_small_1.json -e9dc7a0685fa9abfb2c2555cdb2eb4ef8d4920a8 assets/hexcasting/models/item/phial_small_2.json -73125d101de003bd1d48768c2381566b5687d002 assets/hexcasting/models/item/phial_small_3.json -ead3b78e464b2e2a259c781076bdf50a50686b87 assets/hexcasting/models/item/phial_small_4.json -6a384e599fdc2d798f175e86ea03147c25a47a51 assets/hexcasting/models/item/pride_colorizer_agender.json -c39aeb9c8b6f5b8a0510a54a9f87154b8187ba21 assets/hexcasting/models/item/pride_colorizer_aroace.json -abe3bc0e065fe4250835998871c08066b3e7ae49 assets/hexcasting/models/item/pride_colorizer_aromantic.json -d34570c2485646768ec2d47bfc035c704f9b0ab8 assets/hexcasting/models/item/pride_colorizer_asexual.json -fe6a5142ad799343c287a0566193fa20469a377f assets/hexcasting/models/item/pride_colorizer_bisexual.json -f2d2ed03d3bc7d2526d5276b348dc05f7c3585a3 assets/hexcasting/models/item/pride_colorizer_demiboy.json -2e9008cfb1a23e793d17ec521704f06a7f235a3a assets/hexcasting/models/item/pride_colorizer_demigirl.json -708698514fb6db04a30bca299c8f1ca32aad795b assets/hexcasting/models/item/pride_colorizer_gay.json -a377c0f71783296af01e91605bb821ef8554bdef assets/hexcasting/models/item/pride_colorizer_genderfluid.json -d60b723c44183b59cbadfd02a911dab5e89e0e61 assets/hexcasting/models/item/pride_colorizer_genderqueer.json -3322b15f5dc59cfb0008ff52648af1420890d5c9 assets/hexcasting/models/item/pride_colorizer_intersex.json -061fd86ffe47e0886783c8a20e8723ecac372604 assets/hexcasting/models/item/pride_colorizer_lesbian.json -5ebdcf6777381497fd1accf88832f8f1f2bfcc99 assets/hexcasting/models/item/pride_colorizer_nonbinary.json -6253bab7bd9162f75782c5bc899f46cd941d01ad assets/hexcasting/models/item/pride_colorizer_pansexual.json -c67e74e2a323872c3b34b113df99da8b77a501c6 assets/hexcasting/models/item/pride_colorizer_plural.json -7c4191ec2479b0a67e578da49d459deea8294ec4 assets/hexcasting/models/item/pride_colorizer_transgender.json -5038e069909e2dcf8664bcde81b229c8e27191ae assets/hexcasting/models/item/quenched_allay.json -6bef352b86abdaf9ce4f4942f01e746aa7cc62a2 assets/hexcasting/models/item/quenched_allay_bricks.json -c9aab9c7c0483766c670cfda7916323473e3c097 assets/hexcasting/models/item/quenched_allay_bricks_small.json -a8859c93236b88f9ed46a4957f5723965ce04e03 assets/hexcasting/models/item/quenched_allay_shard.json -812d5b11011c52dc5ce97040f9df5125c0542d10 assets/hexcasting/models/item/quenched_allay_tiles.json -8105007d186fe2c6bea6958dd85d1b2ed3cecb58 assets/hexcasting/models/item/quenched_shard_0.json -aef7d4b759bcc8a1d5b886b8a0170657e447a8d8 assets/hexcasting/models/item/quenched_shard_1.json -4a08374ef00de51381df9659488cb305e7c8674f assets/hexcasting/models/item/quenched_shard_2.json -181aac0f66e5c3937f49da3f5d577f1c8045c635 assets/hexcasting/models/item/quenched_shard_3.json -1ac1d158da25a8f8ec4b8771445d1ec9d42e9519 assets/hexcasting/models/item/scroll.json -ae2a8b6eb8a4ef17926e20c6982bc01120ff32b7 assets/hexcasting/models/item/scroll_ancient_large.json -7478e4b91169a3ab9def5af8662db9696eb33a34 assets/hexcasting/models/item/scroll_ancient_medium.json -e5e1c3116c97deeee0ab5e87178043f4f1b53bea assets/hexcasting/models/item/scroll_ancient_small.json -304b6c635b289565c871f7e8389f59baf93d66ea assets/hexcasting/models/item/scroll_medium.json -6f9d5d0ab5c9cf6abb3303f2e8d4993693eadb77 assets/hexcasting/models/item/scroll_pristine_large.json -300063a2245b419e360fc5e91827708e2ff5f79a assets/hexcasting/models/item/scroll_pristine_medium.json -e4dd5a16b9914044c1721df150e02b657835d97b assets/hexcasting/models/item/scroll_pristine_small.json -c809785d09b2545dac68d4a10b1e576454dd51e7 assets/hexcasting/models/item/scroll_small.json -9b82beea7667a8f9de3d1e8df136bb2034ed51a8 assets/hexcasting/models/item/slate.json -973361a2dd2ba5f3cd9fe2104f7ead43b085acc8 assets/hexcasting/models/item/slate_amethyst_pillar.json -612d4c65fb907c75975659edf00c7d92bf1b43d8 assets/hexcasting/models/item/slate_blank.json -96c85c64446072761910774b36924436c637faab assets/hexcasting/models/item/slate_pillar.json -e6452f95b60240e0067769d7f32a0b9fa7718a1b assets/hexcasting/models/item/slate_written.json -34abd8e443c028eeb24535b685cb3876f7235c23 assets/hexcasting/models/item/spellbook.json -2c23e0ce8a59f0f143ab514f46251e39fae39d6e assets/hexcasting/models/item/spellbook_0_filled.json -e8264e67b895bb61b52b936968b120c064507a26 assets/hexcasting/models/item/spellbook_0_sealed.json -b94a2beab80e87ed3f7e6004f70a3919c64272b4 assets/hexcasting/models/item/spellbook_1.json -158148d51abd63a93123fa7f2e2bce45d83d237f assets/hexcasting/models/item/spellbook_1_filled.json -c2fc066cee9a1e2ddf5a4507cf90b88a65d32028 assets/hexcasting/models/item/spellbook_1_sealed.json -85adbb3604db5a2e41877e2085d445df5622b549 assets/hexcasting/models/item/spellbook_2.json -83336c6e8bac94473e2f420084e544feef016d52 assets/hexcasting/models/item/spellbook_2_filled.json -a585cd9359896cd5ec62e4ccc28649170b2c8875 assets/hexcasting/models/item/spellbook_2_sealed.json -62e70d832eae787e0f086bf2f959eca19bfdfcd4 assets/hexcasting/models/item/spellbook_3.json -b312e3a09356f92d4f47b89f319e5ceeadb565ae assets/hexcasting/models/item/spellbook_3_filled.json -6ec3b9c77f6c7c4953d06c69bd5c06fc90e51d3d assets/hexcasting/models/item/spellbook_3_sealed.json -411ee9b98ec41a11d4026863332f0c65891807fe assets/hexcasting/models/item/spellbook_4.json -99aea30de3172c435b9a85a8ccce599251ed2722 assets/hexcasting/models/item/spellbook_4_filled.json -5881069c0b7e0e2bbaf07d8016fe4bcacce2e5e8 assets/hexcasting/models/item/spellbook_4_sealed.json -c4a41996c971ab44175cb8be5247b595836973cb assets/hexcasting/models/item/spellbook_5.json -4b9a2d0f4942fff48f31e58bde673863303396ad assets/hexcasting/models/item/spellbook_5_filled.json -d47f10973fa2660230f2249b3c009d4c7e4fc33f assets/hexcasting/models/item/spellbook_5_sealed.json -2adb81185491d908b5059c5a8df2a72c0913406b assets/hexcasting/models/item/spellbook_6.json -1d98011ce5c424be3488ac613d04f09572f85120 assets/hexcasting/models/item/spellbook_6_filled.json -53f092cea6f0f27d1b41a4be4403aed908768d2f assets/hexcasting/models/item/spellbook_6_sealed.json -a1dc5817c7c62e0d6e4c1ca1c5bfba6973a9b253 assets/hexcasting/models/item/spellbook_7.json -e43bfc743664dc23cbb2aaa4a66072ce1bbb5c2f assets/hexcasting/models/item/spellbook_7_filled.json -32210f56cb33747d9890de18300ae936cc8b0f77 assets/hexcasting/models/item/spellbook_7_sealed.json -f791313aa7bb01b418676ffaeeb09286ca9bddff assets/hexcasting/models/item/staff/acacia.json -e1f5949b5ea4e5056909d9a74f4c578114d905f1 assets/hexcasting/models/item/staff/bamboo.json -19acf04c62128275b8fb468e89a30ab94d6e5a1a assets/hexcasting/models/item/staff/birch.json -3ed3e3d86dcbc29d2e6fb59b9c6a7e455e9a3332 assets/hexcasting/models/item/staff/cherry.json -244ba74a82a188df6fd258affcdd4b1a7320e617 assets/hexcasting/models/item/staff/crimson.json -ee609f36641d4689512b54aa343eafd1d53881e6 assets/hexcasting/models/item/staff/dark_oak.json -eb9d51207fddad95d375ccbe0f96df12893312d0 assets/hexcasting/models/item/staff/edified.json -99e1283ee4ba1baccd452e909bf61417b7f2f57a assets/hexcasting/models/item/staff/jungle.json -529b269c10e8da7af7974cf1eb539af30dbe9766 assets/hexcasting/models/item/staff/mangrove.json -ede4e45b2744ec8b457f8964708d80fe9f4711db assets/hexcasting/models/item/staff/mindsplice.json -3ae310c995e8211b212babc2b4ed1a4b6185a383 assets/hexcasting/models/item/staff/oak.json -6ced9d423830b4a095ecb1076f3d89fa831f24fd assets/hexcasting/models/item/staff/quenched.json -898635b56d406e3be71bf87e2e2a7953388c6d3e assets/hexcasting/models/item/staff/quenched_0.json -781f2aec9c3d1d74ef44706ad76782ea4c5c7064 assets/hexcasting/models/item/staff/quenched_1.json -2d3fe60a6bab47692fc9fb32c76ff7b0c44a731f assets/hexcasting/models/item/staff/quenched_2.json -91e45480e12c73a1d3c6f0970b813de3bc8a7df7 assets/hexcasting/models/item/staff/quenched_3.json -49d928184c2e6624b0b217615d54b1d08da133ff assets/hexcasting/models/item/staff/spruce.json -09100a64a4c1e14dc2078fc1060122b0a52ca497 assets/hexcasting/models/item/staff/warped.json -d6ebc87cb0fa6f86bee3a4eade7329ebb0cf2d38 assets/hexcasting/models/item/stripped_edified_log.json -ea3f18f75776022127f3a108119e3f7a5c211c0f assets/hexcasting/models/item/stripped_edified_wood.json -0a100b64e77394606018320bbc5752a546fe0af4 assets/hexcasting/models/item/sub_sandwich.json -6a7f5af82cf8ec72c3457ef4c1ae11a76717bf88 assets/hexcasting/models/item/thought_knot.json -93b2191ffab47003f661b75a85cd833ec64f0c15 assets/hexcasting/models/item/thought_knot_written.json -9e4d326d8339db5d7a627a14630e6c0b2fa32ba6 assets/hexcasting/models/item/trinket.json -dba1f5c24852f756280a5d20c3327ea3825c083a assets/hexcasting/models/item/trinket_0_filled.json -e666a8f88dce284d5026f61814a19c5c8d49eda5 assets/hexcasting/models/item/trinket_1.json -35c7c9f46b05dc05002ac77f94b33f8da97238a1 assets/hexcasting/models/item/trinket_1_filled.json -678a892654958f87400c4d9afb1c5ed47692b77b assets/hexcasting/models/item/trinket_2.json -d8e372e768ca59566633f720ef7816eb34b13966 assets/hexcasting/models/item/trinket_2_filled.json -f8a08620915d5f1756b04c4e92d4e0324d381998 assets/hexcasting/models/item/trinket_3.json -cfc0260102aa161e893b0300ba6941c724cada9f assets/hexcasting/models/item/trinket_3_filled.json -d01e9a46398df5da17f651129b4c4c597cf1726c assets/hexcasting/models/item/trinket_4.json -bb6347ea5701bbccfc713f695f3722d218c52af2 assets/hexcasting/models/item/trinket_4_filled.json -90235641f09e4b1923c217f3c977427391daed6c assets/hexcasting/models/item/trinket_5.json -684800b5a011fe247f42ebc4829033a72030c55c assets/hexcasting/models/item/trinket_5_filled.json -d912708aa8de120d4598a62276f333ac096cdacb assets/hexcasting/models/item/trinket_6.json -24ad9a85ca790205f3e9e62ecb60bc8e50ac47fb assets/hexcasting/models/item/trinket_6_filled.json -b9d891572f572d76c0c0aef0afc3d3cb80f72c30 assets/hexcasting/models/item/trinket_7.json -4a8b82a628a3c4b16c4a45d3689799c8d9cf8bf8 assets/hexcasting/models/item/trinket_7_filled.json -c6523de66cbfae3a1e6361c635cc693a0a089bb3 assets/hexcasting/models/item/uuid_colorizer.json -c0af5573a4acb5eeacf49ab309d32b6f90ea8a5d assets/hexcasting/models/staff/acacia.json -1f90275c1d6829f0cdaf71f2c3b234c39cd7290d assets/hexcasting/models/staff/bamboo.json -ac7a4b95db8bde9da23dd4fa76d8086a67e166f8 assets/hexcasting/models/staff/birch.json -f7fca510f1f2c8ab5a90e96fa52abf717e3f836e assets/hexcasting/models/staff/cherry.json -b3f3fae3237d9f65d631fe3a6608ed76d9e0034d assets/hexcasting/models/staff/crimson.json -202de3e9a1bb7cd2ac2781937f4d03afe3947195 assets/hexcasting/models/staff/dark_oak.json -a03d8c4cd52afb51668450f0b47ef278bb75ebec assets/hexcasting/models/staff/edified.json -aab75291c6d8889394ab154cd8cfeed7d1cfe41f assets/hexcasting/models/staff/jungle.json -853408e94e104cd8a3ccbb1ec909f9e6bc9638df assets/hexcasting/models/staff/mangrove.json -7a73fc99460cdff11c717b165f2d5c69a7f96fb6 assets/hexcasting/models/staff/mindsplice.json -41d0396eae3b5511c513b33a186a8a76d3f89a3e assets/hexcasting/models/staff/oak.json -171cc4644ba9df07d79d08b06c482cf7c4c9e873 assets/hexcasting/models/staff/spruce.json -99de51b1596247aa3e5225d6199cbcdc9792c509 assets/hexcasting/models/staff/warped.json diff --git a/Common/src/generated/resources/.cache/d2fe5b6fab5fdc7ee7ca336c062752306bdf6128 b/Common/src/generated/resources/.cache/d2fe5b6fab5fdc7ee7ca336c062752306bdf6128 deleted file mode 100644 index cab0548eff..0000000000 --- a/Common/src/generated/resources/.cache/d2fe5b6fab5fdc7ee7ca336c062752306bdf6128 +++ /dev/null @@ -1,298 +0,0 @@ -// 1.20.1 2023-12-24T17:59:13.7624167 Block States: hexcasting -901e38574bdaa40ea4a0f6e773a88a95d9c03e55 assets/hexcasting/blockstates/akashic_bookshelf.json -32a77ef668198002563d68be35a24fa93c8d454a assets/hexcasting/blockstates/akashic_connector.json -85080ce0a0387583a839e4788517d675a1a35e24 assets/hexcasting/blockstates/akashic_record.json -04221253f80c85d1e19e9688cae5039f257c8d63 assets/hexcasting/blockstates/amethyst_bricks.json -3b4d0e25a44b9ac1582a969bdd435c3d436b8ba8 assets/hexcasting/blockstates/amethyst_bricks_small.json -1919f303e32e4ea395caa26c1e08c65cd2641e95 assets/hexcasting/blockstates/amethyst_dust_block.json -d422119401df3daae032f86ea740b6065a92c44c assets/hexcasting/blockstates/amethyst_edified_leaves.json -25990c171a75164aa282a23acae949b17173426d assets/hexcasting/blockstates/amethyst_pillar.json -276a70fa0e2b94ec3e2218015842b6e315157283 assets/hexcasting/blockstates/amethyst_sconce.json -09b6b22fecc577c4fcf4f7ad49f5d6907ef3d10a assets/hexcasting/blockstates/amethyst_tiles.json -65f7a4db6fa7616374ff814624231aec859d0a71 assets/hexcasting/blockstates/ancient_scroll_paper.json -236496e910696b68480a7b8a977434213fa2197a assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json -2f2eb1130119f6d5f17a98082b727ec7a2ea5334 assets/hexcasting/blockstates/aventurine_edified_leaves.json -fa6dfbc40e5b9b22c01356e8a3848d242c414c02 assets/hexcasting/blockstates/citrine_edified_leaves.json -dc268e4c50e5e155fc5414a5f6b58ce1782bd39b assets/hexcasting/blockstates/conjured_block.json -dc268e4c50e5e155fc5414a5f6b58ce1782bd39b assets/hexcasting/blockstates/conjured_light.json -dffbe9894baae1c0c0dd3377659ce6fcb71ae634 assets/hexcasting/blockstates/directrix/boolean.json -b76cc8a2d66700417046c0dc671badd9af3eb519 assets/hexcasting/blockstates/directrix/empty.json -365eba1c32a7a33698120bc7f12670d29087e999 assets/hexcasting/blockstates/directrix/redstone.json -e125b73869a438bafa7f47cfa4c8d837e2463c6f assets/hexcasting/blockstates/edified_button.json -749d29dc5e11aeba703022dd66aad939d211a3b9 assets/hexcasting/blockstates/edified_door.json -cff9717cca70e2754bb4d0d5e695335e85adf212 assets/hexcasting/blockstates/edified_fence.json -05c8ef11fbde183dc9ed578b65d512df29c3b2f5 assets/hexcasting/blockstates/edified_fence_gate.json -9080ec8bb4142aa3f80775fb017d821585cdfeba assets/hexcasting/blockstates/edified_log.json -b9bbfe3288a699ef51ee0d21ec8e335f811353ca assets/hexcasting/blockstates/edified_log_amethyst.json -fc0f4407ef06ac962b5985db31800e05c8f1d1be assets/hexcasting/blockstates/edified_log_aventurine.json -56a1a09d9e755d5db882fad46c2c603037148f24 assets/hexcasting/blockstates/edified_log_citrine.json -1c6a336f3e975ef6c74a62f49f98af601f979a76 assets/hexcasting/blockstates/edified_log_purple.json -2a894cc506928113c967e65281950d91ca73ec50 assets/hexcasting/blockstates/edified_panel.json -61abf0ff91d33d51f2c1e0b5aace5580ad3ec5af assets/hexcasting/blockstates/edified_planks.json -b2c7e0d8dd5ef0e942a28363649a88e268f36ce2 assets/hexcasting/blockstates/edified_pressure_plate.json -8575021a4ed61c829470423042f161131064a178 assets/hexcasting/blockstates/edified_slab.json -9248c7ea41f577d5dbf925619a23a4bbc9c2779a assets/hexcasting/blockstates/edified_stairs.json -4bef86b0a11af8a909730ff300336f591b517370 assets/hexcasting/blockstates/edified_tile.json -fd14ab58c112e69b9072b68ded4f4adb0f454cf1 assets/hexcasting/blockstates/edified_trapdoor.json -e44322f1178e121b70f45e5242d5b0e9a11c211c assets/hexcasting/blockstates/edified_wood.json -b4c85725c8cddadffe0b80586dcd35a8d08b7f47 assets/hexcasting/blockstates/impetus/empty.json -26ef987c66677d44419ab44632f75813134b5752 assets/hexcasting/blockstates/impetus/look.json -d2c41f2997d018f2e8e095508378e6d9aa8d7b6c assets/hexcasting/blockstates/impetus/redstone.json -d7c50e1ce1a4219f22e1c1ac6b5a1e38ee16d0d7 assets/hexcasting/blockstates/impetus/rightclick.json -c41c3f2f39c9fa8a319a705e2183112df18cb4f8 assets/hexcasting/blockstates/quenched_allay.json -0cdb41c9716ca939f348876aebbb46921e490f0d assets/hexcasting/blockstates/quenched_allay_bricks.json -d595dc580e8c154c771131ab2ad0c982c1c6b280 assets/hexcasting/blockstates/quenched_allay_bricks_small.json -fb69a8b5507838f3e418a4f9724da20b73cfc2d0 assets/hexcasting/blockstates/quenched_allay_tiles.json -0aca7e2e67793a21ffc794c02fb2b22d02d2058a assets/hexcasting/blockstates/scroll_paper.json -e5c88e23be0552d4c06062510e8feeab510472ef assets/hexcasting/blockstates/scroll_paper_lantern.json -ef6b44bd2360926cb9dcde5bb3f1380385acea90 assets/hexcasting/blockstates/slate.json -9d2f430f379569c512ca80540bb0242f33066ed3 assets/hexcasting/blockstates/slate_amethyst_bricks.json -8de3b35109abb92bcd8f8ce0e05068abf37b0c27 assets/hexcasting/blockstates/slate_amethyst_bricks_small.json -b341fc5a5f113863b37bc3e0f4cb16d677a4baeb assets/hexcasting/blockstates/slate_amethyst_pillar.json -b52cc5b8ab2d301df1d220b2596b393a19a149fe assets/hexcasting/blockstates/slate_amethyst_tiles.json -571fe1d5dfdfd9dacd88bc6d04b1a10e01920bd9 assets/hexcasting/blockstates/slate_block.json -c8c732a2c32e0fbdd2d3c1f7de9d1633479f7ce1 assets/hexcasting/blockstates/slate_bricks.json -a67dc65f3b1e4035662154f0de32e33e2300ad3c assets/hexcasting/blockstates/slate_bricks_small.json -b4f572a104921eba369abe5c84af3682087067c9 assets/hexcasting/blockstates/slate_pillar.json -113b805c092cf5e62f0972056d0d53a591b5aae9 assets/hexcasting/blockstates/slate_tiles.json -13fc293e23c575b19f81f9c4bcd7131d2c34f678 assets/hexcasting/blockstates/stripped_edified_log.json -d66dd72dfbc57537c39d98cf221cc0bfd108dc47 assets/hexcasting/blockstates/stripped_edified_wood.json -b2f3c31e92c7ce6d5b42d95d7ece82b898a9f4f7 assets/hexcasting/models/block/akashic_bookshelf.json -4e925a9a46bd486e5d245dc88911ea57ef0b6319 assets/hexcasting/models/block/akashic_bookshelf_1.json -1a61088aa8efb77c9132bcd3fc69b1d7b9536603 assets/hexcasting/models/block/akashic_bookshelf_2.json -25f6c17cd7b73a83a86e4c15389722d7abfe737e assets/hexcasting/models/block/akashic_bookshelf_3.json -d3b9ed0fd896d96d9bf571ccf3e37d1101e5c162 assets/hexcasting/models/block/akashic_bookshelf_4.json -12871356fc4ecaff1247b7350de79b8783cec96c assets/hexcasting/models/block/akashic_bookshelf_empty.json -215f340a583d72345410c21c43691cd2d8c86724 assets/hexcasting/models/block/akashic_ligature.json -e2a738dede302484f7c8d19dde58c08f841f0432 assets/hexcasting/models/block/akashic_record.json -218a4e73a221eae6b0da7ecdd7f64c0532be46ee assets/hexcasting/models/block/amethyst_dust_block.json -031fefc08eaad4f0d5b7b4b23a0f311f5b5b84b4 assets/hexcasting/models/block/amethyst_edified_leaves.json -c0a2818ae1162e8b93d32a913602ba8523476695 assets/hexcasting/models/block/ancient_scroll_paper.json -77d0a5c4496678f96da5103b49777e612e3cba1e assets/hexcasting/models/block/ancient_scroll_paper_lantern.json -8b6de8cb9ccea9a8e4ce207f0b72048881c11da9 assets/hexcasting/models/block/aventurine_edified_leaves.json -bd1e5a7d3b5945c596919d7ec114d3904199d217 assets/hexcasting/models/block/circle/directrix/boolean/dim_false_down.json -bd1e5a7d3b5945c596919d7ec114d3904199d217 assets/hexcasting/models/block/circle/directrix/boolean/dim_false_east.json -bd1e5a7d3b5945c596919d7ec114d3904199d217 assets/hexcasting/models/block/circle/directrix/boolean/dim_false_north.json -bd1e5a7d3b5945c596919d7ec114d3904199d217 assets/hexcasting/models/block/circle/directrix/boolean/dim_false_south.json -bd1e5a7d3b5945c596919d7ec114d3904199d217 assets/hexcasting/models/block/circle/directrix/boolean/dim_false_up.json -bd1e5a7d3b5945c596919d7ec114d3904199d217 assets/hexcasting/models/block/circle/directrix/boolean/dim_false_west.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_down.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_east.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_north.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_south.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_up.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_west.json -76183d9b39ce0dff814befd20ee2681e4809607e assets/hexcasting/models/block/circle/directrix/boolean/dim_true_down.json -76183d9b39ce0dff814befd20ee2681e4809607e assets/hexcasting/models/block/circle/directrix/boolean/dim_true_east.json -76183d9b39ce0dff814befd20ee2681e4809607e assets/hexcasting/models/block/circle/directrix/boolean/dim_true_north.json -76183d9b39ce0dff814befd20ee2681e4809607e assets/hexcasting/models/block/circle/directrix/boolean/dim_true_south.json -76183d9b39ce0dff814befd20ee2681e4809607e assets/hexcasting/models/block/circle/directrix/boolean/dim_true_up.json -76183d9b39ce0dff814befd20ee2681e4809607e assets/hexcasting/models/block/circle/directrix/boolean/dim_true_west.json -0d757dfb13f75a2e7fb41b8a8f0281c2adfe56ec assets/hexcasting/models/block/circle/directrix/boolean/lit_false_down.json -0d757dfb13f75a2e7fb41b8a8f0281c2adfe56ec assets/hexcasting/models/block/circle/directrix/boolean/lit_false_east.json -0d757dfb13f75a2e7fb41b8a8f0281c2adfe56ec assets/hexcasting/models/block/circle/directrix/boolean/lit_false_north.json -0d757dfb13f75a2e7fb41b8a8f0281c2adfe56ec assets/hexcasting/models/block/circle/directrix/boolean/lit_false_south.json -0d757dfb13f75a2e7fb41b8a8f0281c2adfe56ec assets/hexcasting/models/block/circle/directrix/boolean/lit_false_up.json -0d757dfb13f75a2e7fb41b8a8f0281c2adfe56ec assets/hexcasting/models/block/circle/directrix/boolean/lit_false_west.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_down.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_east.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_north.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_south.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_up.json -2441d51bf7b8b81a1d930dc3adc7ad6b0f64024b assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_west.json -7274390d61c51c344fc86870190f3d9ce2b58205 assets/hexcasting/models/block/circle/directrix/boolean/lit_true_down.json -7274390d61c51c344fc86870190f3d9ce2b58205 assets/hexcasting/models/block/circle/directrix/boolean/lit_true_east.json -7274390d61c51c344fc86870190f3d9ce2b58205 assets/hexcasting/models/block/circle/directrix/boolean/lit_true_north.json -7274390d61c51c344fc86870190f3d9ce2b58205 assets/hexcasting/models/block/circle/directrix/boolean/lit_true_south.json -7274390d61c51c344fc86870190f3d9ce2b58205 assets/hexcasting/models/block/circle/directrix/boolean/lit_true_up.json -7274390d61c51c344fc86870190f3d9ce2b58205 assets/hexcasting/models/block/circle/directrix/boolean/lit_true_west.json -598a6b87cfc622b59d7aa25e08173bfbba86cf9a assets/hexcasting/models/block/circle/directrix/empty/dim_down.json -598a6b87cfc622b59d7aa25e08173bfbba86cf9a assets/hexcasting/models/block/circle/directrix/empty/dim_east.json -598a6b87cfc622b59d7aa25e08173bfbba86cf9a assets/hexcasting/models/block/circle/directrix/empty/dim_north.json -598a6b87cfc622b59d7aa25e08173bfbba86cf9a assets/hexcasting/models/block/circle/directrix/empty/dim_south.json -598a6b87cfc622b59d7aa25e08173bfbba86cf9a assets/hexcasting/models/block/circle/directrix/empty/dim_up.json -598a6b87cfc622b59d7aa25e08173bfbba86cf9a assets/hexcasting/models/block/circle/directrix/empty/dim_west.json -0ed9f3f764e11eb313affb5de87b95d40011f631 assets/hexcasting/models/block/circle/directrix/empty/lit_down.json -0ed9f3f764e11eb313affb5de87b95d40011f631 assets/hexcasting/models/block/circle/directrix/empty/lit_east.json -0ed9f3f764e11eb313affb5de87b95d40011f631 assets/hexcasting/models/block/circle/directrix/empty/lit_north.json -0ed9f3f764e11eb313affb5de87b95d40011f631 assets/hexcasting/models/block/circle/directrix/empty/lit_south.json -0ed9f3f764e11eb313affb5de87b95d40011f631 assets/hexcasting/models/block/circle/directrix/empty/lit_up.json -0ed9f3f764e11eb313affb5de87b95d40011f631 assets/hexcasting/models/block/circle/directrix/empty/lit_west.json -5c22f605218b432555ebfbbc955ef4ca493fc56c assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_down.json -5c22f605218b432555ebfbbc955ef4ca493fc56c assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_east.json -5c22f605218b432555ebfbbc955ef4ca493fc56c assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_north.json -5c22f605218b432555ebfbbc955ef4ca493fc56c assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_south.json -5c22f605218b432555ebfbbc955ef4ca493fc56c assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_up.json -5c22f605218b432555ebfbbc955ef4ca493fc56c assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_west.json -5a61959d58c2e01b970aea64980b854f5611dd7c assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_down.json -5a61959d58c2e01b970aea64980b854f5611dd7c assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_east.json -5a61959d58c2e01b970aea64980b854f5611dd7c assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_north.json -5a61959d58c2e01b970aea64980b854f5611dd7c assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_south.json -5a61959d58c2e01b970aea64980b854f5611dd7c assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_up.json -5a61959d58c2e01b970aea64980b854f5611dd7c assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_west.json -985d84a2d334b491d50ab434bdb402d35d31420a assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_down.json -985d84a2d334b491d50ab434bdb402d35d31420a assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_east.json -985d84a2d334b491d50ab434bdb402d35d31420a assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_north.json -985d84a2d334b491d50ab434bdb402d35d31420a assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_south.json -985d84a2d334b491d50ab434bdb402d35d31420a assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_up.json -985d84a2d334b491d50ab434bdb402d35d31420a assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_west.json -04dd35d39851feb1b1203b698da39aef2f672e04 assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_down.json -04dd35d39851feb1b1203b698da39aef2f672e04 assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_east.json -04dd35d39851feb1b1203b698da39aef2f672e04 assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_north.json -04dd35d39851feb1b1203b698da39aef2f672e04 assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_south.json -04dd35d39851feb1b1203b698da39aef2f672e04 assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_up.json -04dd35d39851feb1b1203b698da39aef2f672e04 assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_west.json -85a51b4253b01a236df8c691364f14566b964b8e assets/hexcasting/models/block/circle/impetus/empty/dim_down.json -85a51b4253b01a236df8c691364f14566b964b8e assets/hexcasting/models/block/circle/impetus/empty/dim_east.json -85a51b4253b01a236df8c691364f14566b964b8e assets/hexcasting/models/block/circle/impetus/empty/dim_north.json -85a51b4253b01a236df8c691364f14566b964b8e assets/hexcasting/models/block/circle/impetus/empty/dim_south.json -85a51b4253b01a236df8c691364f14566b964b8e assets/hexcasting/models/block/circle/impetus/empty/dim_up.json -85a51b4253b01a236df8c691364f14566b964b8e assets/hexcasting/models/block/circle/impetus/empty/dim_west.json -fb79f0fe7547501799df7ef7cf75a961e698b587 assets/hexcasting/models/block/circle/impetus/empty/lit_down.json -fb79f0fe7547501799df7ef7cf75a961e698b587 assets/hexcasting/models/block/circle/impetus/empty/lit_east.json -fb79f0fe7547501799df7ef7cf75a961e698b587 assets/hexcasting/models/block/circle/impetus/empty/lit_north.json -fb79f0fe7547501799df7ef7cf75a961e698b587 assets/hexcasting/models/block/circle/impetus/empty/lit_south.json -fb79f0fe7547501799df7ef7cf75a961e698b587 assets/hexcasting/models/block/circle/impetus/empty/lit_up.json -fb79f0fe7547501799df7ef7cf75a961e698b587 assets/hexcasting/models/block/circle/impetus/empty/lit_west.json -d28458525ef81c9569d33d54d3894618ff4da5cc assets/hexcasting/models/block/circle/impetus/look/dim_down.json -d28458525ef81c9569d33d54d3894618ff4da5cc assets/hexcasting/models/block/circle/impetus/look/dim_east.json -d28458525ef81c9569d33d54d3894618ff4da5cc assets/hexcasting/models/block/circle/impetus/look/dim_north.json -d28458525ef81c9569d33d54d3894618ff4da5cc assets/hexcasting/models/block/circle/impetus/look/dim_south.json -d28458525ef81c9569d33d54d3894618ff4da5cc assets/hexcasting/models/block/circle/impetus/look/dim_up.json -d28458525ef81c9569d33d54d3894618ff4da5cc assets/hexcasting/models/block/circle/impetus/look/dim_west.json -00be1a3a61281180f9fb667df34546ad8151757c assets/hexcasting/models/block/circle/impetus/look/lit_down.json -00be1a3a61281180f9fb667df34546ad8151757c assets/hexcasting/models/block/circle/impetus/look/lit_east.json -00be1a3a61281180f9fb667df34546ad8151757c assets/hexcasting/models/block/circle/impetus/look/lit_north.json -00be1a3a61281180f9fb667df34546ad8151757c assets/hexcasting/models/block/circle/impetus/look/lit_south.json -00be1a3a61281180f9fb667df34546ad8151757c assets/hexcasting/models/block/circle/impetus/look/lit_up.json -00be1a3a61281180f9fb667df34546ad8151757c assets/hexcasting/models/block/circle/impetus/look/lit_west.json -035aa2a384760fcd7f52534d94b6f3227a53af68 assets/hexcasting/models/block/circle/impetus/redstone/dim_down.json -035aa2a384760fcd7f52534d94b6f3227a53af68 assets/hexcasting/models/block/circle/impetus/redstone/dim_east.json -035aa2a384760fcd7f52534d94b6f3227a53af68 assets/hexcasting/models/block/circle/impetus/redstone/dim_north.json -035aa2a384760fcd7f52534d94b6f3227a53af68 assets/hexcasting/models/block/circle/impetus/redstone/dim_south.json -035aa2a384760fcd7f52534d94b6f3227a53af68 assets/hexcasting/models/block/circle/impetus/redstone/dim_up.json -035aa2a384760fcd7f52534d94b6f3227a53af68 assets/hexcasting/models/block/circle/impetus/redstone/dim_west.json -6e20cc21d0275d00524135361b9e100d760cb345 assets/hexcasting/models/block/circle/impetus/redstone/lit_down.json -6e20cc21d0275d00524135361b9e100d760cb345 assets/hexcasting/models/block/circle/impetus/redstone/lit_east.json -6e20cc21d0275d00524135361b9e100d760cb345 assets/hexcasting/models/block/circle/impetus/redstone/lit_north.json -6e20cc21d0275d00524135361b9e100d760cb345 assets/hexcasting/models/block/circle/impetus/redstone/lit_south.json -6e20cc21d0275d00524135361b9e100d760cb345 assets/hexcasting/models/block/circle/impetus/redstone/lit_up.json -6e20cc21d0275d00524135361b9e100d760cb345 assets/hexcasting/models/block/circle/impetus/redstone/lit_west.json -a24e043229d8b278e0f70eb6b2ae4728a858f14b assets/hexcasting/models/block/circle/impetus/rightclick/dim_down.json -a24e043229d8b278e0f70eb6b2ae4728a858f14b assets/hexcasting/models/block/circle/impetus/rightclick/dim_east.json -a24e043229d8b278e0f70eb6b2ae4728a858f14b assets/hexcasting/models/block/circle/impetus/rightclick/dim_north.json -a24e043229d8b278e0f70eb6b2ae4728a858f14b assets/hexcasting/models/block/circle/impetus/rightclick/dim_south.json -a24e043229d8b278e0f70eb6b2ae4728a858f14b assets/hexcasting/models/block/circle/impetus/rightclick/dim_up.json -a24e043229d8b278e0f70eb6b2ae4728a858f14b assets/hexcasting/models/block/circle/impetus/rightclick/dim_west.json -b45b1e1ff5360c9bd5985bf6ea375df437da2b22 assets/hexcasting/models/block/circle/impetus/rightclick/lit_down.json -b45b1e1ff5360c9bd5985bf6ea375df437da2b22 assets/hexcasting/models/block/circle/impetus/rightclick/lit_east.json -b45b1e1ff5360c9bd5985bf6ea375df437da2b22 assets/hexcasting/models/block/circle/impetus/rightclick/lit_north.json -b45b1e1ff5360c9bd5985bf6ea375df437da2b22 assets/hexcasting/models/block/circle/impetus/rightclick/lit_south.json -b45b1e1ff5360c9bd5985bf6ea375df437da2b22 assets/hexcasting/models/block/circle/impetus/rightclick/lit_up.json -b45b1e1ff5360c9bd5985bf6ea375df437da2b22 assets/hexcasting/models/block/circle/impetus/rightclick/lit_west.json -7b47963b4fb1598595cc972f8ac6a38d542c6cf8 assets/hexcasting/models/block/citrine_edified_leaves.json -8b556039d842c21d8cb4cb902aaa5ab6f657a566 assets/hexcasting/models/block/conjured.json -663e744436e300ccead6a7865c72beb86a12532b assets/hexcasting/models/block/deco/amethyst_bricks.json -8db7e7dff6590f9031718c0513e3d75f92ff2525 assets/hexcasting/models/block/deco/amethyst_bricks_small.json -4ba75056f28a3a9ea0c69eb4bd7167a43bd31d74 assets/hexcasting/models/block/deco/amethyst_pillar.json -498da886ef9ba804d18e9a9ebad2acce0efb4ac2 assets/hexcasting/models/block/deco/amethyst_tiles.json -11ed17c8196b894e7f46f72f58fae1286dec4636 assets/hexcasting/models/block/deco/slate_amethyst_bricks_0.json -a04e6772e19e0803217bad644b0f2b2d342cc0fb assets/hexcasting/models/block/deco/slate_amethyst_bricks_1.json -ea05d80cfd1b19be57a04502948bd72f6b39810f assets/hexcasting/models/block/deco/slate_amethyst_bricks_2.json -c7ace7614fedaa48a07e573948d3265eb9baf399 assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_0.json -6060174b4ee67529c5159a95b1d9a4dc29939558 assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_1.json -e7737a9b49cf47235ce4bc5661ae511fb5502f02 assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_2.json -7232b88842fa67b4d3c49d4080623c758f85d8cd assets/hexcasting/models/block/deco/slate_amethyst_tiles.json -d8cda16f0554a97039096a7c2fba50044bd5d0fa assets/hexcasting/models/block/deco/slate_bricks.json -099367e64dea6cef0399ccb30293e56030a5dc20 assets/hexcasting/models/block/deco/slate_bricks_small.json -606a997b09ab7b1b0b6ddf754b583bd7fceb2e46 assets/hexcasting/models/block/deco/slate_tiles.json -d04e6e7976a44e4286f0693a0ea173bc08525c6d assets/hexcasting/models/block/edified_button.json -79b149288702e1239dee1f94f8562f8c37410d14 assets/hexcasting/models/block/edified_button_pressed.json -b13efe9e1aade0163a8d378184a19a639b98c460 assets/hexcasting/models/block/edified_door_bottom_left.json -1e138fe4503fa0d37713ff5b76e8ff82090e8e8e assets/hexcasting/models/block/edified_door_bottom_left_open.json -3d001d0388fd3287ad14dca7eac1581c5ce75b0c assets/hexcasting/models/block/edified_door_bottom_right.json -9dd09e2267b2ae77314c86b1ea1c7406b5b25ce2 assets/hexcasting/models/block/edified_door_bottom_right_open.json -5525ac927fa8165243862504325be6219b40a968 assets/hexcasting/models/block/edified_door_top_left.json -11922c18e84d393bc99380d52c187bbaa6079359 assets/hexcasting/models/block/edified_door_top_left_open.json -729cf57ba13bf915999b4297aadb2ef6848d0337 assets/hexcasting/models/block/edified_door_top_right.json -db3008a51e611ee3ffb86b5829df6b7da6bfcc61 assets/hexcasting/models/block/edified_door_top_right_open.json -04bc3e2c715f624bb873e3abd5c6fcb33dd09f49 assets/hexcasting/models/block/edified_fence_gate.json -27dee730d090c1049e80c3870941ec35a3a8605e assets/hexcasting/models/block/edified_fence_gate_open.json -039ef4a7c1b07295a15bce55e4f779d517491ea5 assets/hexcasting/models/block/edified_fence_gate_wall.json -0cb10fa56c56ed495e13572d964862bccb24d8c4 assets/hexcasting/models/block/edified_fence_gate_wall_open.json -380b40dab77e4a86043723678071f924c3927928 assets/hexcasting/models/block/edified_fence_post.json -f185f0483b97314b9d5ab9e14dc787456532ec27 assets/hexcasting/models/block/edified_fence_side.json -c5433d0b5c9f039ae3c314c8a82c7e1d3238447d assets/hexcasting/models/block/edified_log.json -4e779dbe1d8dfcb2d500bf43d71ecf0bd0104eac assets/hexcasting/models/block/edified_log_amethyst.json -5c9d3a002deae195ba8bff03ac106c302d36792d assets/hexcasting/models/block/edified_log_amethyst_horizontal.json -a470e058329c844661a8011393b57d00efa1fe09 assets/hexcasting/models/block/edified_log_aventurine.json -20695e3c99b52b7738e96c57659bb358dbe9f9ec assets/hexcasting/models/block/edified_log_aventurine_horizontal.json -c38df07b2dada3843ce9399b244d2b9ecdb8faf2 assets/hexcasting/models/block/edified_log_citrine.json -df0e644143c2e50e1f165e89223796a758feb685 assets/hexcasting/models/block/edified_log_citrine_horizontal.json -71f1505d8255e1d57b8a9100b008dbaf73beacdc assets/hexcasting/models/block/edified_log_horizontal.json -231d3d0651bc8525e45f1c9a6bdcd0292b7209b4 assets/hexcasting/models/block/edified_log_purple.json -3cbf60f5ff164e84ae1224520f991a53c1177c14 assets/hexcasting/models/block/edified_log_purple_horizontal.json -e691e8592c9ba75a2c67979ebef11e1c9280075b assets/hexcasting/models/block/edified_panel.json -7dbd6ab538ab6452c981275976d698a8cd7f5636 assets/hexcasting/models/block/edified_planks.json -e291a8a550c6a31e1e11cdd590129d2b61aa3f36 assets/hexcasting/models/block/edified_planks_2.json -6e1b863df2d27342f28d10fc7fbf06e085c8e24d assets/hexcasting/models/block/edified_planks_3.json -dfd5d21b09dea57135e50dc025a1652c9eb74a29 assets/hexcasting/models/block/edified_pressure_plate.json -66dbbb738f9eb7809bf7a910331e9e4ea3cf8e32 assets/hexcasting/models/block/edified_pressure_plate_down.json -342a95e8e3964ee1f913562156d16f48f23712c7 assets/hexcasting/models/block/edified_slab.json -69762fa82b5ee7e17a63b11897ce660734627ca8 assets/hexcasting/models/block/edified_slab_top.json -113060f86214e17a3c1e96d75b06bb534a18a37d assets/hexcasting/models/block/edified_stairs.json -fbd8b3a4e77e4488e25e5b49e4ef7dcb73eb4785 assets/hexcasting/models/block/edified_stairs_inner.json -f0100add1e9997b68bc2e910da63e5a772959486 assets/hexcasting/models/block/edified_stairs_outer.json -e76164c5fd831acccf914c7f05d7fe9639c27c30 assets/hexcasting/models/block/edified_tile.json -abca4332771fe0c3e24b6624907b3206d8cb02f4 assets/hexcasting/models/block/edified_trapdoor_bottom.json -807d363ca1fffe9af1c40319a8c2338822b54f31 assets/hexcasting/models/block/edified_trapdoor_open.json -ba95ea7a856895ca2a3438293b79fe4798b212ad assets/hexcasting/models/block/edified_trapdoor_top.json -d4f286180e320c0ca819067b9e9a9b1db7f72e0a assets/hexcasting/models/block/edified_wood.json -b2e1617c6549ffdf0a38bfbb6e9270a54c7a2718 assets/hexcasting/models/block/edified_wood_horizontal.json -9af2754cb1e53eeaa85618cf92651b4878cf62b1 assets/hexcasting/models/block/quenched_allay.json -2fc68dcd6d73da3deaa6a33240dd9160a2b79592 assets/hexcasting/models/block/quenched_allay_bricks.json -669d9348f4581dae45c35268a760675509a89a29 assets/hexcasting/models/block/quenched_allay_bricks_small.json -bacd99e8c24b9ce004e8aeff509cca4b971f3ed9 assets/hexcasting/models/block/quenched_allay_tiles.json -12ef9da44a265e8aa92d4c37d26fa0777493629e assets/hexcasting/models/block/scroll_paper.json -4f0924c356f9d7bccc490344944d44010ea7e918 assets/hexcasting/models/block/scroll_paper_lantern.json -e450fafba8beee7b800376ed54ff7c3ff7db5faf assets/hexcasting/models/block/slate_amethyst_pillar.json -c68d869d5320b9304ed301a3ce6dfa7dbea74747 assets/hexcasting/models/block/slate_amethyst_pillar_horizontal.json -603ffa587a335cf23e2bb17604583c6ad6f436b8 assets/hexcasting/models/block/slate_block.json -e7481aed52721e3893c4fa70341d696992223c25 assets/hexcasting/models/block/slate_pillar.json -5cfe93a217031aff9db6c9067c56d2366b13ac7e assets/hexcasting/models/block/slate_pillar_horizontal.json -a5081ed63f45e689df2c2d6a6c1283bfcd89f20f assets/hexcasting/models/block/stripped_edified_log.json -e5484f6caf6bea67cc8a447c202a4f1dc11957db assets/hexcasting/models/block/stripped_edified_log_horizontal.json -4495b24baf73ef0aaf930a136bf0052398aad1b3 assets/hexcasting/models/block/stripped_edified_wood.json -ca5cd940b68d928845dc2d104da3dda8d15e45dd assets/hexcasting/models/block/stripped_edified_wood_horizontal.json -19a6005af10d0812e8c861053f5863e6e04af3ba assets/hexcasting/models/item/akashic_bookshelf.json -faf66c95b0725ee747c4e510414522121d9f80eb assets/hexcasting/models/item/akashic_connector.json -19730853397b109cfedd0c3bbda83d5de6cd15b9 assets/hexcasting/models/item/akashic_record.json -b5ddad23811e2f51a036c497dbe2e9f569801e79 assets/hexcasting/models/item/amethyst_bricks.json -f41f6f46a5a37e757eb4e4df3b10f68fc86efe66 assets/hexcasting/models/item/amethyst_bricks_small.json -951a9945880de02cae20c1afaf38b16b21194dd1 assets/hexcasting/models/item/amethyst_dust_block.json -144aa423e08987551a34aff969884a11c4efbff7 assets/hexcasting/models/item/amethyst_edified_leaves.json -f81fdf1ffe88fab521b34901e983cd4836ce4529 assets/hexcasting/models/item/amethyst_sconce.json -fa23967e352823f0fc9e2bdd11a9cbac7c47b135 assets/hexcasting/models/item/amethyst_tiles.json -1d0a961ead6b43d20c621b351532656bf3a0d6d2 assets/hexcasting/models/item/ancient_scroll_paper.json -d4a109488c27fc5d60e9054cd1485f1982040ff3 assets/hexcasting/models/item/ancient_scroll_paper_lantern.json -7c2b9b5296ba5e3c261bb237555e7d4082ad9303 assets/hexcasting/models/item/aventurine_edified_leaves.json -50b0a55c712887ceb02bc835a1111cf855c11b6e assets/hexcasting/models/item/citrine_edified_leaves.json -25a1386a5f4fca414f0e2509ce489616b24b9c9c assets/hexcasting/models/item/directrix/boolean.json -c24d9c5ec6c7f3212ea814ecd40e56bdc94c22a8 assets/hexcasting/models/item/directrix/empty.json -c84399ca55a1ac9b37ed4b8153b4469fa5ed9c5a assets/hexcasting/models/item/directrix/redstone.json -96e1cd457414bddbddda1383564c6a566808f958 assets/hexcasting/models/item/edified_panel.json -82bac5442c940fb74e1ad068a9c8df1d0e10d959 assets/hexcasting/models/item/edified_planks.json -3e55be12a83ab041f8e269ad4e40454e32e05421 assets/hexcasting/models/item/edified_tile.json -486c1fad6dd0bf76f160d157439e6d4add950ff8 assets/hexcasting/models/item/impetus/empty.json -cbe5bc7148b9e1c1cf5c4517801da664aa39efb8 assets/hexcasting/models/item/impetus/look.json -37ae2de56929989d8c44ba0d72e1623c2056c397 assets/hexcasting/models/item/impetus/redstone.json -e7f590cfc681aa7d19c56df325c95c5fbed01bc5 assets/hexcasting/models/item/impetus/rightclick.json -769dcfb4a504e4dcd28a43cf603a18c66f57e594 assets/hexcasting/models/item/scroll_paper.json -222e40e5754f5cb5a04321c4ed4cee27748c9224 assets/hexcasting/models/item/scroll_paper_lantern.json -e5b07f23ead1bba9ee5a3b86a9e520da883ba331 assets/hexcasting/models/item/slate_amethyst_bricks.json -826f953fdee668104ec1772941c56332e12dbc46 assets/hexcasting/models/item/slate_amethyst_bricks_small.json -a179178b90c8650b7906ce3aa302623bf3c427b7 assets/hexcasting/models/item/slate_amethyst_tiles.json -145db42b0d90bdb4fd82f5a7eea229be4c0f9675 assets/hexcasting/models/item/slate_block.json -eef72354b37ba0940ecf1e0cc5219cc15a6886a6 assets/hexcasting/models/item/slate_bricks.json -cb5ccddcc3654021fc134867303483bd135db65c assets/hexcasting/models/item/slate_bricks_small.json -71c735cca7c0b8c4e55b31fd87e46982552db135 assets/hexcasting/models/item/slate_tiles.json diff --git a/Common/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 b/Common/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 deleted file mode 100644 index 4c5fd592d7..0000000000 --- a/Common/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 +++ /dev/null @@ -1,17 +0,0 @@ -// 1.20.1 2024-10-01T23:18:15.2302045 Advancements -4016b178322c4784c12c66c227d5b4ff2e43d32d data/hexcasting/advancements/aaa_wasteful_cast.json -6469361b24f473b4d7d900828e6bbf2bdabf916b data/hexcasting/advancements/aab_big_cast.json -b4b921ec01322795b41e88406685c3ab7c7d09cc data/hexcasting/advancements/creative_unlocker.json -e02605ac2dff5c426e1d0a58d46daefecda11946 data/hexcasting/advancements/enlightenment.json -e2679742ac4e23ba4c79c17d209f16d42d7bccd8 data/hexcasting/advancements/lore.json -6c3fc955783d450e12494b193e985a403b203f0a data/hexcasting/advancements/lore/cardamom1.json -2191ef660f29f328fbdb3baca4f33585045c999e data/hexcasting/advancements/lore/cardamom2.json -fccce07d88f98719750516d2dbbc7ed186769c80 data/hexcasting/advancements/lore/cardamom3.json -cee68eb79ae27b6a83a25cf014d19c6bc4575cc0 data/hexcasting/advancements/lore/cardamom4.json -752744633e3b9500baebd5a4f8fa35e0c2d79ede data/hexcasting/advancements/lore/cardamom5.json -5898f7083f74a490b100b0a2282df242548baf7c data/hexcasting/advancements/lore/experiment1.json -8985672cbf68098dc416fd1f9e69d46212d04512 data/hexcasting/advancements/lore/experiment2.json -841c8eb27ad70aeaf0c9f7936fc8460cca0996fb data/hexcasting/advancements/lore/inventory.json -d273b4dc581c0029cde2208e264a6d32492cd18f data/hexcasting/advancements/opened_eyes.json -1cac020fa7b47ff386e7492f49e27803d506825d data/hexcasting/advancements/root.json -e4cee07b5809ebf27f1c1d48f66856153f7088f4 data/hexcasting/advancements/y_u_no_cast_angy.json diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_connector.json b/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_ligature.json similarity index 100% rename from Common/src/generated/resources/assets/hexcasting/blockstates/akashic_connector.json rename to Common/src/generated/resources/assets/hexcasting/blockstates/akashic_ligature.json diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_down.json index 59d6517a5e..c132d88be4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_east.json index 59d6517a5e..c132d88be4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_north.json index 59d6517a5e..c132d88be4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_south.json index 59d6517a5e..c132d88be4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_up.json index 59d6517a5e..c132d88be4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_west.json index 59d6517a5e..c132d88be4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_down.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_east.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_north.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_south.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_up.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_west.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_down.json index 70f47f0263..3477cd9b15 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_east.json index 70f47f0263..3477cd9b15 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_north.json index 70f47f0263..3477cd9b15 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_south.json index 70f47f0263..3477cd9b15 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_up.json index 70f47f0263..3477cd9b15 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_west.json index 70f47f0263..3477cd9b15 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_down.json index 618362394c..ccc4319820 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_east.json index 618362394c..ccc4319820 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_north.json index 618362394c..ccc4319820 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_south.json index 618362394c..ccc4319820 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_up.json index 618362394c..ccc4319820 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_west.json index 618362394c..ccc4319820 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_false", "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_false", "west": "hexcasting:block/circle/directrix/boolean/right_false" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_down.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_east.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_north.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_south.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_up.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_west.json index ec90eae94b..20c3b6cedf 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_neither", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_not_true", "up": "hexcasting:block/circle/directrix/boolean/top_neither", "west": "hexcasting:block/circle/directrix/boolean/right_neither" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_down.json index 0eac9a0e36..5c453220fd 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_east.json index 0eac9a0e36..5c453220fd 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_north.json index 0eac9a0e36..5c453220fd 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_south.json index 0eac9a0e36..5c453220fd 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_up.json index 0eac9a0e36..5c453220fd 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_west.json index 0eac9a0e36..5c453220fd 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/boolean/left_true", "north": "hexcasting:block/circle/directrix/boolean/front_not_false", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", "up": "hexcasting:block/circle/directrix/boolean/top_true", "west": "hexcasting:block/circle/directrix/boolean/right_true" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_down.json index 0cf00e0267..8178542bf4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_dim", "north": "hexcasting:block/circle/directrix/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_dim", "up": "hexcasting:block/circle/directrix/empty/top_dim", "west": "hexcasting:block/circle/directrix/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_east.json index 0cf00e0267..8178542bf4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_dim", "north": "hexcasting:block/circle/directrix/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_dim", "up": "hexcasting:block/circle/directrix/empty/top_dim", "west": "hexcasting:block/circle/directrix/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_north.json index 0cf00e0267..8178542bf4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_dim", "north": "hexcasting:block/circle/directrix/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_dim", "up": "hexcasting:block/circle/directrix/empty/top_dim", "west": "hexcasting:block/circle/directrix/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_south.json index 0cf00e0267..8178542bf4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_dim", "north": "hexcasting:block/circle/directrix/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_dim", "up": "hexcasting:block/circle/directrix/empty/top_dim", "west": "hexcasting:block/circle/directrix/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_up.json index 0cf00e0267..8178542bf4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_dim", "north": "hexcasting:block/circle/directrix/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_dim", "up": "hexcasting:block/circle/directrix/empty/top_dim", "west": "hexcasting:block/circle/directrix/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_west.json index 0cf00e0267..8178542bf4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_dim", "north": "hexcasting:block/circle/directrix/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_dim", "up": "hexcasting:block/circle/directrix/empty/top_dim", "west": "hexcasting:block/circle/directrix/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_down.json index f4f0467931..8da64102c4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_lit", "north": "hexcasting:block/circle/directrix/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_lit", "up": "hexcasting:block/circle/directrix/empty/top_lit", "west": "hexcasting:block/circle/directrix/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_east.json index f4f0467931..8da64102c4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_lit", "north": "hexcasting:block/circle/directrix/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_lit", "up": "hexcasting:block/circle/directrix/empty/top_lit", "west": "hexcasting:block/circle/directrix/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_north.json index f4f0467931..8da64102c4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_lit", "north": "hexcasting:block/circle/directrix/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_lit", "up": "hexcasting:block/circle/directrix/empty/top_lit", "west": "hexcasting:block/circle/directrix/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_south.json index f4f0467931..8da64102c4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_lit", "north": "hexcasting:block/circle/directrix/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_lit", "up": "hexcasting:block/circle/directrix/empty/top_lit", "west": "hexcasting:block/circle/directrix/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_up.json index f4f0467931..8da64102c4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_lit", "north": "hexcasting:block/circle/directrix/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_lit", "up": "hexcasting:block/circle/directrix/empty/top_lit", "west": "hexcasting:block/circle/directrix/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_west.json index f4f0467931..8da64102c4 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/empty/left_lit", "north": "hexcasting:block/circle/directrix/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/empty/back_lit", "up": "hexcasting:block/circle/directrix/empty/top_lit", "west": "hexcasting:block/circle/directrix/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_down.json index 0100db33b8..adb3eb5128 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_east.json index 0100db33b8..adb3eb5128 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_north.json index 0100db33b8..adb3eb5128 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_south.json index 0100db33b8..adb3eb5128 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_up.json index 0100db33b8..adb3eb5128 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_west.json index 0100db33b8..adb3eb5128 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_down.json index dbdd0a7e28..c191d8a113 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_east.json index dbdd0a7e28..c191d8a113 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_north.json index dbdd0a7e28..c191d8a113 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_south.json index dbdd0a7e28..c191d8a113 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_up.json index dbdd0a7e28..c191d8a113 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_west.json index dbdd0a7e28..c191d8a113 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_down.json index 5ba4750e26..97d3da2808 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_east.json index 5ba4750e26..97d3da2808 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_north.json index 5ba4750e26..97d3da2808 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_south.json index 5ba4750e26..97d3da2808 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_up.json index 5ba4750e26..97d3da2808 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_west.json index 5ba4750e26..97d3da2808 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_powered", "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", "up": "hexcasting:block/circle/directrix/redstone/top_powered", "west": "hexcasting:block/circle/directrix/redstone/right_powered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_down.json index e597b41daa..722076a071 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_east.json index e597b41daa..722076a071 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_north.json index e597b41daa..722076a071 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_south.json index e597b41daa..722076a071 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_up.json index e597b41daa..722076a071 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_west.json index e597b41daa..722076a071 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_down.json index a4c86b9217..479ee7c42b 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_dim", "north": "hexcasting:block/circle/impetus/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/empty/top_dim", "west": "hexcasting:block/circle/impetus/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_east.json index a4c86b9217..479ee7c42b 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_dim", "north": "hexcasting:block/circle/impetus/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/empty/top_dim", "west": "hexcasting:block/circle/impetus/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_north.json index a4c86b9217..479ee7c42b 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_dim", "north": "hexcasting:block/circle/impetus/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/empty/top_dim", "west": "hexcasting:block/circle/impetus/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_south.json index a4c86b9217..479ee7c42b 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_dim", "north": "hexcasting:block/circle/impetus/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/empty/top_dim", "west": "hexcasting:block/circle/impetus/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_up.json index a4c86b9217..479ee7c42b 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_dim", "north": "hexcasting:block/circle/impetus/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/empty/top_dim", "west": "hexcasting:block/circle/impetus/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_west.json index a4c86b9217..479ee7c42b 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_dim", "north": "hexcasting:block/circle/impetus/empty/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/empty/top_dim", "west": "hexcasting:block/circle/impetus/empty/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_down.json index 7a57e354a9..1fb7369cd2 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_lit", "north": "hexcasting:block/circle/impetus/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/empty/top_lit", "west": "hexcasting:block/circle/impetus/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_east.json index 7a57e354a9..1fb7369cd2 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_lit", "north": "hexcasting:block/circle/impetus/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/empty/top_lit", "west": "hexcasting:block/circle/impetus/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_north.json index 7a57e354a9..1fb7369cd2 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_lit", "north": "hexcasting:block/circle/impetus/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/empty/top_lit", "west": "hexcasting:block/circle/impetus/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_south.json index 7a57e354a9..1fb7369cd2 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_lit", "north": "hexcasting:block/circle/impetus/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/empty/top_lit", "west": "hexcasting:block/circle/impetus/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_up.json index 7a57e354a9..1fb7369cd2 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_lit", "north": "hexcasting:block/circle/impetus/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/empty/top_lit", "west": "hexcasting:block/circle/impetus/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_west.json index 7a57e354a9..1fb7369cd2 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/empty/left_lit", "north": "hexcasting:block/circle/impetus/empty/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/empty/top_lit", "west": "hexcasting:block/circle/impetus/empty/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_down.json index 25c889223f..76165760a5 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_dim", "north": "hexcasting:block/circle/impetus/look/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/look/top_dim", "west": "hexcasting:block/circle/impetus/look/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_east.json index 25c889223f..76165760a5 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_dim", "north": "hexcasting:block/circle/impetus/look/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/look/top_dim", "west": "hexcasting:block/circle/impetus/look/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_north.json index 25c889223f..76165760a5 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_dim", "north": "hexcasting:block/circle/impetus/look/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/look/top_dim", "west": "hexcasting:block/circle/impetus/look/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_south.json index 25c889223f..76165760a5 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_dim", "north": "hexcasting:block/circle/impetus/look/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/look/top_dim", "west": "hexcasting:block/circle/impetus/look/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_up.json index 25c889223f..76165760a5 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_dim", "north": "hexcasting:block/circle/impetus/look/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/look/top_dim", "west": "hexcasting:block/circle/impetus/look/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_west.json index 25c889223f..76165760a5 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_dim", "north": "hexcasting:block/circle/impetus/look/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/look/top_dim", "west": "hexcasting:block/circle/impetus/look/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_down.json index f2514c5742..504eba8930 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_lit", "north": "hexcasting:block/circle/impetus/look/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/look/top_lit", "west": "hexcasting:block/circle/impetus/look/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_east.json index f2514c5742..504eba8930 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_lit", "north": "hexcasting:block/circle/impetus/look/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/look/top_lit", "west": "hexcasting:block/circle/impetus/look/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_north.json index f2514c5742..504eba8930 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_lit", "north": "hexcasting:block/circle/impetus/look/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/look/top_lit", "west": "hexcasting:block/circle/impetus/look/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_south.json index f2514c5742..504eba8930 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_lit", "north": "hexcasting:block/circle/impetus/look/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/look/top_lit", "west": "hexcasting:block/circle/impetus/look/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_up.json index f2514c5742..504eba8930 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_lit", "north": "hexcasting:block/circle/impetus/look/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/look/top_lit", "west": "hexcasting:block/circle/impetus/look/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_west.json index f2514c5742..504eba8930 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/look/left_lit", "north": "hexcasting:block/circle/impetus/look/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/look/top_lit", "west": "hexcasting:block/circle/impetus/look/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_down.json index c46569cd8c..71ea895f6a 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_dim", "north": "hexcasting:block/circle/impetus/redstone/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/redstone/top_dim", "west": "hexcasting:block/circle/impetus/redstone/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_east.json index c46569cd8c..71ea895f6a 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_dim", "north": "hexcasting:block/circle/impetus/redstone/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/redstone/top_dim", "west": "hexcasting:block/circle/impetus/redstone/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_north.json index c46569cd8c..71ea895f6a 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_dim", "north": "hexcasting:block/circle/impetus/redstone/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/redstone/top_dim", "west": "hexcasting:block/circle/impetus/redstone/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_south.json index c46569cd8c..71ea895f6a 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_dim", "north": "hexcasting:block/circle/impetus/redstone/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/redstone/top_dim", "west": "hexcasting:block/circle/impetus/redstone/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_up.json index c46569cd8c..71ea895f6a 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_dim", "north": "hexcasting:block/circle/impetus/redstone/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/redstone/top_dim", "west": "hexcasting:block/circle/impetus/redstone/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_west.json index c46569cd8c..71ea895f6a 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_dim", "north": "hexcasting:block/circle/impetus/redstone/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/redstone/top_dim", "west": "hexcasting:block/circle/impetus/redstone/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_down.json index 1f6d0d72fe..12630ca3cb 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_lit", "north": "hexcasting:block/circle/impetus/redstone/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/redstone/top_lit", "west": "hexcasting:block/circle/impetus/redstone/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_east.json index 1f6d0d72fe..12630ca3cb 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_lit", "north": "hexcasting:block/circle/impetus/redstone/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/redstone/top_lit", "west": "hexcasting:block/circle/impetus/redstone/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_north.json index 1f6d0d72fe..12630ca3cb 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_lit", "north": "hexcasting:block/circle/impetus/redstone/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/redstone/top_lit", "west": "hexcasting:block/circle/impetus/redstone/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_south.json index 1f6d0d72fe..12630ca3cb 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_lit", "north": "hexcasting:block/circle/impetus/redstone/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/redstone/top_lit", "west": "hexcasting:block/circle/impetus/redstone/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_up.json index 1f6d0d72fe..12630ca3cb 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_lit", "north": "hexcasting:block/circle/impetus/redstone/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/redstone/top_lit", "west": "hexcasting:block/circle/impetus/redstone/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_west.json index 1f6d0d72fe..12630ca3cb 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/redstone/left_lit", "north": "hexcasting:block/circle/impetus/redstone/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/redstone/top_lit", "west": "hexcasting:block/circle/impetus/redstone/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_down.json index f25b1aa354..c5fdbc02b0 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_dim", "north": "hexcasting:block/circle/impetus/rightclick/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/rightclick/top_dim", "west": "hexcasting:block/circle/impetus/rightclick/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_east.json index f25b1aa354..c5fdbc02b0 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_dim", "north": "hexcasting:block/circle/impetus/rightclick/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/rightclick/top_dim", "west": "hexcasting:block/circle/impetus/rightclick/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_north.json index f25b1aa354..c5fdbc02b0 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_dim", "north": "hexcasting:block/circle/impetus/rightclick/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/rightclick/top_dim", "west": "hexcasting:block/circle/impetus/rightclick/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_south.json index f25b1aa354..c5fdbc02b0 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_dim", "north": "hexcasting:block/circle/impetus/rightclick/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/rightclick/top_dim", "west": "hexcasting:block/circle/impetus/rightclick/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_up.json index f25b1aa354..c5fdbc02b0 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_dim", "north": "hexcasting:block/circle/impetus/rightclick/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/rightclick/top_dim", "west": "hexcasting:block/circle/impetus/rightclick/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_west.json index f25b1aa354..c5fdbc02b0 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_dim", "north": "hexcasting:block/circle/impetus/rightclick/front_dim", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_dim", "up": "hexcasting:block/circle/impetus/rightclick/top_dim", "west": "hexcasting:block/circle/impetus/rightclick/right_dim" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_down.json index b55b1f7a90..3840e6cb08 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_down.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_down.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_lit", "north": "hexcasting:block/circle/impetus/rightclick/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/rightclick/top_lit", "west": "hexcasting:block/circle/impetus/rightclick/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_east.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_east.json index b55b1f7a90..3840e6cb08 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_east.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_east.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_lit", "north": "hexcasting:block/circle/impetus/rightclick/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/rightclick/top_lit", "west": "hexcasting:block/circle/impetus/rightclick/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_north.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_north.json index b55b1f7a90..3840e6cb08 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_north.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_north.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_lit", "north": "hexcasting:block/circle/impetus/rightclick/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/rightclick/top_lit", "west": "hexcasting:block/circle/impetus/rightclick/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_south.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_south.json index b55b1f7a90..3840e6cb08 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_south.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_south.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_lit", "north": "hexcasting:block/circle/impetus/rightclick/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/rightclick/top_lit", "west": "hexcasting:block/circle/impetus/rightclick/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_up.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_up.json index b55b1f7a90..3840e6cb08 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_up.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_up.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_lit", "north": "hexcasting:block/circle/impetus/rightclick/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/rightclick/top_lit", "west": "hexcasting:block/circle/impetus/rightclick/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_west.json b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_west.json index b55b1f7a90..3840e6cb08 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_west.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_west.json @@ -4,7 +4,7 @@ "down": "hexcasting:block/circle/bottom", "east": "hexcasting:block/circle/impetus/rightclick/left_lit", "north": "hexcasting:block/circle/impetus/rightclick/front_lit", - "particle": "hexcasting:block/slate", + "particle": "hexcasting:block/slate_block", "south": "hexcasting:block/circle/impetus/back_lit", "up": "hexcasting:block/circle/impetus/rightclick/top_lit", "west": "hexcasting:block/circle/impetus/rightclick/right_lit" diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/slate_block.json b/Common/src/generated/resources/assets/hexcasting/models/block/slate_block.json index 0afe24d83a..2d8635f925 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/block/slate_block.json +++ b/Common/src/generated/resources/assets/hexcasting/models/block/slate_block.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cube_all", "textures": { - "all": "hexcasting:block/slate" + "all": "hexcasting:block/slate_block" } } \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/akashic_connector.json b/Common/src/generated/resources/assets/hexcasting/models/item/akashic_ligature.json similarity index 100% rename from Common/src/generated/resources/assets/hexcasting/models/item/akashic_connector.json rename to Common/src/generated/resources/assets/hexcasting/models/item/akashic_ligature.json diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher.json new file mode 100644 index 0000000000..ffc8b5e1cc --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher.json @@ -0,0 +1,120 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "hexcasting:item/ancient_cypher", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_0_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_1", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_1_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_2", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_2_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_3", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_3_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_4", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_4_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_5", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_5_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_6", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_6_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_7", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 7.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_7_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 7.0 + } + } + ], + "textures": { + "layer0": "hexcasting:item/cad/0_ancient_cypher" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_0_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_0_filled.json new file mode 100644 index 0000000000..b38ad18d6d --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_0_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/0_ancient_cypher", + "layer1": "hexcasting:item/cad/0_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1.json new file mode 100644 index 0000000000..e8b7b12d55 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_ancient_cypher" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1_filled.json new file mode 100644 index 0000000000..856b0a26d7 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_ancient_cypher", + "layer1": "hexcasting:item/cad/1_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2.json new file mode 100644 index 0000000000..3badfcdd0f --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_ancient_cypher" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2_filled.json new file mode 100644 index 0000000000..effb9e0198 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_ancient_cypher", + "layer1": "hexcasting:item/cad/2_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3.json new file mode 100644 index 0000000000..98aabd91e8 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_ancient_cypher" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3_filled.json new file mode 100644 index 0000000000..2f19e9feea --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_ancient_cypher", + "layer1": "hexcasting:item/cad/3_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4.json new file mode 100644 index 0000000000..93318f7bc4 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_ancient_cypher" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4_filled.json new file mode 100644 index 0000000000..081cfd65c4 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_ancient_cypher", + "layer1": "hexcasting:item/cad/4_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5.json new file mode 100644 index 0000000000..9d247cdd23 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_ancient_cypher" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5_filled.json new file mode 100644 index 0000000000..0ed6accc2a --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_ancient_cypher", + "layer1": "hexcasting:item/cad/5_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6.json new file mode 100644 index 0000000000..bf9c9fe505 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_ancient_cypher" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6_filled.json new file mode 100644 index 0000000000..199292d90f --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_ancient_cypher", + "layer1": "hexcasting:item/cad/6_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7.json new file mode 100644 index 0000000000..56e0653080 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_ancient_cypher" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7_filled.json new file mode 100644 index 0000000000..b408892c14 --- /dev/null +++ b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_ancient_cypher", + "layer1": "hexcasting:item/cad/7_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/create/tags/blocks/brittle.json b/Common/src/generated/resources/data/create/tags/block/brittle.json similarity index 100% rename from Neoforge/src/generated/resources/data/create/tags/blocks/brittle.json rename to Common/src/generated/resources/data/create/tags/block/brittle.json diff --git a/Neoforge/src/generated/resources/data/forge/tags/items/dusts/amethyst.json b/Common/src/generated/resources/data/forge/tags/item/dusts/amethyst.json similarity index 100% rename from Neoforge/src/generated/resources/data/forge/tags/items/dusts/amethyst.json rename to Common/src/generated/resources/data/forge/tags/item/dusts/amethyst.json diff --git a/Neoforge/src/generated/resources/data/forge/tags/items/gems.json b/Common/src/generated/resources/data/forge/tags/item/gems.json similarity index 100% rename from Neoforge/src/generated/resources/data/forge/tags/items/gems.json rename to Common/src/generated/resources/data/forge/tags/item/gems.json diff --git a/Common/src/generated/resources/data/hexcasting/advancement/aaa_wasteful_cast.json b/Common/src/generated/resources/data/hexcasting/advancement/aaa_wasteful_cast.json new file mode 100644 index 0000000000..158691c260 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/aaa_wasteful_cast.json @@ -0,0 +1,32 @@ +{ + "parent": "hexcasting:root", + "criteria": { + "waste_amt": { + "conditions": { + "health_used": { + "min": 89000 + }, + "media_generated": {} + }, + "trigger": "hexcasting:spend_media" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:wasteful_cast.desc" + }, + "icon": { + "count": 1, + "id": "minecraft:glistering_melon_slice" + }, + "title": { + "translate": "advancement.hexcasting:wasteful_cast" + } + }, + "requirements": [ + [ + "waste_amt" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/aab_big_cast.json b/Common/src/generated/resources/data/hexcasting/advancement/aab_big_cast.json new file mode 100644 index 0000000000..4664381e91 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/aab_big_cast.json @@ -0,0 +1,32 @@ +{ + "parent": "hexcasting:root", + "criteria": { + "cast_amt": { + "conditions": { + "health_used": {}, + "media_generated": { + "min": 6400000 + } + }, + "trigger": "hexcasting:spend_media" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:big_cast.desc" + }, + "icon": { + "count": 1, + "id": "hexcasting:charged_amethyst" + }, + "title": { + "translate": "advancement.hexcasting:big_cast" + } + }, + "requirements": [ + [ + "cast_amt" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/creative_unlocker.json b/Common/src/generated/resources/data/hexcasting/advancement/creative_unlocker.json new file mode 100644 index 0000000000..66694b8389 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/creative_unlocker.json @@ -0,0 +1,36 @@ +{ + "parent": "hexcasting:root", + "criteria": { + "has_creative_unlocker": { + "conditions": { + "items": [ + { + "items": "hexcasting:creative_unlocker" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": false, + "background": "minecraft:textures/block/calcite.png", + "description": { + "translate": "advancement.hexcasting:creative_unlocker.desc" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:creative_unlocker" + }, + "title": { + "translate": "advancement.hexcasting:creative_unlocker" + } + }, + "requirements": [ + [ + "has_creative_unlocker" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/enlightenment.json b/Common/src/generated/resources/data/hexcasting/advancement/enlightenment.json new file mode 100644 index 0000000000..6beb493204 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/enlightenment.json @@ -0,0 +1,38 @@ +{ + "parent": "hexcasting:opened_eyes", + "criteria": { + "health_used": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:enlightenment.desc" + }, + "frame": "challenge", + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:music_disc_11" + }, + "title": { + "translate": "advancement.hexcasting:enlightenment" + } + }, + "requirements": [ + [ + "health_used" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/lore.json b/Common/src/generated/resources/data/hexcasting/advancement/lore.json new file mode 100644 index 0000000000..42c9fd8c5f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/lore.json @@ -0,0 +1,32 @@ +{ + "criteria": { + "used_item": { + "conditions": { + "item": { + "items": "hexcasting:lore_fragment" + } + }, + "trigger": "minecraft:consume_item" + } + }, + "display": { + "background": "hexcasting:textures/block/slate_block.png", + "description": { + "translate": "advancement.hexcasting:lore.desc" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "hexcasting:akashic_ligature" + }, + "title": { + "translate": "advancement.hexcasting:lore" + } + }, + "requirements": [ + [ + "used_item" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom1.json b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom1.json new file mode 100644 index 0000000000..314c3fa628 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom1.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom1" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom2.json b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom2.json new file mode 100644 index 0000000000..6f3e2b9d20 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom2.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom2" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom3.json b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom3.json new file mode 100644 index 0000000000..2147c12792 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom3.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom3" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom4.json b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom4.json new file mode 100644 index 0000000000..1374bfcca4 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom4.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom4" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom5.json b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom5.json new file mode 100644 index 0000000000..06c329a939 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/lore/cardamom5.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom5" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/lore/experiment1.json b/Common/src/generated/resources/data/hexcasting/advancement/lore/experiment1.json new file mode 100644 index 0000000000..9d2183c268 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/lore/experiment1.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/experiment1" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/lore/experiment2.json b/Common/src/generated/resources/data/hexcasting/advancement/lore/experiment2.json new file mode 100644 index 0000000000..4ac3cadb4f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/lore/experiment2.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/experiment2" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/lore/inventory.json b/Common/src/generated/resources/data/hexcasting/advancement/lore/inventory.json new file mode 100644 index 0000000000..abef5eb653 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/lore/inventory.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/inventory" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/opened_eyes.json b/Common/src/generated/resources/data/hexcasting/advancement/opened_eyes.json new file mode 100644 index 0000000000..89583b9134 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/opened_eyes.json @@ -0,0 +1,33 @@ +{ + "parent": "hexcasting:y_u_no_cast_angy", + "criteria": { + "health_used": { + "conditions": { + "health_used": {}, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "min": 0.0 + } + }, + "trigger": "hexcasting:overcast" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:opened_eyes.desc" + }, + "icon": { + "count": 1, + "id": "minecraft:ender_eye" + }, + "title": { + "translate": "advancement.hexcasting:opened_eyes" + } + }, + "requirements": [ + [ + "health_used" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/akashic_record.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/akashic_record.json new file mode 100644 index 0000000000..d36fd4dc3b --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/akashic_record.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:akashic_record" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:akashic_record" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/budding_amethyst.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/budding_amethyst.json new file mode 100644 index 0000000000..18f9ea380f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/budding_amethyst.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:budding_amethyst" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:budding_amethyst" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_boolean.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_boolean.json new file mode 100644 index 0000000000..cc4c924b54 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_boolean.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:directrix_boolean" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:directrix_boolean" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_redstone.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_redstone.json new file mode 100644 index 0000000000..8a43f8bac3 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_redstone.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:directrix_redstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:directrix_redstone" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_look.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_look.json new file mode 100644 index 0000000000..939dcb6e4e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_look.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus_look" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus_look" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_rightclick.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_rightclick.json new file mode 100644 index 0000000000..c4fc49fd24 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_rightclick.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus_rightclick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus_rightclick" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_storedplayer.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_storedplayer.json new file mode 100644 index 0000000000..31d9085f82 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_storedplayer.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus_storedplayer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus_storedplayer" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/quench_allay.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/quench_allay.json new file mode 100644 index 0000000000..6dfe849d9f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/quench_allay.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:quench_allay" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:quench_allay" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_packing.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_packing.json new file mode 100644 index 0000000000..96746726ec --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_packing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_dust_packing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_dust_packing" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_unpacking.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_unpacking.json new file mode 100644 index 0000000000..ff10efd290 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_unpacking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_dust_unpacking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_dust_unpacking" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_tiles.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_tiles.json new file mode 100644 index 0000000000..a5ab663568 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_tiles.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_tiles" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_tiles" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/ancient_scroll_paper.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/ancient_scroll_paper.json new file mode 100644 index 0000000000..ab1194da4a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/ancient_scroll_paper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:scroll_paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:ancient_scroll_paper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:ancient_scroll_paper" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence.json new file mode 100644 index 0000000000..31556a4ca8 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_fence" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence_gate.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence_gate.json new file mode 100644 index 0000000000..1d09e6fdf8 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_fence_gate" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_panel.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_panel.json new file mode 100644 index 0000000000..ab66016e10 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_panel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_panel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_panel" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_planks.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_planks.json new file mode 100644 index 0000000000..f031431d00 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_planks" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_slab.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_slab.json new file mode 100644 index 0000000000..317bd1fd11 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_slab" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_stairs.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_stairs.json new file mode 100644 index 0000000000..069989ca28 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_stairs" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_tile.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_tile.json new file mode 100644 index 0000000000..5179827061 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_tile.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_tile" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_tile" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_wood.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_wood.json new file mode 100644 index 0000000000..f0aaf4b1fd --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:edified_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_wood" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/scroll_paper.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/scroll_paper.json new file mode 100644 index 0000000000..d676daa7f7 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/scroll_paper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_paper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_paper" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block.json new file mode 100644 index 0000000000..770d62ab2b --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:slate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:slate_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:slate_block" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block_from_slates.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block_from_slates.json new file mode 100644 index 0000000000..b2f96c2797 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block_from_slates.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:slate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:slate_block_from_slates" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:slate_block_from_slates" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stonecutting/amethyst_tiles.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stonecutting/amethyst_tiles.json new file mode 100644 index 0000000000..3c2f410ce6 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stonecutting/amethyst_tiles.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:stonecutting/amethyst_tiles" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:stonecutting/amethyst_tiles" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stripped_edified_wood.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stripped_edified_wood.json new file mode 100644 index 0000000000..4d048fc250 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stripped_edified_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:stripped_edified_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:stripped_edified_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:stripped_edified_wood" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ageing_scroll_paper_lantern.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ageing_scroll_paper_lantern.json new file mode 100644 index 0000000000..6ae4bdbbb6 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ageing_scroll_paper_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:scroll_paper_lantern" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:ageing_scroll_paper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:ageing_scroll_paper_lantern" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/amethyst_sconce.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/amethyst_sconce.json new file mode 100644 index 0000000000..91debb7ca5 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/amethyst_sconce.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_sconce" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_sconce" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ancient_scroll_paper_lantern.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..f36c1abfc2 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ancient_scroll_paper_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:ancient_scroll_paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:ancient_scroll_paper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:ancient_scroll_paper_lantern" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll.json new file mode 100644 index 0000000000..1bff0c5ff6 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_medium.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_medium.json new file mode 100644 index 0000000000..2dc4651527 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_medium.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_medium" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_medium" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_paper_lantern.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_paper_lantern.json new file mode 100644 index 0000000000..63884d313e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_paper_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:scroll_paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_paper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_paper_lantern" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_small.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_small.json new file mode 100644 index 0000000000..2e68c56849 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_small.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_small" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_small" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/slate.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/slate.json new file mode 100644 index 0000000000..551899a3a3 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/decorations/slate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:slate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:slate" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/food/sub_sandwich.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/food/sub_sandwich.json new file mode 100644 index 0000000000..bb64c267e5 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/food/sub_sandwich.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:sub_sandwich" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:sub_sandwich" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/charged.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/charged.json new file mode 100644 index 0000000000..b032476ae7 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/charged.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:quenched_allay_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:decompose_quenched_shard/charged" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:decompose_quenched_shard/charged" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/dust.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/dust.json new file mode 100644 index 0000000000..299d8a4550 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/dust.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:quenched_allay_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:decompose_quenched_shard/dust" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:decompose_quenched_shard/dust" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/shard.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/shard.json new file mode 100644 index 0000000000..d9f9dfbb25 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/shard.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:quenched_allay_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:decompose_quenched_shard/shard" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:decompose_quenched_shard/shard" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/default_colorizer.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/default_colorizer.json new file mode 100644 index 0000000000..e04ea0f7b0 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/default_colorizer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:default_colorizer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:default_colorizer" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_black.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_black.json new file mode 100644 index 0000000000..486da412cd --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_black.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_black" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_black" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_blue.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_blue.json new file mode 100644 index 0000000000..c23b00add5 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_blue.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_blue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_blue" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_brown.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_brown.json new file mode 100644 index 0000000000..daf49d8674 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_brown.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_brown" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_brown" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_cyan.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_cyan.json new file mode 100644 index 0000000000..bc159a4f91 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_cyan.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_cyan" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_cyan" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_gray.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_gray.json new file mode 100644 index 0000000000..959c3b871a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_gray.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_gray" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_gray" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_green.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_green.json new file mode 100644 index 0000000000..ae496bdb93 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_green.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_green" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_green" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_blue.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_blue.json new file mode 100644 index 0000000000..9e660ad5de --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_blue.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_light_blue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_light_blue" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_gray.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_gray.json new file mode 100644 index 0000000000..b2b51d665b --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_gray.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_light_gray" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_light_gray" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_lime.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_lime.json new file mode 100644 index 0000000000..b21321754b --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_lime.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_lime" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_lime" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_magenta.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_magenta.json new file mode 100644 index 0000000000..38097fe636 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_magenta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_magenta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_magenta" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_orange.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_orange.json new file mode 100644 index 0000000000..a5e2054cd0 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_orange.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_orange" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_orange" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_pink.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_pink.json new file mode 100644 index 0000000000..868366c0a4 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_pink.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_pink" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_pink" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_purple.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_purple.json new file mode 100644 index 0000000000..b9d4282404 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_purple.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_purple" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_purple" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_red.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_red.json new file mode 100644 index 0000000000..515062d384 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_red.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_red" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_red" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_white.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_white.json new file mode 100644 index 0000000000..3fbaf1ba20 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_white.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_white" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_white" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_yellow.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_yellow.json new file mode 100644 index 0000000000..e707bc9937 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_yellow.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_yellow" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_yellow" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_agender.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_agender.json new file mode 100644 index 0000000000..e07c954cd3 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_agender.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_agender" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_agender" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aroace.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aroace.json new file mode 100644 index 0000000000..8413c66774 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aroace.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_aroace" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_aroace" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aromantic.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aromantic.json new file mode 100644 index 0000000000..37604e5939 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aromantic.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_aromantic" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_aromantic" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_asexual.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_asexual.json new file mode 100644 index 0000000000..74df9afba7 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_asexual.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_asexual" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_asexual" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_bisexual.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_bisexual.json new file mode 100644 index 0000000000..a3e18ad420 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_bisexual.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_bisexual" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_bisexual" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demiboy.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demiboy.json new file mode 100644 index 0000000000..e131fc73f1 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demiboy.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_demiboy" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_demiboy" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demigirl.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demigirl.json new file mode 100644 index 0000000000..a164b59ce6 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demigirl.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_demigirl" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_demigirl" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_gay.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_gay.json new file mode 100644 index 0000000000..59c4f8fdeb --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_gay.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_gay" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_gay" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderfluid.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderfluid.json new file mode 100644 index 0000000000..5c3233fa98 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderfluid.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_genderfluid" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_genderfluid" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderqueer.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderqueer.json new file mode 100644 index 0000000000..fd6f1355ef --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderqueer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_genderqueer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_genderqueer" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_intersex.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_intersex.json new file mode 100644 index 0000000000..091329fe3f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_intersex.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_intersex" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_intersex" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_lesbian.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_lesbian.json new file mode 100644 index 0000000000..3d4dec1d10 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_lesbian.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_lesbian" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_lesbian" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_nonbinary.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_nonbinary.json new file mode 100644 index 0000000000..83c4964af9 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_nonbinary.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_nonbinary" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_nonbinary" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_plural.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_plural.json new file mode 100644 index 0000000000..89512b05e1 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_plural.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_plural" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_plural" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_transgender.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_transgender.json new file mode 100644 index 0000000000..70dced6396 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_transgender.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_transgender" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_transgender" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/uuid_colorizer.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/uuid_colorizer.json new file mode 100644 index 0000000000..fbcdbfebf4 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/misc/uuid_colorizer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:uuid_colorizer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:uuid_colorizer" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_bookshelf.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_bookshelf.json new file mode 100644 index 0000000000..44a4110650 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_bookshelf.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:akashic_bookshelf" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:akashic_bookshelf" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_ligature.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_ligature.json new file mode 100644 index 0000000000..b2a6f52851 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_ligature.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:akashic_ligature" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:akashic_ligature" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/directrix/empty.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/directrix/empty.json new file mode 100644 index 0000000000..e00a4fdf00 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/directrix/empty.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:directrix/empty" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:directrix/empty" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_button.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_button.json new file mode 100644 index 0000000000..b6cd73817c --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_button" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_door.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_door.json new file mode 100644 index 0000000000..72dce77364 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_door" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_pressure_plate.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_pressure_plate.json new file mode 100644 index 0000000000..f207372eeb --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_trapdoor.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_trapdoor.json new file mode 100644 index 0000000000..be0fadb15b --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_trapdoor" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/impetus/empty.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/impetus/empty.json new file mode 100644 index 0000000000..0b4aa3256c --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/redstone/impetus/empty.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus/empty" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus/empty" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/abacus.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/abacus.json new file mode 100644 index 0000000000..b1cb841b3e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/abacus.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:abacus" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:abacus" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/artifact.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/artifact.json new file mode 100644 index 0000000000..221cf418c3 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/artifact.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:artifact" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:artifact" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/cypher.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/cypher.json new file mode 100644 index 0000000000..5489ea0467 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/cypher.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:cypher" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:cypher" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus.json new file mode 100644 index 0000000000..4e19de9e5e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:focus" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:focus" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus_rotated.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus_rotated.json new file mode 100644 index 0000000000..f67d8502aa --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus_rotated.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:focus_rotated" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:focus_rotated" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/jeweler_hammer.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/jeweler_hammer.json new file mode 100644 index 0000000000..6a24d2b333 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/jeweler_hammer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:jeweler_hammer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:jeweler_hammer" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/lens.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/lens.json new file mode 100644 index 0000000000..3411cb2187 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/lens.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:lens" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:lens" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/spellbook.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/spellbook.json new file mode 100644 index 0000000000..ef5a492652 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/spellbook.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chorus": { + "conditions": { + "items": [ + { + "items": "minecraft:chorus_fruit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_focus": { + "conditions": { + "items": [ + { + "items": "hexcasting:focus" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:spellbook" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_focus", + "has_chorus" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:spellbook" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/acacia.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/acacia.json new file mode 100644 index 0000000000..c1e018b4ec --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/acacia.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/acacia" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/acacia" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/bamboo.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/bamboo.json new file mode 100644 index 0000000000..19094ad2fe --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/bamboo.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/bamboo" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/bamboo" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/birch.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/birch.json new file mode 100644 index 0000000000..ca6c180cfa --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/birch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/birch" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/birch" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/cherry.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/cherry.json new file mode 100644 index 0000000000..38107a9b52 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/cherry.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/cherry" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/cherry" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/crimson.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/crimson.json new file mode 100644 index 0000000000..da68b592c5 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/crimson.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/crimson" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/crimson" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/dark_oak.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/dark_oak.json new file mode 100644 index 0000000000..da9937e87d --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/dark_oak.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/dark_oak" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/dark_oak" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/edified.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/edified.json new file mode 100644 index 0000000000..99d19ed3bf --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/edified.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/edified" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/edified" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/jungle.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/jungle.json new file mode 100644 index 0000000000..80fe7c43f6 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/jungle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/jungle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/jungle" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mangrove.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mangrove.json new file mode 100644 index 0000000000..0064814593 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mangrove.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/mangrove" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/mangrove" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mindsplice.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mindsplice.json new file mode 100644 index 0000000000..adb60836c1 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mindsplice.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/mindsplice" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/mindsplice" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/oak.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/oak.json new file mode 100644 index 0000000000..d11084b78d --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/oak.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/oak" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/oak" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/quenched.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/quenched.json new file mode 100644 index 0000000000..1ce63b78e3 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/quenched.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/quenched" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/quenched" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/spruce.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/spruce.json new file mode 100644 index 0000000000..cbad54cf88 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/spruce.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/spruce" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/spruce" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/warped.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/warped.json new file mode 100644 index 0000000000..ffff5199c6 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/warped.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/warped" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/warped" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/thought_knot.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/thought_knot.json new file mode 100644 index 0000000000..f50c1673fa --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/thought_knot.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:thought_knot" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:thought_knot" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/trinket.json b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/trinket.json new file mode 100644 index 0000000000..17c0d69b1f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/recipes/tools/trinket.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:trinket" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:trinket" + ] + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/root.json b/Common/src/generated/resources/data/hexcasting/advancement/root.json new file mode 100644 index 0000000000..1b2763aed8 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/root.json @@ -0,0 +1,34 @@ +{ + "criteria": { + "has_charged_amethyst": { + "conditions": { + "items": [ + { + "items": "#hexcasting:grants_root_advancement" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "background": "minecraft:textures/block/calcite.png", + "description": { + "translate": "advancement.hexcasting:root.desc" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:budding_amethyst" + }, + "title": { + "translate": "advancement.hexcasting:root" + } + }, + "requirements": [ + [ + "has_charged_amethyst" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancement/y_u_no_cast_angy.json b/Common/src/generated/resources/data/hexcasting/advancement/y_u_no_cast_angy.json new file mode 100644 index 0000000000..00a5641e4d --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/advancement/y_u_no_cast_angy.json @@ -0,0 +1,26 @@ +{ + "parent": "hexcasting:root", + "criteria": { + "did_the_thing": { + "trigger": "hexcasting:fail_to_cast_great_spell" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:y_u_no_cast_angy.desc" + }, + "icon": { + "count": 1, + "id": "minecraft:blaze_powder" + }, + "title": { + "translate": "advancement.hexcasting:y_u_no_cast_angy" + } + }, + "requirements": [ + [ + "did_the_thing" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/aaa_wasteful_cast.json b/Common/src/generated/resources/data/hexcasting/advancements/aaa_wasteful_cast.json deleted file mode 100644 index f99059e6a6..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/aaa_wasteful_cast.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "parent": "hexcasting:root", - "criteria": { - "waste_amt": { - "conditions": { - "media_wasted": { - "min": 89000 - } - }, - "trigger": "hexcasting:spend_media" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "translate": "advancement.hexcasting:wasteful_cast.desc" - }, - "frame": "task", - "hidden": false, - "icon": { - "item": "minecraft:glistering_melon_slice" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:wasteful_cast" - } - }, - "requirements": [ - [ - "waste_amt" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/aab_big_cast.json b/Common/src/generated/resources/data/hexcasting/advancements/aab_big_cast.json deleted file mode 100644 index 50da8818bf..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/aab_big_cast.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "parent": "hexcasting:root", - "criteria": { - "cast_amt": { - "conditions": { - "media_spent": { - "min": 6400000 - } - }, - "trigger": "hexcasting:spend_media" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "translate": "advancement.hexcasting:big_cast.desc" - }, - "frame": "task", - "hidden": false, - "icon": { - "item": "hexcasting:charged_amethyst" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:big_cast" - } - }, - "requirements": [ - [ - "cast_amt" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/creative_unlocker.json b/Common/src/generated/resources/data/hexcasting/advancements/creative_unlocker.json deleted file mode 100644 index 83470d5f2e..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/creative_unlocker.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "parent": "hexcasting:root", - "criteria": { - "has_creative_unlocker": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:creative_unlocker" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "display": { - "announce_to_chat": false, - "background": "minecraft:textures/block/calcite.png", - "description": { - "translate": "advancement.hexcasting:creative_unlocker.desc" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "hexcasting:creative_unlocker" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:creative_unlocker" - } - }, - "requirements": [ - [ - "has_creative_unlocker" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/enlightenment.json b/Common/src/generated/resources/data/hexcasting/advancements/enlightenment.json deleted file mode 100644 index 5bac738e08..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/enlightenment.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "parent": "hexcasting:opened_eyes", - "criteria": { - "health_used": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "translate": "advancement.hexcasting:enlightenment.desc" - }, - "frame": "challenge", - "hidden": true, - "icon": { - "item": "minecraft:music_disc_11" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:enlightenment" - } - }, - "requirements": [ - [ - "health_used" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/lore.json b/Common/src/generated/resources/data/hexcasting/advancements/lore.json deleted file mode 100644 index b4f178e9c2..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/lore.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "criteria": { - "used_item": { - "conditions": { - "item": { - "items": [ - "hexcasting:lore_fragment" - ] - } - }, - "trigger": "minecraft:consume_item" - } - }, - "display": { - "announce_to_chat": true, - "background": "hexcasting:textures/block/slate.png", - "description": { - "translate": "advancement.hexcasting:lore.desc" - }, - "frame": "goal", - "hidden": false, - "icon": { - "item": "hexcasting:akashic_connector" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:lore" - } - }, - "requirements": [ - [ - "used_item" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom1.json b/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom1.json deleted file mode 100644 index 7156d9cf20..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom1.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "hexcasting:lore", - "criteria": { - "grant": { - "trigger": "minecraft:impossible" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "text": "" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "hexcasting:lore_fragment" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:lore/cardamom1" - } - }, - "requirements": [ - [ - "grant" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom2.json b/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom2.json deleted file mode 100644 index 8bd660cee4..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom2.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "hexcasting:lore", - "criteria": { - "grant": { - "trigger": "minecraft:impossible" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "text": "" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "hexcasting:lore_fragment" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:lore/cardamom2" - } - }, - "requirements": [ - [ - "grant" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom3.json b/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom3.json deleted file mode 100644 index b51d711a75..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom3.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "hexcasting:lore", - "criteria": { - "grant": { - "trigger": "minecraft:impossible" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "text": "" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "hexcasting:lore_fragment" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:lore/cardamom3" - } - }, - "requirements": [ - [ - "grant" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom4.json b/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom4.json deleted file mode 100644 index 0e6c717ba3..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom4.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "hexcasting:lore", - "criteria": { - "grant": { - "trigger": "minecraft:impossible" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "text": "" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "hexcasting:lore_fragment" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:lore/cardamom4" - } - }, - "requirements": [ - [ - "grant" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom5.json b/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom5.json deleted file mode 100644 index 58e227f7bb..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/lore/cardamom5.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "hexcasting:lore", - "criteria": { - "grant": { - "trigger": "minecraft:impossible" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "text": "" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "hexcasting:lore_fragment" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:lore/cardamom5" - } - }, - "requirements": [ - [ - "grant" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment1.json b/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment1.json deleted file mode 100644 index c871661965..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment1.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "hexcasting:lore", - "criteria": { - "grant": { - "trigger": "minecraft:impossible" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "text": "" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "hexcasting:lore_fragment" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:lore/experiment1" - } - }, - "requirements": [ - [ - "grant" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment2.json b/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment2.json deleted file mode 100644 index e527c0242b..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment2.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "hexcasting:lore", - "criteria": { - "grant": { - "trigger": "minecraft:impossible" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "text": "" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "hexcasting:lore_fragment" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:lore/experiment2" - } - }, - "requirements": [ - [ - "grant" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/lore/inventory.json b/Common/src/generated/resources/data/hexcasting/advancements/lore/inventory.json deleted file mode 100644 index c8e4ba361d..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/lore/inventory.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "hexcasting:lore", - "criteria": { - "grant": { - "trigger": "minecraft:impossible" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "text": "" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "hexcasting:lore_fragment" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:lore/inventory" - } - }, - "requirements": [ - [ - "grant" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/opened_eyes.json b/Common/src/generated/resources/data/hexcasting/advancements/opened_eyes.json deleted file mode 100644 index ba036e451f..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/opened_eyes.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "parent": "hexcasting:y_u_no_cast_angy", - "criteria": { - "health_used": { - "conditions": { - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "min": 0.0 - } - }, - "trigger": "hexcasting:overcast" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "translate": "advancement.hexcasting:opened_eyes.desc" - }, - "frame": "task", - "hidden": false, - "icon": { - "item": "minecraft:ender_eye" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:opened_eyes" - } - }, - "requirements": [ - [ - "health_used" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/root.json b/Common/src/generated/resources/data/hexcasting/advancements/root.json deleted file mode 100644 index 645f76cd61..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/root.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "criteria": { - "has_charged_amethyst": { - "conditions": { - "items": [ - { - "tag": "hexcasting:grants_root_advancement" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "display": { - "announce_to_chat": true, - "background": "minecraft:textures/block/calcite.png", - "description": { - "translate": "advancement.hexcasting:root.desc" - }, - "frame": "task", - "hidden": true, - "icon": { - "item": "minecraft:budding_amethyst" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:root" - } - }, - "requirements": [ - [ - "has_charged_amethyst" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/advancements/y_u_no_cast_angy.json b/Common/src/generated/resources/data/hexcasting/advancements/y_u_no_cast_angy.json deleted file mode 100644 index a8843f3733..0000000000 --- a/Common/src/generated/resources/data/hexcasting/advancements/y_u_no_cast_angy.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "hexcasting:root", - "criteria": { - "did_the_thing": { - "trigger": "hexcasting:fail_to_cast_great_spell" - } - }, - "display": { - "announce_to_chat": true, - "description": { - "translate": "advancement.hexcasting:y_u_no_cast_angy.desc" - }, - "frame": "task", - "hidden": false, - "icon": { - "item": "minecraft:blaze_powder" - }, - "show_toast": true, - "title": { - "translate": "advancement.hexcasting:y_u_no_cast_angy" - } - }, - "requirements": [ - [ - "did_the_thing" - ] - ], - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/amethyst_cluster.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/amethyst_cluster.json new file mode 100644 index 0000000000..70af09ea61 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/amethyst_cluster.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:amethyst_cluster", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:blocks/amethyst_cluster" + } + ], + "shardDelta": -0.5 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/abandoned_mineshaft.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/abandoned_mineshaft.json new file mode 100644 index 0000000000..2cde006e3e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/abandoned_mineshaft.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/abandoned_mineshaft" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/ancient_city.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/ancient_city.json new file mode 100644 index 0000000000..79ede35c14 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/ancient_city.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/ancient_city" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/desert_pyramid.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/desert_pyramid.json new file mode 100644 index 0000000000..f51d2dabf0 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/desert_pyramid.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/desert_pyramid" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/jungle_temple.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/jungle_temple.json new file mode 100644 index 0000000000..78250990ed --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/jungle_temple.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/jungle_temple" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/nether_bridge.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/nether_bridge.json new file mode 100644 index 0000000000..b9e7041dbc --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/nether_bridge.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/nether_bridge" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/simple_dungeon.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/simple_dungeon.json new file mode 100644 index 0000000000..5cb215e05e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/simple_dungeon.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/simple_dungeon" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/stronghold_corridor.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/stronghold_corridor.json new file mode 100644 index 0000000000..6dfe6d03d3 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/stronghold_corridor.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/stronghold_corridor" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/abandoned_mineshaft.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/abandoned_mineshaft.json new file mode 100644 index 0000000000..c636a2f73a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/abandoned_mineshaft.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/abandoned_mineshaft" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/pillager_outpost.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/pillager_outpost.json new file mode 100644 index 0000000000..215f625f7d --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/pillager_outpost.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/pillager_outpost" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/simple_dungeon.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/simple_dungeon.json new file mode 100644 index 0000000000..ad1b0666d8 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/simple_dungeon.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/simple_dungeon" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/stronghold_library.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/stronghold_library.json new file mode 100644 index 0000000000..f55d8f4cc0 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/stronghold_library.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/stronghold_library" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_desert_house.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_desert_house.json new file mode 100644 index 0000000000..3aaf4b8498 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_desert_house.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/village/village_desert_house" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_plains_house.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_plains_house.json new file mode 100644 index 0000000000..93d27d6661 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_plains_house.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/village/village_plains_house" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_savanna_house.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_savanna_house.json new file mode 100644 index 0000000000..bb224944b7 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_savanna_house.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/village/village_savanna_house" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_snowy_house.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_snowy_house.json new file mode 100644 index 0000000000..ec4f567a6e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_snowy_house.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/village/village_snowy_house" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_taiga_house.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_taiga_house.json new file mode 100644 index 0000000000..d2132c79bf --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_taiga_house.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/village/village_taiga_house" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/woodland_mansion.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/woodland_mansion.json new file mode 100644 index 0000000000..be9d6b6d12 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/woodland_mansion.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_lore", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/woodland_mansion" + } + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/abandoned_mineshaft.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/abandoned_mineshaft.json new file mode 100644 index 0000000000..27d1e1ba46 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/abandoned_mineshaft.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/abandoned_mineshaft" + } + ], + "countRange": 1 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/ancient_city.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/ancient_city.json new file mode 100644 index 0000000000..d4d94d6652 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/ancient_city.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/ancient_city" + } + ], + "countRange": 4 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_other.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_other.json new file mode 100644 index 0000000000..17372d9896 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_other.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/bastion_other" + } + ], + "countRange": 1 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_treasure.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_treasure.json new file mode 100644 index 0000000000..ff8851c233 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_treasure.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/bastion_treasure" + } + ], + "countRange": 3 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/desert_pyramid.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/desert_pyramid.json new file mode 100644 index 0000000000..b91f49fb8a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/desert_pyramid.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/desert_pyramid" + } + ], + "countRange": 2 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/end_city_treasure.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/end_city_treasure.json new file mode 100644 index 0000000000..f5371dd519 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/end_city_treasure.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/end_city_treasure" + } + ], + "countRange": 3 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/jungle_temple.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/jungle_temple.json new file mode 100644 index 0000000000..c1bf948ade --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/jungle_temple.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/jungle_temple" + } + ], + "countRange": 2 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/nether_bridge.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/nether_bridge.json new file mode 100644 index 0000000000..68725eddce --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/nether_bridge.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/nether_bridge" + } + ], + "countRange": 1 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/pillager_outpost.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/pillager_outpost.json new file mode 100644 index 0000000000..b06f4d95a6 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/pillager_outpost.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/pillager_outpost" + } + ], + "countRange": 4 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/shipwreck_map.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/shipwreck_map.json new file mode 100644 index 0000000000..3c7b528cda --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/shipwreck_map.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/shipwreck_map" + } + ], + "countRange": 3 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/simple_dungeon.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/simple_dungeon.json new file mode 100644 index 0000000000..141eebbe09 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/simple_dungeon.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/simple_dungeon" + } + ], + "countRange": 1 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/stronghold_library.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/stronghold_library.json new file mode 100644 index 0000000000..f08c93cb45 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/stronghold_library.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/stronghold_library" + } + ], + "countRange": 5 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/village/village_cartographer.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/village/village_cartographer.json new file mode 100644 index 0000000000..a59db105dd --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/village/village_cartographer.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/village/village_cartographer" + } + ], + "countRange": 2 +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/woodland_mansion.json b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/woodland_mansion.json new file mode 100644 index 0000000000..cc97ecc7c2 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/woodland_mansion.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_scrolls", + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/woodland_mansion" + } + ], + "countRange": 5 +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_bookshelf.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_bookshelf.json diff --git a/Common/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_ligature.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_ligature.json new file mode 100644 index 0000000000..02be275bc1 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_ligature.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:akashic_ligature" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/akashic_ligature" +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_record.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_record.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_record.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_record.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks_small.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks_small.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_dust_block.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_dust_block.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_dust_block.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_dust_block.json diff --git a/Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_edified_leaves.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_edified_leaves.json new file mode 100644 index 0000000000..911c281497 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_edified_leaves.json @@ -0,0 +1,41 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "ability": "shears_dig", + "condition": "neoforge:can_item_perform_ability" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_edified_leaves" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/amethyst_edified_leaves" +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_pillar.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_pillar.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_pillar.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_pillar.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_sconce.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_sconce.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_sconce.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_sconce.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_tiles.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_tiles.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_tiles.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_tiles.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper_lantern.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper_lantern.json diff --git a/Common/src/generated/resources/data/hexcasting/loot_table/blocks/aventurine_edified_leaves.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/aventurine_edified_leaves.json new file mode 100644 index 0000000000..d2bfc7c956 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/aventurine_edified_leaves.json @@ -0,0 +1,41 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "ability": "shears_dig", + "condition": "neoforge:can_item_perform_ability" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:aventurine_edified_leaves" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/aventurine_edified_leaves" +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/loot_table/blocks/citrine_edified_leaves.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/citrine_edified_leaves.json new file mode 100644 index 0000000000..88f319d753 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/citrine_edified_leaves.json @@ -0,0 +1,41 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "ability": "shears_dig", + "condition": "neoforge:can_item_perform_ability" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:citrine_edified_leaves" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/citrine_edified_leaves" +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/boolean.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/boolean.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/boolean.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/boolean.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/empty.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/empty.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/empty.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/empty.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/redstone.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/redstone.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/redstone.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/redstone.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_button.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_button.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_button.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_button.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_door.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_door.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_door.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_door.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence_gate.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence_gate.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence_gate.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence_gate.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_amethyst.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_amethyst.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_amethyst.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_amethyst.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_aventurine.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_aventurine.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_aventurine.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_aventurine.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_citrine.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_citrine.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_citrine.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_citrine.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_purple.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_purple.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_purple.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_purple.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_panel.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_panel.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_panel.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_panel.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_planks.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_planks.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_planks.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_planks.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_pressure_plate.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_pressure_plate.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_pressure_plate.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_pressure_plate.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_slab.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_slab.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_slab.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_slab.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_stairs.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_stairs.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_stairs.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_stairs.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_tile.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_tile.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_tile.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_tile.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_trapdoor.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_trapdoor.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_trapdoor.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_trapdoor.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_wood.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_wood.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_wood.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/edified_wood.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/empty.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/empty.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/empty.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/empty.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/look.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/look.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/look.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/look.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/redstone.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/redstone.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/redstone.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/redstone.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/rightclick.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/rightclick.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/rightclick.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/rightclick.json diff --git a/Common/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay.json new file mode 100644 index 0000000000..09fe8b6fd3 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay.json @@ -0,0 +1,69 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "hexcasting:quenched_allay" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "chances": [ + 0.25, + 0.5, + 0.75, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "hexcasting:quenched_allay_shard" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/quenched_allay" +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks_small.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks_small.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_tiles.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_tiles.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper_lantern.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper_lantern.json diff --git a/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate.json new file mode 100644 index 0000000000..eeb8f5c955 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate.json @@ -0,0 +1,24 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "hexcasting:pattern" + ], + "source": "block_entity" + } + ], + "name": "hexcasting:slate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate" +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks_small.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks_small.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_pillar.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_pillar.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_tiles.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_tiles.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_block.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_block.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_block.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_block.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks_small.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks_small.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks_small.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks_small.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_pillar.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_pillar.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_pillar.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_pillar.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_tiles.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_tiles.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_tiles.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/slate_tiles.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_log.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_log.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_log.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_log.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_wood.json b/Common/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_wood.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_wood.json rename to Common/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_wood.json diff --git a/Common/src/generated/resources/data/hexcasting/loot_table/inject/amethyst_cluster.json b/Common/src/generated/resources/data/hexcasting/loot_table/inject/amethyst_cluster.json new file mode 100644 index 0000000000..e87bc89af2 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/loot_table/inject/amethyst_cluster.json @@ -0,0 +1,211 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_dust" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_dust" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + }, + { + "chances": [ + 0.25, + 0.35, + 0.5, + 0.75, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:charged_amethyst" + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + }, + { + "chance": 0.125, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:charged_amethyst" + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:inject/amethyst_cluster" +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/abacus.json b/Common/src/generated/resources/data/hexcasting/recipe/abacus.json new file mode 100644 index 0000000000..76d393b033 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/abacus.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "minecraft:amethyst_shard" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "WAW", + "SAS", + "WAW" + ], + "result": { + "count": 1, + "id": "hexcasting:abacus" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/ageing_scroll_paper_lantern.json b/Common/src/generated/resources/data/hexcasting/recipe/ageing_scroll_paper_lantern.json new file mode 100644 index 0000000000..54de4e69be --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/ageing_scroll_paper_lantern.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "c:dyes/brown" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + } + ], + "result": { + "count": 8, + "id": "hexcasting:ancient_scroll_paper_lantern" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/akashic_bookshelf.json b/Common/src/generated/resources/data/hexcasting/recipe/akashic_bookshelf.json new file mode 100644 index 0000000000..055ac48308 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/akashic_bookshelf.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "C": { + "item": "minecraft:book" + }, + "L": { + "tag": "hexcasting:edified_logs" + }, + "P": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "LPL", + "CCC", + "LPL" + ], + "result": { + "count": 1, + "id": "hexcasting:akashic_bookshelf" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/akashic_ligature.json b/Common/src/generated/resources/data/hexcasting/recipe/akashic_ligature.json new file mode 100644 index 0000000000..bbcc3f83e7 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/akashic_ligature.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "1": { + "item": "hexcasting:amethyst_dust" + }, + "2": { + "item": "minecraft:amethyst_shard" + }, + "3": { + "item": "hexcasting:charged_amethyst" + }, + "L": { + "tag": "hexcasting:edified_logs" + }, + "P": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "LPL", + "123", + "LPL" + ], + "result": { + "count": 4, + "id": "hexcasting:akashic_ligature" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/amethyst_dust_packing.json b/Common/src/generated/resources/data/hexcasting/recipe/amethyst_dust_packing.json new file mode 100644 index 0000000000..1da337229f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/amethyst_dust_packing.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "X": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + "XX", + "XX" + ], + "result": { + "count": 1, + "id": "hexcasting:amethyst_dust_block" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/amethyst_dust_unpacking.json b/Common/src/generated/resources/data/hexcasting/recipe/amethyst_dust_unpacking.json new file mode 100644 index 0000000000..db42cb3711 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/amethyst_dust_unpacking.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "hexcasting:amethyst_dust_block" + } + ], + "result": { + "count": 4, + "id": "hexcasting:amethyst_dust" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/amethyst_sconce.json b/Common/src/generated/resources/data/hexcasting/recipe/amethyst_sconce.json new file mode 100644 index 0000000000..1ece2856f0 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/amethyst_sconce.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "tag": "c:ingots/copper" + }, + "T": { + "item": "hexcasting:charged_amethyst" + } + }, + "pattern": [ + "T", + "B" + ], + "result": { + "count": 4, + "id": "hexcasting:amethyst_sconce" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/amethyst_tiles.json b/Common/src/generated/resources/data/hexcasting/recipe/amethyst_tiles.json new file mode 100644 index 0000000000..300139c437 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/amethyst_tiles.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:amethyst_block" + }, + "D": { + "item": "minecraft:amethyst_block" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:amethyst_tiles" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper.json b/Common/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper.json new file mode 100644 index 0000000000..33db9b82c9 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "tag": "c:dyes/brown" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + } + ], + "result": { + "count": 8, + "id": "hexcasting:ancient_scroll_paper" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper_lantern.json b/Common/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..d99d9ba91b --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "minecraft:torch" + }, + "T": { + "item": "hexcasting:ancient_scroll_paper" + } + }, + "pattern": [ + "T", + "B" + ], + "result": { + "count": 1, + "id": "hexcasting:ancient_scroll_paper_lantern" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/artifact.json b/Common/src/generated/resources/data/hexcasting/recipe/artifact.json new file mode 100644 index 0000000000..a03e30a2a8 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/artifact.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "D": { + "tag": "minecraft:creeper_drop_music_discs" + }, + "F": { + "tag": "c:ingots/gold" + } + }, + "pattern": [ + " F ", + "FAF", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:artifact" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/akashic_record.json b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/akashic_record.json new file mode 100644 index 0000000000..750ad2dcfe --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/akashic_record.json @@ -0,0 +1,16 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:akashic_ligature" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 5, + "profession": "minecraft:librarian" + }, + "result": { + "Name": "hexcasting:akashic_record" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/budding_amethyst.json b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/budding_amethyst.json new file mode 100644 index 0000000000..0532b2e5ed --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/budding_amethyst.json @@ -0,0 +1,15 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "minecraft:amethyst_block" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 3 + }, + "result": { + "Name": "minecraft:budding_amethyst" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_boolean.json b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_boolean.json new file mode 100644 index 0000000000..5e97ada05f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_boolean.json @@ -0,0 +1,21 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:directrix/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 1, + "profession": "minecraft:shepherd" + }, + "result": { + "Name": "hexcasting:directrix/boolean", + "Properties": { + "energized": "false", + "facing": "north", + "state": "neither" + } + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_redstone.json b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_redstone.json new file mode 100644 index 0000000000..afb314d043 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_redstone.json @@ -0,0 +1,21 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:directrix/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 1, + "profession": "minecraft:mason" + }, + "result": { + "Name": "hexcasting:directrix/redstone", + "Properties": { + "energized": "false", + "facing": "north", + "powered": "false" + } + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_look.json b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_look.json new file mode 100644 index 0000000000..7d77364f78 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_look.json @@ -0,0 +1,20 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:impetus/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 2, + "profession": "minecraft:fletcher" + }, + "result": { + "Name": "hexcasting:impetus/look", + "Properties": { + "energized": "false", + "facing": "north" + } + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_rightclick.json b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_rightclick.json new file mode 100644 index 0000000000..02fbae2538 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_rightclick.json @@ -0,0 +1,20 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:impetus/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 2, + "profession": "minecraft:toolsmith" + }, + "result": { + "Name": "hexcasting:impetus/rightclick", + "Properties": { + "energized": "false", + "facing": "north" + } + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_storedplayer.json b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_storedplayer.json new file mode 100644 index 0000000000..f79dca1d11 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_storedplayer.json @@ -0,0 +1,21 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:impetus/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 2, + "profession": "minecraft:cleric" + }, + "result": { + "Name": "hexcasting:impetus/redstone", + "Properties": { + "energized": "false", + "facing": "north", + "powered": "true" + } + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/quench_allay.json b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/quench_allay.json new file mode 100644 index 0000000000..076b4e0745 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/brainsweep/quench_allay.json @@ -0,0 +1,15 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "minecraft:amethyst_block" + }, + "cost": 100000, + "entityIn": { + "type": "hexcasting:entity_type", + "entityType": "minecraft:allay" + }, + "result": { + "Name": "hexcasting:quenched_allay" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/cypher.json b/Common/src/generated/resources/data/hexcasting/recipe/cypher.json new file mode 100644 index 0000000000..80e1837536 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/cypher.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": { + "tag": "c:ingots/copper" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " C ", + "CIC", + " C " + ], + "result": { + "count": 1, + "id": "hexcasting:cypher" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/charged.json b/Common/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/charged.json new file mode 100644 index 0000000000..4d9e9902e8 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/charged.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "hexcasting:quenched_allay_shard" + }, + { + "item": "hexcasting:charged_amethyst" + } + ], + "result": { + "count": 4, + "id": "hexcasting:charged_amethyst" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/dust.json b/Common/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/dust.json new file mode 100644 index 0000000000..5023760773 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/dust.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "hexcasting:quenched_allay_shard" + }, + { + "item": "hexcasting:amethyst_dust" + } + ], + "result": { + "count": 31, + "id": "hexcasting:amethyst_dust" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/shard.json b/Common/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/shard.json new file mode 100644 index 0000000000..e441d9bf5f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/shard.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "hexcasting:quenched_allay_shard" + }, + { + "item": "minecraft:amethyst_shard" + } + ], + "result": { + "count": 7, + "id": "minecraft:amethyst_shard" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/default_colorizer.json b/Common/src/generated/resources/data/hexcasting/recipe/default_colorizer.json new file mode 100644 index 0000000000..b61e7ef20a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/default_colorizer.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "hexcasting:amethyst_dust" + }, + "D": { + "item": "hexcasting:amethyst_dust" + }, + "I": { + "item": "minecraft:copper_ingot" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 1, + "id": "hexcasting:default_colorizer" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/directrix/empty.json b/Common/src/generated/resources/data/hexcasting/recipe/directrix/empty.json new file mode 100644 index 0000000000..986fa97d99 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/directrix/empty.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "C": { + "item": "minecraft:comparator" + }, + "O": { + "item": "minecraft:observer" + }, + "S": { + "item": "hexcasting:slate_block" + } + }, + "pattern": [ + "CSS", + "OAO", + "SSC" + ], + "result": { + "count": 1, + "id": "hexcasting:directrix/empty" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_black.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_black.json new file mode 100644 index 0000000000..43dcd86862 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_black.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:black_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_black" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_blue.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_blue.json new file mode 100644 index 0000000000..b9cd3b99c3 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_blue.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:blue_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_blue" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_brown.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_brown.json new file mode 100644 index 0000000000..f02b87049c --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_brown.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:brown_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_brown" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_cyan.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_cyan.json new file mode 100644 index 0000000000..93380132c6 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_cyan.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:cyan_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_cyan" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_gray.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_gray.json new file mode 100644 index 0000000000..c803427d5a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_gray.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:gray_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_gray" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_green.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_green.json new file mode 100644 index 0000000000..e592b36cca --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_green.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:green_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_green" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_blue.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_blue.json new file mode 100644 index 0000000000..d8eb9b5986 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_blue.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:light_blue_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_light_blue" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_gray.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_gray.json new file mode 100644 index 0000000000..e6efc2af9a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_gray.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:light_gray_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_light_gray" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_lime.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_lime.json new file mode 100644 index 0000000000..645db81176 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_lime.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:lime_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_lime" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_magenta.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_magenta.json new file mode 100644 index 0000000000..9476c0a098 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_magenta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:magenta_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_magenta" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_orange.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_orange.json new file mode 100644 index 0000000000..f6f815b95f --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_orange.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:orange_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_orange" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_pink.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_pink.json new file mode 100644 index 0000000000..065db19c23 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_pink.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:pink_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_pink" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_purple.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_purple.json new file mode 100644 index 0000000000..85dab6119e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_purple.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:purple_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_purple" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_red.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_red.json new file mode 100644 index 0000000000..8acba0fc1a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_red.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:red_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_red" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_white.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_white.json new file mode 100644 index 0000000000..d76ee9ba69 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_white.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:white_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_white" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_yellow.json b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_yellow.json new file mode 100644 index 0000000000..35ffbdd8df --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/dye_colorizer_yellow.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:yellow_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_yellow" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dynamicseal_focus.json b/Common/src/generated/resources/data/hexcasting/recipe/dynamicseal_focus.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/recipes/dynamicseal_focus.json rename to Common/src/generated/resources/data/hexcasting/recipe/dynamicseal_focus.json diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json b/Common/src/generated/resources/data/hexcasting/recipe/dynamicseal_spellbook.json similarity index 100% rename from Fabric/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json rename to Common/src/generated/resources/data/hexcasting/recipe/dynamicseal_spellbook.json diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_button.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_button.json new file mode 100644 index 0000000000..10ad25b4aa --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_button.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "ingredients": [ + { + "tag": "hexcasting:edified_planks" + } + ], + "result": { + "count": 1, + "id": "hexcasting:edified_button" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_door.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_door.json new file mode 100644 index 0000000000..6ff2941615 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_door.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WW", + "WW", + "WW" + ], + "result": { + "count": 3, + "id": "hexcasting:edified_door" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_fence.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_fence.json new file mode 100644 index 0000000000..f1a7c7ec45 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WSW", + "WSW" + ], + "result": { + "count": 3, + "id": "hexcasting:edified_fence" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_fence_gate.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_fence_gate.json new file mode 100644 index 0000000000..a38d45ca38 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_fence_gate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "SWS", + "SWS" + ], + "result": { + "count": 1, + "id": "hexcasting:edified_fence_gate" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_panel.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_panel.json new file mode 100644 index 0000000000..0baf420f31 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_panel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "tag": "hexcasting:edified_planks" + }, + "D": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "DCD", + "C C", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:edified_panel" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_planks.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_planks.json new file mode 100644 index 0000000000..7ea641db71 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_planks.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "tag": "hexcasting:edified_logs" + } + ], + "result": { + "count": 4, + "id": "hexcasting:edified_planks" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_pressure_plate.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_pressure_plate.json new file mode 100644 index 0000000000..fb80df82d1 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_pressure_plate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WW" + ], + "result": { + "count": 1, + "id": "hexcasting:edified_pressure_plate" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_slab.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_slab.json new file mode 100644 index 0000000000..efda8df52a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WWW" + ], + "result": { + "count": 6, + "id": "hexcasting:edified_slab" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_stairs.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_stairs.json new file mode 100644 index 0000000000..ca2e03f9c3 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "result": { + "count": 4, + "id": "hexcasting:edified_stairs" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_tile.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_tile.json new file mode 100644 index 0000000000..bfca8c3437 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_tile.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WW ", + "W W", + " WW" + ], + "result": { + "count": 6, + "id": "hexcasting:edified_tile" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_trapdoor.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_trapdoor.json new file mode 100644 index 0000000000..89928fcc73 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_trapdoor.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WWW", + "WWW" + ], + "result": { + "count": 2, + "id": "hexcasting:edified_trapdoor" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/edified_wood.json b/Common/src/generated/resources/data/hexcasting/recipe/edified_wood.json new file mode 100644 index 0000000000..4e95e0bdc6 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/edified_wood.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "item": "hexcasting:edified_log" + } + }, + "pattern": [ + "WW", + "WW" + ], + "result": { + "count": 3, + "id": "hexcasting:edified_wood" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/focus.json b/Common/src/generated/resources/data/hexcasting/recipe/focus.json new file mode 100644 index 0000000000..ff88244378 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/focus.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "G": { + "tag": "c:dusts/glowstone" + }, + "L": { + "tag": "c:leathers" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "GLG", + "PAP", + "GLG" + ], + "result": { + "count": 1, + "id": "hexcasting:focus" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/focus_rotated.json b/Common/src/generated/resources/data/hexcasting/recipe/focus_rotated.json new file mode 100644 index 0000000000..62aba7f62e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/focus_rotated.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "G": { + "tag": "c:dusts/glowstone" + }, + "L": { + "tag": "c:leathers" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "GPG", + "LAL", + "GPG" + ], + "result": { + "count": 1, + "id": "hexcasting:focus" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/impetus/empty.json b/Common/src/generated/resources/data/hexcasting/recipe/impetus/empty.json new file mode 100644 index 0000000000..b5d3b9fd5c --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/impetus/empty.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "B": { + "item": "minecraft:iron_bars" + }, + "P": { + "item": "minecraft:purpur_block" + }, + "S": { + "item": "hexcasting:slate_block" + } + }, + "pattern": [ + "PSS", + "BAB", + "SSP" + ], + "result": { + "count": 1, + "id": "hexcasting:impetus/empty" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/jeweler_hammer.json b/Common/src/generated/resources/data/hexcasting/recipe/jeweler_hammer.json new file mode 100644 index 0000000000..fef55bcb4b --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/jeweler_hammer.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "minecraft:amethyst_shard" + }, + "I": { + "tag": "c:ingots/iron" + }, + "N": { + "tag": "c:nuggets/iron" + }, + "S": [ + { + "item": "minecraft:stick" + }, + { + "tag": "forge:rods/wooden" + } + ] + }, + "pattern": [ + "IAN", + " S ", + " S " + ], + "result": { + "count": 1, + "id": "hexcasting:jeweler_hammer" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/lens.json b/Common/src/generated/resources/data/hexcasting/recipe/lens.json new file mode 100644 index 0000000000..d7e33ac36b --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/lens.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": { + "item": "minecraft:glass" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " C ", + "CIC", + " C " + ], + "result": { + "count": 1, + "id": "hexcasting:lens" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_agender.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_agender.json new file mode 100644 index 0000000000..d5401c0952 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_agender.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:glass" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_agender" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aroace.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aroace.json new file mode 100644 index 0000000000..25c32f412c --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aroace.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:wheat_seeds" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_aroace" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aromantic.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aromantic.json new file mode 100644 index 0000000000..ab923e9b61 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aromantic.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:arrow" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_aromantic" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_asexual.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_asexual.json new file mode 100644 index 0000000000..c41a3223de --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_asexual.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:bread" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_asexual" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_bisexual.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_bisexual.json new file mode 100644 index 0000000000..157dff5b64 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_bisexual.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:wheat" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_bisexual" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demiboy.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demiboy.json new file mode 100644 index 0000000000..c79d6fd805 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demiboy.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:raw_iron" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_demiboy" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demigirl.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demigirl.json new file mode 100644 index 0000000000..4a87fb83dd --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demigirl.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:raw_copper" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_demigirl" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_gay.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_gay.json new file mode 100644 index 0000000000..3922bf5fa1 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_gay.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:stone_brick_wall" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_gay" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderfluid.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderfluid.json new file mode 100644 index 0000000000..788be0d074 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderfluid.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:water_bucket" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_genderfluid" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderqueer.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderqueer.json new file mode 100644 index 0000000000..db56478852 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderqueer.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:glass_bottle" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_genderqueer" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_intersex.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_intersex.json new file mode 100644 index 0000000000..0cf8605f6e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_intersex.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:azalea" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_intersex" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_lesbian.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_lesbian.json new file mode 100644 index 0000000000..60faeb98cb --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_lesbian.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:honeycomb" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_lesbian" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_nonbinary.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_nonbinary.json new file mode 100644 index 0000000000..1592908ece --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_nonbinary.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:moss_block" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_nonbinary" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_plural.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_plural.json new file mode 100644 index 0000000000..662aaf38fc --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_plural.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:repeater" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_plural" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_transgender.json b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_transgender.json new file mode 100644 index 0000000000..cce2b91ea8 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/pride_colorizer_transgender.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:egg" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_transgender" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/scroll.json b/Common/src/generated/resources/data/hexcasting/recipe/scroll.json new file mode 100644 index 0000000000..cf7a4fcfb1 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/scroll.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "PPA", + "PPP", + "PPP" + ], + "result": { + "count": 1, + "id": "hexcasting:scroll" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/scroll_medium.json b/Common/src/generated/resources/data/hexcasting/recipe/scroll_medium.json new file mode 100644 index 0000000000..85b2a98f34 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/scroll_medium.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + " A", + "PP ", + "PP " + ], + "result": { + "count": 1, + "id": "hexcasting:scroll_medium" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/scroll_paper.json b/Common/src/generated/resources/data/hexcasting/recipe/scroll_paper.json new file mode 100644 index 0000000000..1feb96a530 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/scroll_paper.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:paper" + }, + "D": { + "item": "minecraft:paper" + }, + "I": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:scroll_paper" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/scroll_paper_lantern.json b/Common/src/generated/resources/data/hexcasting/recipe/scroll_paper_lantern.json new file mode 100644 index 0000000000..5434f4c7f1 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/scroll_paper_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "minecraft:torch" + }, + "T": { + "item": "hexcasting:scroll_paper" + } + }, + "pattern": [ + "T", + "B" + ], + "result": { + "count": 1, + "id": "hexcasting:scroll_paper_lantern" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/scroll_small.json b/Common/src/generated/resources/data/hexcasting/recipe/scroll_small.json new file mode 100644 index 0000000000..c64a3e544a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/scroll_small.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + " A", + "P " + ], + "result": { + "count": 1, + "id": "hexcasting:scroll_small" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/slate.json b/Common/src/generated/resources/data/hexcasting/recipe/slate.json new file mode 100644 index 0000000000..eb718972c2 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/slate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "S": { + "item": "minecraft:deepslate" + } + }, + "pattern": [ + " A ", + "SSS" + ], + "result": { + "count": 6, + "id": "hexcasting:slate" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/slate_block.json b/Common/src/generated/resources/data/hexcasting/recipe/slate_block.json new file mode 100644 index 0000000000..975fea26a0 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/slate_block.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:deepslate" + }, + "D": { + "item": "minecraft:deepslate" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:slate_block" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/slate_block_from_slates.json b/Common/src/generated/resources/data/hexcasting/recipe/slate_block_from_slates.json new file mode 100644 index 0000000000..92bf412fdf --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/slate_block_from_slates.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "hexcasting:slate" + } + }, + "pattern": [ + "S", + "S" + ], + "result": { + "count": 1, + "id": "hexcasting:slate_block" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/spellbook.json b/Common/src/generated/resources/data/hexcasting/recipe/spellbook.json new file mode 100644 index 0000000000..d9e9250926 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/spellbook.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "B": { + "item": "minecraft:writable_book" + }, + "F": { + "item": "minecraft:chorus_fruit" + }, + "N": { + "tag": "c:nuggets/gold" + } + }, + "pattern": [ + "NBA", + "NFA", + "NBA" + ], + "result": { + "count": 1, + "id": "hexcasting:spellbook" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/acacia.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/acacia.json new file mode 100644 index 0000000000..a5e01a9c9a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/acacia.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/acacia" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/bamboo.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/bamboo.json new file mode 100644 index 0000000000..8c648a860c --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/bamboo.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/bamboo" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/birch.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/birch.json new file mode 100644 index 0000000000..2cee68c976 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/birch.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/birch" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/cherry.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/cherry.json new file mode 100644 index 0000000000..fb19b26271 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/cherry.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/cherry" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/crimson.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/crimson.json new file mode 100644 index 0000000000..6f8b4dd09e --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/crimson.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/crimson" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/dark_oak.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/dark_oak.json new file mode 100644 index 0000000000..b4a9aea823 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/dark_oak.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/dark_oak" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/edified.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/edified.json new file mode 100644 index 0000000000..29378f8085 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/edified.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "hexcasting:edified_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/edified" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/jungle.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/jungle.json new file mode 100644 index 0000000000..a3b382cf11 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/jungle.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/jungle" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/mangrove.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/mangrove.json new file mode 100644 index 0000000000..2ad01c0d69 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/mangrove.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/mangrove" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/mindsplice.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/mindsplice.json new file mode 100644 index 0000000000..41c9e8abb0 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/mindsplice.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "hexcasting:brainswept_circle_components" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/mindsplice" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/oak.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/oak.json new file mode 100644 index 0000000000..75d6d9daab --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/oak.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/oak" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/quenched.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/quenched.json new file mode 100644 index 0000000000..91fd1fc452 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/quenched.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "hexcasting:quenched_allay_shard" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/quenched" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/spruce.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/spruce.json new file mode 100644 index 0000000000..0ab7166a60 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/spruce.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/spruce" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/staff/warped.json b/Common/src/generated/resources/data/hexcasting/recipe/staff/warped.json new file mode 100644 index 0000000000..8a71b96aaf --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/staff/warped.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/warped" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/stonecutting/amethyst_tiles.json b/Common/src/generated/resources/data/hexcasting/recipe/stonecutting/amethyst_tiles.json new file mode 100644 index 0000000000..7eb40a9ada --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/stonecutting/amethyst_tiles.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:amethyst_block" + }, + "result": { + "count": 1, + "id": "hexcasting:amethyst_tiles" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/stripped_edified_wood.json b/Common/src/generated/resources/data/hexcasting/recipe/stripped_edified_wood.json new file mode 100644 index 0000000000..0ccb5ae8e2 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/stripped_edified_wood.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "item": "hexcasting:stripped_edified_log" + } + }, + "pattern": [ + "WW", + "WW" + ], + "result": { + "count": 3, + "id": "hexcasting:stripped_edified_wood" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/sub_sandwich.json b/Common/src/generated/resources/data/hexcasting/recipe/sub_sandwich.json new file mode 100644 index 0000000000..82a511fde4 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/sub_sandwich.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "minecraft:amethyst_shard" + }, + "B": { + "item": "minecraft:bread" + }, + "C": { + "item": "minecraft:cooked_beef" + }, + "S": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " SA", + " C ", + " B " + ], + "result": { + "count": 1, + "id": "hexcasting:sub_sandwich" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/thought_knot.json b/Common/src/generated/resources/data/hexcasting/recipe/thought_knot.json new file mode 100644 index 0000000000..d89ad83310 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/thought_knot.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "equipment", + "ingredients": [ + { + "item": "hexcasting:amethyst_dust" + }, + { + "item": "minecraft:string" + } + ], + "result": { + "count": 1, + "id": "hexcasting:thought_knot" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/trinket.json b/Common/src/generated/resources/data/hexcasting/recipe/trinket.json new file mode 100644 index 0000000000..f0c905012a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/trinket.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": { + "tag": "c:ingots/iron" + }, + "I": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + " C ", + "CIC", + " C " + ], + "result": { + "count": 1, + "id": "hexcasting:trinket" + } +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/recipe/uuid_colorizer.json b/Common/src/generated/resources/data/hexcasting/recipe/uuid_colorizer.json new file mode 100644 index 0000000000..235a2aff68 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/recipe/uuid_colorizer.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "hexcasting:amethyst_dust" + }, + "D": { + "item": "hexcasting:amethyst_dust" + }, + "I": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 1, + "id": "hexcasting:uuid_colorizer" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/brainswept_circle_components.json b/Common/src/generated/resources/data/hexcasting/tags/block/brainswept_circle_components.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/blocks/brainswept_circle_components.json rename to Common/src/generated/resources/data/hexcasting/tags/block/brainswept_circle_components.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json b/Common/src/generated/resources/data/hexcasting/tags/block/cheap_to_break_block.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json rename to Common/src/generated/resources/data/hexcasting/tags/block/cheap_to_break_block.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/directrices.json b/Common/src/generated/resources/data/hexcasting/tags/block/directrices.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/blocks/directrices.json rename to Common/src/generated/resources/data/hexcasting/tags/block/directrices.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/edified_logs.json b/Common/src/generated/resources/data/hexcasting/tags/block/edified_logs.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/blocks/edified_logs.json rename to Common/src/generated/resources/data/hexcasting/tags/block/edified_logs.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/edified_planks.json b/Common/src/generated/resources/data/hexcasting/tags/block/edified_planks.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/blocks/edified_planks.json rename to Common/src/generated/resources/data/hexcasting/tags/block/edified_planks.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/impeti.json b/Common/src/generated/resources/data/hexcasting/tags/block/impeti.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/blocks/impeti.json rename to Common/src/generated/resources/data/hexcasting/tags/block/impeti.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/water_plants.json b/Common/src/generated/resources/data/hexcasting/tags/block/water_plants.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/blocks/water_plants.json rename to Common/src/generated/resources/data/hexcasting/tags/block/water_plants.json diff --git a/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/can_start_enlighten.json b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/can_start_enlighten.json new file mode 100644 index 0000000000..3113294d13 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/can_start_enlighten.json @@ -0,0 +1,18 @@ +{ + "values": [ + "hexcasting:lightning", + "hexcasting:flight", + "hexcasting:create_lava", + "hexcasting:teleport/great", + "hexcasting:sentinel/create/great", + "hexcasting:dispel_rain", + "hexcasting:summon_rain", + "hexcasting:brainsweep", + "hexcasting:craft/battery", + "hexcasting:potion/regeneration", + "hexcasting:potion/night_vision", + "hexcasting:potion/absorption", + "hexcasting:potion/haste", + "hexcasting:potion/strength" + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json new file mode 100644 index 0000000000..3113294d13 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json @@ -0,0 +1,18 @@ +{ + "values": [ + "hexcasting:lightning", + "hexcasting:flight", + "hexcasting:create_lava", + "hexcasting:teleport/great", + "hexcasting:sentinel/create/great", + "hexcasting:dispel_rain", + "hexcasting:summon_rain", + "hexcasting:brainsweep", + "hexcasting:craft/battery", + "hexcasting:potion/regeneration", + "hexcasting:potion/night_vision", + "hexcasting:potion/absorption", + "hexcasting:potion/haste", + "hexcasting:potion/strength" + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json new file mode 100644 index 0000000000..3113294d13 --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json @@ -0,0 +1,18 @@ +{ + "values": [ + "hexcasting:lightning", + "hexcasting:flight", + "hexcasting:create_lava", + "hexcasting:teleport/great", + "hexcasting:sentinel/create/great", + "hexcasting:dispel_rain", + "hexcasting:summon_rain", + "hexcasting:brainsweep", + "hexcasting:craft/battery", + "hexcasting:potion/regeneration", + "hexcasting:potion/night_vision", + "hexcasting:potion/absorption", + "hexcasting:potion/haste", + "hexcasting:potion/strength" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/brainswept_circle_components.json b/Common/src/generated/resources/data/hexcasting/tags/item/brainswept_circle_components.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/items/brainswept_circle_components.json rename to Common/src/generated/resources/data/hexcasting/tags/item/brainswept_circle_components.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/directrices.json b/Common/src/generated/resources/data/hexcasting/tags/item/directrices.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/items/directrices.json rename to Common/src/generated/resources/data/hexcasting/tags/item/directrices.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/edified_logs.json b/Common/src/generated/resources/data/hexcasting/tags/item/edified_logs.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/items/edified_logs.json rename to Common/src/generated/resources/data/hexcasting/tags/item/edified_logs.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/edified_planks.json b/Common/src/generated/resources/data/hexcasting/tags/item/edified_planks.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/items/edified_planks.json rename to Common/src/generated/resources/data/hexcasting/tags/item/edified_planks.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/grants_root_advancement.json b/Common/src/generated/resources/data/hexcasting/tags/item/grants_root_advancement.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/items/grants_root_advancement.json rename to Common/src/generated/resources/data/hexcasting/tags/item/grants_root_advancement.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/impeti.json b/Common/src/generated/resources/data/hexcasting/tags/item/impeti.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/items/impeti.json rename to Common/src/generated/resources/data/hexcasting/tags/item/impeti.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/phial_base.json b/Common/src/generated/resources/data/hexcasting/tags/item/phial_base.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/items/phial_base.json rename to Common/src/generated/resources/data/hexcasting/tags/item/phial_base.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/seal_materials.json b/Common/src/generated/resources/data/hexcasting/tags/item/seal_materials.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/items/seal_materials.json rename to Common/src/generated/resources/data/hexcasting/tags/item/seal_materials.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/staves.json b/Common/src/generated/resources/data/hexcasting/tags/item/staves.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/tags/items/staves.json rename to Common/src/generated/resources/data/hexcasting/tags/item/staves.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/buttons.json b/Common/src/generated/resources/data/minecraft/tags/block/buttons.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/buttons.json rename to Common/src/generated/resources/data/minecraft/tags/block/buttons.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json b/Common/src/generated/resources/data/minecraft/tags/block/crystal_sound_blocks.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json rename to Common/src/generated/resources/data/minecraft/tags/block/crystal_sound_blocks.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/doors.json b/Common/src/generated/resources/data/minecraft/tags/block/doors.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/doors.json rename to Common/src/generated/resources/data/minecraft/tags/block/doors.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/fence_gates.json b/Common/src/generated/resources/data/minecraft/tags/block/fence_gates.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/fence_gates.json rename to Common/src/generated/resources/data/minecraft/tags/block/fence_gates.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/fences.json b/Common/src/generated/resources/data/minecraft/tags/block/fences.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/fences.json rename to Common/src/generated/resources/data/minecraft/tags/block/fences.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/leaves.json b/Common/src/generated/resources/data/minecraft/tags/block/leaves.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/leaves.json rename to Common/src/generated/resources/data/minecraft/tags/block/leaves.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/logs.json b/Common/src/generated/resources/data/minecraft/tags/block/logs.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/logs.json rename to Common/src/generated/resources/data/minecraft/tags/block/logs.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/logs_that_burn.json b/Common/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/logs_that_burn.json rename to Common/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json diff --git a/Common/src/generated/resources/data/minecraft/tags/block/mineable/axe.json b/Common/src/generated/resources/data/minecraft/tags/block/mineable/axe.json new file mode 100644 index 0000000000..0d6037e186 --- /dev/null +++ b/Common/src/generated/resources/data/minecraft/tags/block/mineable/axe.json @@ -0,0 +1,25 @@ +{ + "values": [ + "hexcasting:akashic_record", + "hexcasting:akashic_bookshelf", + "hexcasting:akashic_ligature", + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood", + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile", + "hexcasting:edified_door", + "hexcasting:edified_trapdoor", + "hexcasting:edified_slab", + "hexcasting:edified_button", + "hexcasting:edified_stairs", + "hexcasting:edified_fence", + "hexcasting:edified_fence_gate" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json b/Common/src/generated/resources/data/minecraft/tags/block/mineable/hoe.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json rename to Common/src/generated/resources/data/minecraft/tags/block/mineable/hoe.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/Common/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json rename to Common/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/shovel.json b/Common/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/shovel.json rename to Common/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/planks.json b/Common/src/generated/resources/data/minecraft/tags/block/planks.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/planks.json rename to Common/src/generated/resources/data/minecraft/tags/block/planks.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/pressure_plates.json b/Common/src/generated/resources/data/minecraft/tags/block/pressure_plates.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/pressure_plates.json rename to Common/src/generated/resources/data/minecraft/tags/block/pressure_plates.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/slabs.json b/Common/src/generated/resources/data/minecraft/tags/block/slabs.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/slabs.json rename to Common/src/generated/resources/data/minecraft/tags/block/slabs.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/stairs.json b/Common/src/generated/resources/data/minecraft/tags/block/stairs.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/stairs.json rename to Common/src/generated/resources/data/minecraft/tags/block/stairs.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/trapdoors.json b/Common/src/generated/resources/data/minecraft/tags/block/trapdoors.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/trapdoors.json rename to Common/src/generated/resources/data/minecraft/tags/block/trapdoors.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/unstable_bottom_center.json b/Common/src/generated/resources/data/minecraft/tags/block/unstable_bottom_center.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/unstable_bottom_center.json rename to Common/src/generated/resources/data/minecraft/tags/block/unstable_bottom_center.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_buttons.json b/Common/src/generated/resources/data/minecraft/tags/block/wooden_buttons.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_buttons.json rename to Common/src/generated/resources/data/minecraft/tags/block/wooden_buttons.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_doors.json b/Common/src/generated/resources/data/minecraft/tags/block/wooden_doors.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_doors.json rename to Common/src/generated/resources/data/minecraft/tags/block/wooden_doors.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_fences.json b/Common/src/generated/resources/data/minecraft/tags/block/wooden_fences.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_fences.json rename to Common/src/generated/resources/data/minecraft/tags/block/wooden_fences.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json b/Common/src/generated/resources/data/minecraft/tags/block/wooden_pressure_plates.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json rename to Common/src/generated/resources/data/minecraft/tags/block/wooden_pressure_plates.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json b/Common/src/generated/resources/data/minecraft/tags/block/wooden_slabs.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json rename to Common/src/generated/resources/data/minecraft/tags/block/wooden_slabs.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json b/Common/src/generated/resources/data/minecraft/tags/block/wooden_stairs.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json rename to Common/src/generated/resources/data/minecraft/tags/block/wooden_stairs.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_trapdoors.json b/Common/src/generated/resources/data/minecraft/tags/block/wooden_trapdoors.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_trapdoors.json rename to Common/src/generated/resources/data/minecraft/tags/block/wooden_trapdoors.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/buttons.json b/Common/src/generated/resources/data/minecraft/tags/item/buttons.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/buttons.json rename to Common/src/generated/resources/data/minecraft/tags/item/buttons.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/doors.json b/Common/src/generated/resources/data/minecraft/tags/item/doors.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/doors.json rename to Common/src/generated/resources/data/minecraft/tags/item/doors.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/leaves.json b/Common/src/generated/resources/data/minecraft/tags/item/leaves.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/leaves.json rename to Common/src/generated/resources/data/minecraft/tags/item/leaves.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/logs.json b/Common/src/generated/resources/data/minecraft/tags/item/logs.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/logs.json rename to Common/src/generated/resources/data/minecraft/tags/item/logs.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/logs_that_burn.json b/Common/src/generated/resources/data/minecraft/tags/item/logs_that_burn.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/logs_that_burn.json rename to Common/src/generated/resources/data/minecraft/tags/item/logs_that_burn.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/planks.json b/Common/src/generated/resources/data/minecraft/tags/item/planks.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/planks.json rename to Common/src/generated/resources/data/minecraft/tags/item/planks.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/slabs.json b/Common/src/generated/resources/data/minecraft/tags/item/slabs.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/slabs.json rename to Common/src/generated/resources/data/minecraft/tags/item/slabs.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/trapdoors.json b/Common/src/generated/resources/data/minecraft/tags/item/trapdoors.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/trapdoors.json rename to Common/src/generated/resources/data/minecraft/tags/item/trapdoors.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_buttons.json b/Common/src/generated/resources/data/minecraft/tags/item/wooden_buttons.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_buttons.json rename to Common/src/generated/resources/data/minecraft/tags/item/wooden_buttons.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_doors.json b/Common/src/generated/resources/data/minecraft/tags/item/wooden_doors.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_doors.json rename to Common/src/generated/resources/data/minecraft/tags/item/wooden_doors.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_pressure_plates.json b/Common/src/generated/resources/data/minecraft/tags/item/wooden_pressure_plates.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_pressure_plates.json rename to Common/src/generated/resources/data/minecraft/tags/item/wooden_pressure_plates.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json b/Common/src/generated/resources/data/minecraft/tags/item/wooden_slabs.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json rename to Common/src/generated/resources/data/minecraft/tags/item/wooden_slabs.json diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_trapdoors.json b/Common/src/generated/resources/data/minecraft/tags/item/wooden_trapdoors.json similarity index 100% rename from Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_trapdoors.json rename to Common/src/generated/resources/data/minecraft/tags/item/wooden_trapdoors.json diff --git a/Common/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json b/Common/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json new file mode 100644 index 0000000000..6699a7a66e --- /dev/null +++ b/Common/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json @@ -0,0 +1,37 @@ +{ + "entries": [ + "hexcasting:scroll/minecraft/chests/simple_dungeon", + "hexcasting:scroll/minecraft/chests/abandoned_mineshaft", + "hexcasting:scroll/minecraft/chests/bastion_other", + "hexcasting:scroll/minecraft/chests/nether_bridge", + "hexcasting:scroll/minecraft/chests/jungle_temple", + "hexcasting:scroll/minecraft/chests/desert_pyramid", + "hexcasting:scroll/minecraft/chests/village/village_cartographer", + "hexcasting:scroll/minecraft/chests/shipwreck_map", + "hexcasting:scroll/minecraft/chests/bastion_treasure", + "hexcasting:scroll/minecraft/chests/end_city_treasure", + "hexcasting:scroll/minecraft/chests/ancient_city", + "hexcasting:scroll/minecraft/chests/pillager_outpost", + "hexcasting:scroll/minecraft/chests/woodland_mansion", + "hexcasting:scroll/minecraft/chests/stronghold_library", + "hexcasting:lore/minecraft/chests/simple_dungeon", + "hexcasting:lore/minecraft/chests/abandoned_mineshaft", + "hexcasting:lore/minecraft/chests/pillager_outpost", + "hexcasting:lore/minecraft/chests/woodland_mansion", + "hexcasting:lore/minecraft/chests/stronghold_library", + "hexcasting:lore/minecraft/chests/village/village_desert_house", + "hexcasting:lore/minecraft/chests/village/village_plains_house", + "hexcasting:lore/minecraft/chests/village/village_savanna_house", + "hexcasting:lore/minecraft/chests/village/village_snowy_house", + "hexcasting:lore/minecraft/chests/village/village_taiga_house", + "hexcasting:cypher/minecraft/chests/simple_dungeon", + "hexcasting:cypher/minecraft/chests/abandoned_mineshaft", + "hexcasting:cypher/minecraft/chests/stronghold_corridor", + "hexcasting:cypher/minecraft/chests/jungle_temple", + "hexcasting:cypher/minecraft/chests/desert_pyramid", + "hexcasting:cypher/minecraft/chests/ancient_city", + "hexcasting:cypher/minecraft/chests/nether_bridge", + "hexcasting:amethyst_cluster" + ], + "replace": false +} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/api/HexAPI.java b/Common/src/main/java/at/petrak/hexcasting/api/HexAPI.java index 8ddde5669b..37a1f59371 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/HexAPI.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/HexAPI.java @@ -29,6 +29,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Collections; import java.util.function.Consumer; import java.util.function.Supplier; @@ -165,49 +166,15 @@ default FrozenPigment getColorizer(Player player) { return FrozenPigment.DEFAULT.get(); } - ArmorMaterial DUMMY_ARMOR_MATERIAL = new ArmorMaterial() { - @Override - public int getDurabilityForType(ArmorItem.Type type) { - return 0; - } - - @Override - public int getDefenseForType(ArmorItem.Type type) { - return 0; - } - - @Override - public int getEnchantmentValue() { - return 0; - } - - @NotNull - @Override - public SoundEvent getEquipSound() { - return SoundEvents.ARMOR_EQUIP_LEATHER; - } - - @NotNull - @Override - public Ingredient getRepairIngredient() { - return Ingredient.EMPTY; - } - - @Override - public String getName() { - return "missingno"; - } - - @Override - public float getToughness() { - return 0; - } - - @Override - public float getKnockbackResistance() { - return 0; - } - }; + ArmorMaterial DUMMY_ARMOR_MATERIAL = new ArmorMaterial( + Collections.emptyMap(), + 0, + SoundEvents.ARMOR_EQUIP_LEATHER, + () -> Ingredient.EMPTY, + Collections.emptyList(), + 0, + 0 + ); default ArmorMaterial robesMaterial() { return DUMMY_ARMOR_MATERIAL; @@ -217,10 +184,6 @@ default ArmorMaterial robesMaterial() { * Location in the userdata of the ravenmind */ String RAVENMIND_USERDATA = modLoc("ravenmind").toString(); - /** - * Location in the userdata of the number of ops executed - */ - String OP_COUNT_USERDATA = modLoc("op_count").toString(); String MARKED_MOVED_USERDATA = modLoc("impulsed").toString(); @@ -229,6 +192,6 @@ static HexAPI instance() { } static ResourceLocation modLoc(String s) { - return new ResourceLocation(MOD_ID, s); + return ResourceLocation.fromNamespaceAndPath(MOD_ID, s); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADIotaHolder.java b/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADIotaHolder.java index 7b8fcc1c95..0ab8836c9f 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADIotaHolder.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADIotaHolder.java @@ -7,18 +7,9 @@ import org.jetbrains.annotations.Nullable; public interface ADIotaHolder { - @Nullable - CompoundTag readIotaTag(); @Nullable - default Iota readIota(ServerLevel world) { - var tag = readIotaTag(); - if (tag != null) { - return IotaType.deserialize(tag, world); - } else { - return null; - } - } + Iota readIota(); @Nullable default Iota emptyIota() { diff --git a/Common/src/main/java/at/petrak/hexcasting/api/addldata/ItemDelegatingEntityIotaHolder.java b/Common/src/main/java/at/petrak/hexcasting/api/addldata/ItemDelegatingEntityIotaHolder.java index 5af67a99ab..8bad581fcb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/addldata/ItemDelegatingEntityIotaHolder.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/addldata/ItemDelegatingEntityIotaHolder.java @@ -23,12 +23,6 @@ public ItemDelegatingEntityIotaHolder(Supplier stackSupplier, Consume this.save = save; } - @Override - public @Nullable CompoundTag readIotaTag() { - var delegate = IXplatAbstractions.INSTANCE.findDataHolder(this.stackSupplier.get()); - return delegate == null ? null : delegate.readIotaTag(); - } - @Override public boolean writeable() { var delegate = IXplatAbstractions.INSTANCE.findDataHolder(this.stackSupplier.get()); @@ -47,9 +41,9 @@ public boolean writeIota(@Nullable Iota datum, boolean simulate) { } @Override - public @Nullable Iota readIota(ServerLevel world) { + public @Nullable Iota readIota() { var delegate = IXplatAbstractions.INSTANCE.findDataHolder(this.stackSupplier.get()); - return delegate == null ? null : delegate.readIota(world); + return delegate == null ? null : delegate.readIota(); } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/advancements/FailToCastGreatSpellTrigger.java b/Common/src/main/java/at/petrak/hexcasting/api/advancements/FailToCastGreatSpellTrigger.java index fe85fec5b3..f58dfab3a9 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/advancements/FailToCastGreatSpellTrigger.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/advancements/FailToCastGreatSpellTrigger.java @@ -1,39 +1,38 @@ package at.petrak.hexcasting.api.advancements; -import com.google.gson.JsonObject; -import net.minecraft.advancements.critereon.*; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.advancements.critereon.ContextAwarePredicate; +import net.minecraft.advancements.critereon.EntityPredicate; +import net.minecraft.advancements.critereon.SimpleCriterionTrigger; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; -public class FailToCastGreatSpellTrigger extends SimpleCriterionTrigger { - private static final ResourceLocation ID = new ResourceLocation("hexcasting", "fail_to_cast_great_spell"); +import java.util.Optional; - @Override - public ResourceLocation getId() { - return ID; - } +public class FailToCastGreatSpellTrigger extends SimpleCriterionTrigger { + private static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath("hexcasting", "fail_to_cast_great_spell"); @Override - protected Instance createInstance(JsonObject json, ContextAwarePredicate predicate, DeserializationContext context) { - return new Instance(predicate); + public Codec codec() { + return Instance.CODEC; } public void trigger(ServerPlayer player) { super.trigger(player, e -> true); } - public static class Instance extends AbstractCriterionTriggerInstance { - public Instance(ContextAwarePredicate predicate) { - super(ID, predicate); - } + public static record Instance(Optional player) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + p_337348_ -> p_337348_.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(FailToCastGreatSpellTrigger.Instance::player) + ) + .apply(p_337348_, FailToCastGreatSpellTrigger.Instance::new) + ); @Override - public ResourceLocation getCriterion() { - return ID; - } - - public JsonObject serializeToJson(SerializationContext pConditions) { - return new JsonObject(); + public Optional player() { + return player; } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/advancements/HexAdvancementTriggers.java b/Common/src/main/java/at/petrak/hexcasting/api/advancements/HexAdvancementTriggers.java index 16af02ab39..36d051ab96 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/advancements/HexAdvancementTriggers.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/advancements/HexAdvancementTriggers.java @@ -1,15 +1,35 @@ package at.petrak.hexcasting.api.advancements; -import at.petrak.hexcasting.mixin.accessor.CriteriaTriggersAccessor; +import net.minecraft.advancements.CriterionTrigger; +import net.minecraft.resources.ResourceLocation; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.function.BiConsumer; + +import static at.petrak.hexcasting.api.HexAPI.modLoc; public class HexAdvancementTriggers { - public static final OvercastTrigger OVERCAST_TRIGGER = new OvercastTrigger(); - public static final SpendMediaTrigger SPEND_MEDIA_TRIGGER = new SpendMediaTrigger(); - public static final FailToCastGreatSpellTrigger FAIL_GREAT_SPELL_TRIGGER = new FailToCastGreatSpellTrigger(); - - public static void registerTriggers() { - CriteriaTriggersAccessor.hex$register(OVERCAST_TRIGGER); - CriteriaTriggersAccessor.hex$register(SPEND_MEDIA_TRIGGER); - CriteriaTriggersAccessor.hex$register(FAIL_GREAT_SPELL_TRIGGER); + private static final Map> TRIGGERS = new LinkedHashMap<>(); + + public static final OvercastTrigger OVERCAST_TRIGGER = register("overcast", new OvercastTrigger()); + public static final SpendMediaTrigger SPEND_MEDIA_TRIGGER = register("spend_media", new SpendMediaTrigger()); + public static final FailToCastGreatSpellTrigger FAIL_GREAT_SPELL_TRIGGER = register("fail_to_cast_great_spell", new FailToCastGreatSpellTrigger()); + + public static void registerTriggers(BiConsumer, ResourceLocation> r) { + for (var e : TRIGGERS.entrySet()) { + r.accept(e.getValue(), e.getKey()); + } + } + + private static > T register( + String id, + T lift + ) { + var old = TRIGGERS.put(modLoc(id), lift); + if (old != null) { + throw new IllegalArgumentException("Typo? Duplicate id " + id); + } + return lift; } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/advancements/MinMaxLongs.java b/Common/src/main/java/at/petrak/hexcasting/api/advancements/MinMaxLongs.java index 0be502c86e..15ecc74267 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/advancements/MinMaxLongs.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/advancements/MinMaxLongs.java @@ -1,85 +1,81 @@ package at.petrak.hexcasting.api.advancements; -import com.google.gson.JsonElement; import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.BuiltInExceptionProvider; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.serialization.Codec; import net.minecraft.advancements.critereon.MinMaxBounds; -import net.minecraft.util.GsonHelper; -import javax.annotation.Nullable; -import java.util.Objects; +import java.util.Optional; import java.util.function.Function; -public class MinMaxLongs extends MinMaxBounds { - public static final MinMaxLongs ANY = new MinMaxLongs(null, null); - @Nullable - private final Long minSq; - @Nullable - private final Long maxSq; +public record MinMaxLongs( + Optional min, + Optional max, + Optional minSq, + Optional maxSq +) implements MinMaxBounds { + public static final Codec CODEC = + MinMaxBounds.createCodec(Codec.LONG, MinMaxLongs::new); - private static MinMaxLongs create(StringReader reader, @Nullable Long min, @Nullable Long max) throws CommandSyntaxException { - if (min != null && max != null && min > max) { + public static final MinMaxLongs ANY = + new MinMaxLongs(Optional.empty(), Optional.empty()); + + private MinMaxLongs(Optional min, Optional max) { + this(min, max, squareOpt(min), squareOpt(max)); + } + + private static MinMaxLongs create(StringReader reader, Optional min, Optional max) + throws CommandSyntaxException { + if (min.isPresent() && max.isPresent() && min.get() > max.get()) { throw ERROR_SWAPPED.createWithContext(reader); } else { return new MinMaxLongs(min, max); } } - @Nullable - private static Long squareOpt(@Nullable Long l) { - return l == null ? null : l * l; + private static Optional squareOpt(Optional value) { + return value.map(v -> v * v); } - private MinMaxLongs(@Nullable Long min, @Nullable Long max) { - super(min, max); - this.minSq = squareOpt(min); - this.maxSq = squareOpt(max); - } - - public static MinMaxLongs exactly(long l) { - return new MinMaxLongs(l, l); + public static MinMaxLongs exactly(long value) { + return new MinMaxLongs(Optional.of(value), Optional.of(value)); } public static MinMaxLongs between(long min, long max) { - return new MinMaxLongs(min, max); + return new MinMaxLongs(Optional.of(min), Optional.of(max)); } public static MinMaxLongs atLeast(long min) { - return new MinMaxLongs(min, null); + return new MinMaxLongs(Optional.of(min), Optional.empty()); } public static MinMaxLongs atMost(long max) { - return new MinMaxLongs(null, max); - } - - public boolean matches(long l) { - if (this.min != null && this.min > l) { - return false; - } else { - return this.max == null || this.max >= l; - } + return new MinMaxLongs(Optional.empty(), Optional.of(max)); } - public boolean matchesSqr(long l) { - if (this.minSq != null && this.minSq > l) { - return false; - } else { - return this.maxSq == null || this.maxSq >= l; - } + public boolean matches(long value) { + return (this.min.isEmpty() || this.min.get() <= value) + && (this.max.isEmpty() || this.max.get() >= value); } - public static MinMaxLongs fromJson(@Nullable JsonElement json) { - return fromJson(json, ANY, GsonHelper::convertToLong, MinMaxLongs::new); + public boolean matchesSqr(long value) { + return (this.minSq.isEmpty() || this.minSq.get() <= value) + && (this.maxSq.isEmpty() || this.maxSq.get() >= value); } public static MinMaxLongs fromReader(StringReader reader) throws CommandSyntaxException { - return fromReader(reader, (l) -> l); + return fromReader(reader, l -> l); } - public static MinMaxLongs fromReader(StringReader reader, Function map) throws CommandSyntaxException { - BuiltInExceptionProvider builtInExceptions = CommandSyntaxException.BUILT_IN_EXCEPTIONS; - Objects.requireNonNull(builtInExceptions); - return fromReader(reader, MinMaxLongs::create, Long::parseLong, builtInExceptions::readerInvalidInt, map); + public static MinMaxLongs fromReader(StringReader reader, Function formatter) + throws CommandSyntaxException { + return MinMaxBounds.fromReader( + reader, + MinMaxLongs::create, + Long::parseLong, + CommandSyntaxException.BUILT_IN_EXCEPTIONS::readerInvalidLong, + formatter + ); } } + diff --git a/Common/src/main/java/at/petrak/hexcasting/api/advancements/OvercastTrigger.java b/Common/src/main/java/at/petrak/hexcasting/api/advancements/OvercastTrigger.java index b1661e869e..d98f9ca773 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/advancements/OvercastTrigger.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/advancements/OvercastTrigger.java @@ -2,34 +2,23 @@ import at.petrak.hexcasting.api.mod.HexConfig; import com.google.gson.JsonObject; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.advancements.critereon.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; +import java.util.Optional; + // https://github.com/TelepathicGrunt/Bumblezone/blob/latest-released/src/main/java/com/telepathicgrunt/the_bumblezone/advancements/CleanupStickyHoneyResidueTrigger.java // https://github.com/VazkiiMods/Botania/blob/b8706e2e0bba20f67f1e103559a4ce39d63d48f9/src/main/java/vazkii/botania/common/advancements/CorporeaRequestTrigger.java public class OvercastTrigger extends SimpleCriterionTrigger { - private static final ResourceLocation ID = new ResourceLocation("hexcasting", "overcast"); - - private static final String TAG_MEDIA_GENERATED = "media_generated"; - private static final String TAG_HEALTH_USED = "health_used"; - // HEY KIDS DID YOYU KNOW THERE'S NOT A CRITERIA FOR HOW MUCH ***HEALTH*** AN ENTITY HAS - private static final String TAG_HEALTH_LEFT = - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion"; - - @Override - public ResourceLocation getId() { - return ID; - } + private static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath("hexcasting", "overcast"); @Override - protected Instance createInstance(JsonObject json, ContextAwarePredicate predicate, - DeserializationContext pContext) { - return new Instance(predicate, - MinMaxBounds.Ints.fromJson(json.get(TAG_MEDIA_GENERATED)), - MinMaxBounds.Doubles.fromJson(json.get(TAG_HEALTH_USED)), - MinMaxBounds.Doubles.fromJson(json.get(TAG_HEALTH_LEFT))); + public Codec codec() { + return Instance.CODEC; } public void trigger(ServerPlayer player, int mediaGenerated) { @@ -40,41 +29,25 @@ public void trigger(ServerPlayer player, int mediaGenerated) { }); } - public static class Instance extends AbstractCriterionTriggerInstance { - protected final MinMaxBounds.Ints mediaGenerated; - // This is the *proporttion* of the health bar. - protected final MinMaxBounds.Doubles healthUsed; - // DID YOU KNOW THERES ONE TO CHECK THE WORLD TIME, BUT NOT THE HEALTH!? - protected final MinMaxBounds.Doubles healthLeft; - - public Instance(ContextAwarePredicate predicate, MinMaxBounds.Ints mediaGenerated, - MinMaxBounds.Doubles healthUsed, MinMaxBounds.Doubles healthLeft) { - super(OvercastTrigger.ID, predicate); - this.mediaGenerated = mediaGenerated; - this.healthUsed = healthUsed; + public static record Instance( + Optional player, + MinMaxBounds.Ints mediaGenerated, + // This is the *proporttion* of the health bar. + MinMaxBounds.Doubles healthUsed, + // DID YOU KNOW THERES ONE TO CHECK THE WORLD TIME, BUT NOT THE HEALTH!? + MinMaxBounds.Doubles healthLeft // DID YOU KNOW THERE'S ONE TO CHECK THE FUCKING C A T T Y P E BUT NOT THE HEALTH - this.healthLeft = healthLeft; - } - - @Override - public ResourceLocation getCriterion() { - return ID; - } - - @Override - public JsonObject serializeToJson(SerializationContext ctx) { - JsonObject json = super.serializeToJson(ctx); - if (!this.mediaGenerated.isAny()) { - json.add(TAG_MEDIA_GENERATED, this.mediaGenerated.serializeToJson()); - } - if (!this.healthUsed.isAny()) { - json.add(TAG_HEALTH_USED, this.healthUsed.serializeToJson()); - } - if (!this.healthLeft.isAny()) { - json.add(TAG_HEALTH_LEFT, this.healthLeft.serializeToJson()); - } - return json; - } + ) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + inst -> inst.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(Instance::player), + MinMaxBounds.Ints.CODEC.fieldOf("media_generated").forGetter(Instance::mediaGenerated), + MinMaxBounds.Doubles.CODEC.fieldOf("health_used").forGetter(Instance::healthUsed), + // HEY KIDS DID YOYU KNOW THERE'S NOT A CRITERIA FOR HOW MUCH ***HEALTH*** AN ENTITY HAS + MinMaxBounds.Doubles.CODEC.fieldOf("mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion").forGetter(Instance::healthLeft) + ) + .apply(inst, Instance::new) + ); private boolean test(int mediaGeneratedIn, double healthUsedIn, float healthLeftIn) { return this.mediaGenerated.matches(mediaGeneratedIn) diff --git a/Common/src/main/java/at/petrak/hexcasting/api/advancements/SpendMediaTrigger.java b/Common/src/main/java/at/petrak/hexcasting/api/advancements/SpendMediaTrigger.java index d610807f59..978e64b48e 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/advancements/SpendMediaTrigger.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/advancements/SpendMediaTrigger.java @@ -1,63 +1,47 @@ package at.petrak.hexcasting.api.advancements; import com.google.gson.JsonObject; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.advancements.critereon.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; -public class SpendMediaTrigger extends SimpleCriterionTrigger { - private static final ResourceLocation ID = new ResourceLocation("hexcasting", "spend_media"); - - private static final String TAG_MEDIA_SPENT = "media_spent"; - private static final String TAG_MEDIA_WASTED = "media_wasted"; +import java.util.Optional; - @Override - public ResourceLocation getId() { - return ID; - } +public class SpendMediaTrigger extends SimpleCriterionTrigger { + private static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath("hexcasting", "spend_media"); @Override - protected Instance createInstance(JsonObject json, ContextAwarePredicate predicate, - DeserializationContext context) { - return new Instance(predicate, - MinMaxLongs.fromJson(json.get(TAG_MEDIA_SPENT)), - MinMaxLongs.fromJson(json.get(TAG_MEDIA_WASTED))); + public Codec codec() { + return Instance.CODEC; } public void trigger(ServerPlayer player, long mediaSpent, long mediaWasted) { super.trigger(player, inst -> inst.test(mediaSpent, mediaWasted)); } - public static class Instance extends AbstractCriterionTriggerInstance { - protected final MinMaxLongs mediaSpent; - protected final MinMaxLongs mediaWasted; - - public Instance(ContextAwarePredicate predicate, MinMaxLongs mediaSpent, - MinMaxLongs mediaWasted) { - super(SpendMediaTrigger.ID, predicate); - this.mediaSpent = mediaSpent; - this.mediaWasted = mediaWasted; - } + public static record Instance( + Optional player, + MinMaxLongs mediaSpent, + MinMaxLongs mediaWasted + ) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + inst -> inst.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(Instance::player), + MinMaxLongs.CODEC.fieldOf("media_generated").forGetter(Instance::mediaSpent), + MinMaxLongs.CODEC.fieldOf("health_used").forGetter(Instance::mediaWasted) + ) + .apply(inst, Instance::new) + ); - @Override - public ResourceLocation getCriterion() { - return ID; + private boolean test(long mediaSpentIn, long mediaWastedIn) { + return this.mediaSpent.matches(mediaSpentIn) && this.mediaWasted.matches(mediaWastedIn); } @Override - public JsonObject serializeToJson(SerializationContext ctx) { - JsonObject json = super.serializeToJson(ctx); - if (!this.mediaSpent.isAny()) { - json.add(TAG_MEDIA_SPENT, this.mediaSpent.serializeToJson()); - } - if (!this.mediaWasted.isAny()) { - json.add(TAG_MEDIA_WASTED, this.mediaWasted.serializeToJson()); - } - return json; - } - - private boolean test(long mediaSpentIn, long mediaWastedIn) { - return this.mediaSpent.matches(mediaSpentIn) && this.mediaWasted.matches(mediaWastedIn); + public Optional player() { + return Optional.empty(); } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/block/HexBlockEntity.java b/Common/src/main/java/at/petrak/hexcasting/api/block/HexBlockEntity.java index e531ddb12d..b7eb267b7c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/block/HexBlockEntity.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/block/HexBlockEntity.java @@ -1,6 +1,7 @@ package at.petrak.hexcasting.api.block; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; @@ -14,25 +15,26 @@ public HexBlockEntity(BlockEntityType pType, BlockPos pWorldPosition, BlockSt super(pType, pWorldPosition, pBlockState); } - protected abstract void saveModData(CompoundTag tag); + protected abstract void saveModData(CompoundTag tag, HolderLookup.Provider registries); - protected abstract void loadModData(CompoundTag tag); + protected abstract void loadModData(CompoundTag tag, HolderLookup.Provider registries); @Override - protected void saveAdditional(CompoundTag pTag) { - this.saveModData(pTag); + protected void saveAdditional(CompoundTag pTag, HolderLookup.Provider registries) { + super.saveAdditional(pTag, registries); + this.saveModData(pTag, registries); } @Override - public void load(CompoundTag pTag) { - super.load(pTag); - this.loadModData(pTag); + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider registries) { + super.loadAdditional(pTag, registries); + this.loadModData(pTag, registries); } @Override - public CompoundTag getUpdateTag() { + public CompoundTag getUpdateTag(HolderLookup.Provider registries) { CompoundTag tag = new CompoundTag(); - this.saveModData(tag); + this.saveModData(tag, registries); return tag; } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockAbstractImpetus.java b/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockAbstractImpetus.java index d5197fce68..e339b76306 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockAbstractImpetus.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockAbstractImpetus.java @@ -7,16 +7,21 @@ import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.phys.BlockHitResult; import java.util.EnumSet; @@ -30,6 +35,8 @@ public BlockAbstractImpetus(Properties p_49795_) { this.stateDefinition.any().setValue(ENERGIZED, false).setValue(FACING, Direction.NORTH)); } + public abstract BlockEntityType getBlockEntityType(); + @Override public ControlFlow acceptControlFlow(CastingImage imageIn, CircleCastEnv env, Direction enterDir, BlockPos pos, BlockState bs, ServerLevel world) { @@ -58,6 +65,9 @@ public float particleHeight(BlockPos pos, BlockState bs, Level world) { return 0.5f; } + public abstract InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, + BlockHitResult pHit); + @Override public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRandom) { if (pLevel.getBlockEntity(pPos) instanceof BlockEntityAbstractImpetus tile && pState.getValue(ENERGIZED)) { diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/ActionUtils.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/ActionUtils.kt index c6dda37c9a..eaa9cc1e75 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/ActionUtils.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/ActionUtils.kt @@ -4,11 +4,13 @@ package at.petrak.hexcasting.api.casting import at.petrak.hexcasting.api.casting.iota.* import at.petrak.hexcasting.api.casting.math.HexPattern +import at.petrak.hexcasting.api.casting.mishaps.MishapEntityUnavailable import at.petrak.hexcasting.api.casting.mishaps.MishapInvalidIota import at.petrak.hexcasting.api.casting.mishaps.MishapNotEnoughArgs import at.petrak.hexcasting.api.utils.asTranslatedComponent import com.mojang.datafixers.util.Either import net.minecraft.core.BlockPos +import net.minecraft.server.level.ServerLevel import net.minecraft.server.level.ServerPlayer import net.minecraft.world.entity.Entity import net.minecraft.world.entity.LivingEntity @@ -32,10 +34,28 @@ fun List.getDouble(idx: Int, argc: Int = 0): Double { } } -fun List.getEntity(idx: Int, argc: Int = 0): Entity { +fun List.getEntity(level: ServerLevel, idx: Int, argc: Int = 0): Entity { val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } if (x is EntityIota) { - return x.entity + return x.getOrFindEntity(level) ?: throw MishapEntityUnavailable(x.entityId, x.cachedEntityName) + } else { + throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity") + } +} + +fun List.getOrFindEntity(level: ServerLevel, idx: Int, argc: Int = 0): Entity? { + val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } + if (x is EntityIota) { + return x.getOrFindEntity(level) + } else { + throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity") + } +} + +fun List.getCachedEntity(idx: Int, argc: Int = 0): Entity? { + val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } + if (x is EntityIota) { + return x.cachedEntity; } else { throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity") } @@ -79,40 +99,40 @@ fun List.getBool(idx: Int, argc: Int = 0): Boolean { // Helpers -fun List.getItemEntity(idx: Int, argc: Int = 0): ItemEntity { +fun List.getItemEntity(level: ServerLevel, idx: Int, argc: Int = 0): ItemEntity { val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } if (x is EntityIota) { - val e = x.entity + val e = x.getOrFindEntity(level) ?: throw MishapEntityUnavailable(x.entityId, x.cachedEntityName) if (e is ItemEntity) return e } throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity.item") } -fun List.getPlayer(idx: Int, argc: Int = 0): ServerPlayer { +fun List.getPlayer(level: ServerLevel, idx: Int, argc: Int = 0): ServerPlayer { val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } if (x is EntityIota) { - val e = x.entity + val e = x.getOrFindEntity(level) ?: throw MishapEntityUnavailable(x.entityId, x.cachedEntityName) if (e is ServerPlayer) return e } throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity.player") } -fun List.getMob(idx: Int, argc: Int = 0): Mob { +fun List.getMob(level: ServerLevel, idx: Int, argc: Int = 0): Mob { val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } if (x is EntityIota) { - val e = x.entity + val e = x.getOrFindEntity(level) ?: throw MishapEntityUnavailable(x.entityId, x.cachedEntityName) if (e is Mob) return e } throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity.mob") } -fun List.getLivingEntityButNotArmorStand(idx: Int, argc: Int = 0): LivingEntity { +fun List.getLivingEntityButNotArmorStand(level: ServerLevel, idx: Int, argc: Int = 0): LivingEntity { val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } if (x is EntityIota) { - val e = x.entity + val e = x.getOrFindEntity(level) ?: throw MishapEntityUnavailable(x.entityId, x.cachedEntityName) if (e is LivingEntity && e !is ArmorStand) return e } @@ -297,7 +317,7 @@ fun evaluatable(datum: Iota, reverseIdx: Int): Either = ) } -fun Iota?.orNull() = this ?: NullIota() +fun Iota?.orNull() = this ?: NullIota.INSTANCE // TODO do we make this work on lists // there should probably be some way to abstract function application over lists, vecs, and numbers, @@ -319,5 +339,5 @@ inline val BlockPos.asActionResult get() = listOf(Vec3Iota(Vec3.atCenterOf(this) inline val Vector3f.asActionResult get() = listOf(Vec3Iota(Vec3(this))) inline val Vec3.asActionResult get() = listOf(Vec3Iota(this)) -inline val Entity?.asActionResult get() = listOf(if (this == null) NullIota() else EntityIota(this)) +inline val Entity?.asActionResult get() = listOf(if (this == null) NullIota.INSTANCE else EntityIota(this)) inline val HexPattern.asActionResult get() = listOf(PatternIota(this)) diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/ParticleSpray.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/ParticleSpray.kt index 88129e6bf8..f9d9eacef1 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/ParticleSpray.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/ParticleSpray.kt @@ -3,6 +3,11 @@ package at.petrak.hexcasting.api.casting import at.petrak.hexcasting.api.pigment.FrozenPigment import at.petrak.hexcasting.common.msgs.MsgCastParticleS2C import at.petrak.hexcasting.xplat.IXplatAbstractions +import at.petrak.paucal.api.PaucalCodecs +import io.netty.buffer.ByteBuf +import net.minecraft.network.RegistryFriendlyByteBuf +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.codec.StreamCodec import net.minecraft.server.level.ServerLevel import net.minecraft.world.phys.Vec3 @@ -12,6 +17,17 @@ import net.minecraft.world.phys.Vec3 */ data class ParticleSpray(val pos: Vec3, val vel: Vec3, val fuzziness: Double, val spread: Double, val count: Int = 20) { companion object { + + @JvmStatic + val STREAM_CODEC: StreamCodec = StreamCodec.composite( + PaucalCodecs.VEC3, ParticleSpray::pos, + PaucalCodecs.VEC3, ParticleSpray::vel, + ByteBufCodecs.DOUBLE, ParticleSpray::fuzziness, + ByteBufCodecs.DOUBLE, ParticleSpray::spread, + ByteBufCodecs.VAR_INT, ParticleSpray::count, + ::ParticleSpray + ) + @JvmStatic fun burst(pos: Vec3, size: Double, count: Int = 20): ParticleSpray { return ParticleSpray(pos, Vec3(size, 0.0, 0.0), 0.0, 3.14, count) @@ -23,6 +39,8 @@ data class ParticleSpray(val pos: Vec3, val vel: Vec3, val fuzziness: Double, va } } + + fun sprayParticles(world: ServerLevel, color: FrozenPigment) { IXplatAbstractions.INSTANCE.sendPacketNear(this.pos, 128.0, world, MsgCastParticleS2C(this, color)) } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/SpellList.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/SpellList.kt index 2e76c18c76..f6e4090ed5 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/SpellList.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/SpellList.kt @@ -1,6 +1,8 @@ package at.petrak.hexcasting.api.casting import at.petrak.hexcasting.api.casting.iota.Iota +import at.petrak.hexcasting.api.casting.iota.IotaType +import net.minecraft.network.codec.ByteBufCodecs /** * Restricted interface for functional lists. @@ -90,4 +92,17 @@ sealed class SpellList : Iterable { return car } } + + companion object { + @JvmStatic + val CODEC = IotaType.TYPED_CODEC.listOf().xmap( + { list -> LList(list) as SpellList }, + { b -> b.toList() } + ) + @JvmStatic + val STREAM_CODEC = IotaType.TYPED_STREAM_CODEC.apply(ByteBufCodecs.list()).map( + { list -> LList(list) as SpellList }, + { b -> b.toList() } + ) + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/castables/SpellAction.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/castables/SpellAction.kt index fcf17d08d0..75e3a246b0 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/castables/SpellAction.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/castables/SpellAction.kt @@ -20,17 +20,18 @@ interface SpellAction : Action { fun awardsCastingStat(ctx: CastingEnvironment): Boolean = true + fun executeWithUserdata( + args: List, + env: CastingEnvironment, + userData: CompoundTag + ): Result = + execute(args, env) + fun execute( args: List, env: CastingEnvironment ): Result - fun executeWithUserdata( - args: List, env: CastingEnvironment, userData: CompoundTag - ): Result { - return this.execute(args, env) - } - override fun operate(env: CastingEnvironment, image: CastingImage, continuation: SpellContinuation): OperationResult { val stack = image.stack.toMutableList() diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/BlockEntityAbstractImpetus.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/BlockEntityAbstractImpetus.java index ac8bf92d0d..85de2c23fc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/BlockEntityAbstractImpetus.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/BlockEntityAbstractImpetus.java @@ -2,6 +2,7 @@ import at.petrak.hexcasting.api.block.HexBlockEntity; import at.petrak.hexcasting.api.block.circle.BlockCircleComponent; +import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.api.misc.MediaConstants; import at.petrak.hexcasting.api.pigment.FrozenPigment; import at.petrak.hexcasting.api.utils.MediaHelper; @@ -11,7 +12,9 @@ import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; @@ -187,6 +190,7 @@ public void startExecution(@Nullable ServerPlayer player) { this.executionState.getTickSpeed()); serverLevel.setBlockAndUpdate(this.getBlockPos(), this.getBlockState().setValue(BlockCircleComponent.ENERGIZED, true)); + ICircleComponent.sfx(this.getBlockPos(), this.getBlockState(), this.level, this, true); } @Contract(pure = true) @@ -284,7 +288,7 @@ public FrozenPigment getPigment() { } @Override - protected void saveModData(CompoundTag tag) { + protected void saveModData(CompoundTag tag, HolderLookup.Provider registries) { if (this.executionState != null) { tag.put(TAG_EXECUTION_STATE, this.executionState.save()); } @@ -292,17 +296,15 @@ protected void saveModData(CompoundTag tag) { tag.putLong(TAG_MEDIA, this.media); if (this.displayMsg != null && this.displayItem != null) { - tag.putString(TAG_ERROR_MSG, Component.Serializer.toJson(this.displayMsg)); - var itemTag = new CompoundTag(); - this.displayItem.save(itemTag); - tag.put(TAG_ERROR_DISPLAY, itemTag); + tag.putString(TAG_ERROR_MSG, Component.Serializer.toJson(this.displayMsg, registries)); + tag.put(TAG_ERROR_DISPLAY, this.displayItem.save(registries, new CompoundTag())); } if (this.pigment != null) - tag.put(TAG_PIGMENT, this.pigment.serializeToNBT()); + tag.put(TAG_PIGMENT, FrozenPigment.CODEC.encodeStart(NbtOps.INSTANCE, pigment).getOrThrow()); } @Override - protected void loadModData(CompoundTag tag) { + protected void loadModData(CompoundTag tag, HolderLookup.Provider registries) { this.executionState = null; if (tag.contains(TAG_EXECUTION_STATE, Tag.TAG_COMPOUND)) { this.lazyExecutionState = tag.getCompound(TAG_EXECUTION_STATE); @@ -315,8 +317,8 @@ protected void loadModData(CompoundTag tag) { } if (tag.contains(TAG_ERROR_MSG, Tag.TAG_STRING) && tag.contains(TAG_ERROR_DISPLAY, Tag.TAG_COMPOUND)) { - var msg = Component.Serializer.fromJson(tag.getString(TAG_ERROR_MSG)); - var display = ItemStack.of(tag.getCompound(TAG_ERROR_DISPLAY)); + var msg = Component.Serializer.fromJson(tag.getString(TAG_ERROR_MSG), registries); + var display = ItemStack.parseOptional(registries, tag.getCompound(TAG_ERROR_DISPLAY)); this.displayMsg = msg; this.displayItem = display; } else { @@ -324,7 +326,7 @@ protected void loadModData(CompoundTag tag) { this.displayItem = null; } if (tag.contains(TAG_PIGMENT, Tag.TAG_COMPOUND)) - this.pigment = FrozenPigment.fromNBT(tag.getCompound(TAG_PIGMENT)); + this.pigment = FrozenPigment.CODEC.parse(NbtOps.INSTANCE, tag.getCompound(TAG_PIGMENT)).getOrThrow(); } public void applyScryingLensOverlay(List> lines, @@ -373,7 +375,7 @@ protected int semitoneFromScale(int note) { // this is a good use of my time private static final int[] MAJOR_SCALE = {0, 2, 4, 5, 7, 9, 11, 12}; - private static final int[] MINOR_SCALE = {0, 2, 3, 5, 7, 8, 11, 12}; + private static final int[] MINOR_SCALE = {0, 2, 3, 5, 7, 8, 10, 12}; private static final int[] DORIAN_SCALE = {0, 2, 3, 5, 7, 9, 10, 12}; private static final int[] MIXOLYDIAN_SCALE = {0, 2, 4, 5, 7, 9, 10, 12}; private static final int[] BLUES_SCALE = {0, 3, 5, 6, 7, 10, 12}; diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/CircleExecutionState.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/CircleExecutionState.java index f95fa84f01..b62b4ec3c5 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/CircleExecutionState.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/circles/CircleExecutionState.java @@ -10,10 +10,7 @@ import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.NbtUtils; -import net.minecraft.nbt.Tag; +import net.minecraft.nbt.*; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; @@ -166,35 +163,37 @@ public CompoundTag save() { out.put(TAG_CURRENT_POS, NbtUtils.writeBlockPos(this.currentPos)); out.putByte(TAG_ENTERED_FROM, (byte) this.enteredFrom.ordinal()); - out.put(TAG_IMAGE, this.currentImage.serializeToNbt()); + out.put(TAG_IMAGE, CastingImage.getCODEC().encodeStart(NbtOps.INSTANCE, currentImage).getOrThrow()); if (this.caster != null) out.putUUID(TAG_CASTER, this.caster); if (this.casterPigment != null) - out.put(TAG_PIGMENT, this.casterPigment.serializeToNBT()); + out.put(TAG_PIGMENT, FrozenPigment.CODEC.encodeStart(NbtOps.INSTANCE, casterPigment).getOrThrow()); return out; } public static CircleExecutionState load(CompoundTag nbt, ServerLevel world) { - var startPos = NbtUtils.readBlockPos(nbt.getCompound(TAG_IMPETUS_POS)); + var startPos = NbtUtils.readBlockPos(nbt, TAG_IMPETUS_POS).orElseThrow(); var startDir = Direction.values()[nbt.getByte(TAG_IMPETUS_DIR)]; var knownPositions = new HashSet(); var knownTag = nbt.getList(TAG_KNOWN_POSITIONS, Tag.TAG_COMPOUND); for (var tag : knownTag) { - knownPositions.add(NbtUtils.readBlockPos(HexUtils.downcast(tag, CompoundTag.TYPE))); + var pos = readBlockPos(HexUtils.downcast(tag, IntArrayTag.TYPE).getAsIntArray()); + pos.ifPresent(knownPositions::add); } var reachedPositions = new ArrayList(); var reachedTag = nbt.getList(TAG_REACHED_POSITIONS, Tag.TAG_COMPOUND); for (var tag : reachedTag) { - reachedPositions.add(NbtUtils.readBlockPos(HexUtils.downcast(tag, CompoundTag.TYPE))); + var pos = readBlockPos(HexUtils.downcast(tag, IntArrayTag.TYPE).getAsIntArray()); + pos.ifPresent(reachedPositions::add); } - var currentPos = NbtUtils.readBlockPos(nbt.getCompound(TAG_CURRENT_POS)); + var currentPos = NbtUtils.readBlockPos(nbt, TAG_CURRENT_POS).orElseThrow(); var enteredFrom = Direction.values()[nbt.getByte(TAG_ENTERED_FROM)]; - var image = CastingImage.loadFromNbt(nbt.getCompound(TAG_IMAGE), world); + var image = CastingImage.getCODEC().parse(NbtOps.INSTANCE, nbt.getCompound(TAG_IMAGE)).getOrThrow(); UUID caster = null; if (nbt.hasUUID(TAG_CASTER)) @@ -202,12 +201,16 @@ public static CircleExecutionState load(CompoundTag nbt, ServerLevel world) { FrozenPigment pigment = null; if (nbt.contains(TAG_PIGMENT, Tag.TAG_COMPOUND)) - pigment = FrozenPigment.fromNBT(nbt.getCompound(TAG_PIGMENT)); + pigment = FrozenPigment.CODEC.parse(NbtOps.INSTANCE, nbt.getCompound(TAG_PIGMENT)).getOrThrow(); return new CircleExecutionState(startPos, startDir, knownPositions, reachedPositions, currentPos, enteredFrom, image, caster, pigment); } + private static Optional readBlockPos(int[] aint) { + return aint.length == 3 ? Optional.of(new BlockPos(aint[0], aint[1], aint[2])) : Optional.empty(); + } + /** * Update this, also mutates the impetus. *

diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastResult.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastResult.kt index c0b4d4442d..dea8869286 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastResult.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastResult.kt @@ -7,7 +7,7 @@ import at.petrak.hexcasting.api.casting.eval.vm.SpellContinuation import at.petrak.hexcasting.api.casting.iota.Iota /** - * The result of doing something to a cast harness. + * The result of doing something to a casting VM. * * Contains the iota that was executed to produce this CastResult, * the next thing to execute after this is finished, the modified state of the stack, diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java index 9157063a97..e74d123f19 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java @@ -10,7 +10,9 @@ import at.petrak.hexcasting.api.mod.HexConfig; import at.petrak.hexcasting.api.pigment.FrozenPigment; import at.petrak.hexcasting.api.utils.HexUtils; +import at.petrak.hexcasting.common.lib.HexAttributes; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -229,7 +231,7 @@ public void postCast(CastingImage image) { * Return whether this env can cast great spells. */ public boolean isEnlightened() { - var adv = this.world.getServer().getAdvancements().getAdvancement(modLoc("enlightenment")); + var adv = this.world.getServer().getAdvancements().get(modLoc("enlightenment")); if (adv == null) return false; @@ -247,6 +249,9 @@ public boolean isEnlightened() { * positive. */ public long extractMedia(long cost, boolean simulate) { + if (this.getCastingEntity() != null){ + cost = (long) (cost * this.getCastingEntity().getAttributeValue(HexAttributes.MEDIA_CONSUMPTION_MODIFIER)); + } for (var extractMediaComponent : preMediaExtract) cost = extractMediaComponent.onExtractMedia(cost, simulate); cost = extractMediaEnvironment(cost, simulate); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/ExecutionClientView.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/ExecutionClientView.kt index 3fcf1bf766..90e7285b37 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/ExecutionClientView.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/ExecutionClientView.kt @@ -1,6 +1,13 @@ package at.petrak.hexcasting.api.casting.eval +import at.petrak.hexcasting.api.casting.iota.Iota +import at.petrak.hexcasting.api.casting.iota.IotaType import net.minecraft.nbt.CompoundTag +import net.minecraft.network.RegistryFriendlyByteBuf +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.codec.StreamCodec +import java.util.* +import kotlin.jvm.optionals.getOrNull /** * Information sent back to the client @@ -11,7 +18,26 @@ data class ExecutionClientView( // These must be tags so the wrapping of the text can happen on the client // otherwise we don't know when to stop rendering - val stackDescs: List, - val ravenmind: CompoundTag?, -) + val stackDescs: List, + val ravenmind: CompoundTag? +) { + + companion object { + @JvmStatic + val STREAM_CODEC: StreamCodec = + StreamCodec.composite( + ByteBufCodecs.BOOL, ExecutionClientView::isStackClear, + ByteBufCodecs.idMapper( + { ResolvedPatternType.entries[it] }, + ResolvedPatternType::ordinal + ), ExecutionClientView::resolutionType, + IotaType.TYPED_STREAM_CODEC.apply(ByteBufCodecs.list()), ExecutionClientView::stackDescs, + ByteBufCodecs.optional(ByteBufCodecs.COMPOUND_TAG).map( + { it.getOrNull() }, + Optional::ofNullable + ), ExecutionClientView::ravenmind, + ::ExecutionClientView + ) + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/ResolvedPattern.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/ResolvedPattern.kt index 6108850727..ac4ec14fbe 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/ResolvedPattern.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/ResolvedPattern.kt @@ -2,26 +2,40 @@ package at.petrak.hexcasting.api.casting.eval import at.petrak.hexcasting.api.casting.math.HexCoord import at.petrak.hexcasting.api.casting.math.HexPattern -import at.petrak.hexcasting.api.utils.NBTBuilder -import net.minecraft.nbt.CompoundTag -import java.util.* +import com.mojang.serialization.Codec +import com.mojang.serialization.codecs.RecordCodecBuilder +import net.minecraft.network.RegistryFriendlyByteBuf +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.codec.StreamCodec data class ResolvedPattern(val pattern: HexPattern, val origin: HexCoord, var type: ResolvedPatternType) { - fun serializeToNBT() = NBTBuilder { - "Pattern" %= pattern.serializeToNBT() - "OriginQ" %= origin.q - "OriginR" %= origin.r - "Valid" %= type.name.lowercase(Locale.ROOT) - } + + constructor(pattern: HexPattern, q: Int, r: Int, type: ResolvedPatternType): this(pattern, HexCoord(q, r), type) companion object { - @JvmStatic - fun fromNBT(tag: CompoundTag): ResolvedPattern { - val pattern = HexPattern.fromNBT(tag.getCompound("Pattern")) - val origin = HexCoord(tag.getInt("OriginQ"), tag.getInt("OriginR")) - val valid = ResolvedPatternType.fromString(tag.getString("Valid")) - return ResolvedPattern(pattern, origin, valid) - } + @JvmField + val CODEC: Codec = RecordCodecBuilder.create({instance -> instance.group( + HexPattern.CODEC.fieldOf("pattern").forGetter { it.pattern }, + Codec.INT.fieldOf("OriginQ").forGetter { it.origin.q }, + Codec.INT.fieldOf("OriginR").forGetter { it.origin.r }, + Codec.STRING.xmap( + { ResolvedPatternType.fromString(it) }, + { it.name.lowercase() } + ).fieldOf("Valid").forGetter { it.type } + ).apply(instance, ::ResolvedPattern) + }) + + @JvmField + val STREAM_CODEC: StreamCodec = StreamCodec.composite( + HexPattern.STREAM_CODEC, ResolvedPattern::pattern, + ByteBufCodecs.VAR_INT, { it.origin.q }, + ByteBufCodecs.VAR_INT, { it.origin.r }, + ByteBufCodecs.STRING_UTF8.map( + { ResolvedPatternType.fromString(it) }, + { it.name.lowercase() } + ), ResolvedPattern::type, + ::ResolvedPattern + ) } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java index d1d542780d..2b0d914839 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/CircleCastEnv.java @@ -13,7 +13,9 @@ import at.petrak.hexcasting.api.casting.mishaps.MishapDisallowedSpell; import at.petrak.hexcasting.api.mod.HexConfig; import at.petrak.hexcasting.api.pigment.FrozenPigment; +import at.petrak.hexcasting.common.lib.HexAttributes; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; @@ -29,8 +31,6 @@ import java.util.List; import java.util.function.Predicate; -import static at.petrak.hexcasting.api.casting.eval.env.PlayerBasedCastEnv.SENTINEL_RADIUS; - public class CircleCastEnv extends CastingEnvironment { protected final CircleExecutionState execState; @@ -133,6 +133,7 @@ public long extractMediaEnvironment(long cost, boolean simulate) { public boolean isVecInRangeEnvironment(Vec3 vec) { var caster = this.execState.getCaster(this.world); if (caster != null) { + double sentinelRadius = caster.getAttributeValue(HexAttributes.SENTINEL_RADIUS); if (vec.distanceToSqr(caster.position()) <= caster.getBbHeight() * caster.getBbHeight()) { return true; } @@ -141,7 +142,7 @@ public boolean isVecInRangeEnvironment(Vec3 vec) { if (sentinel != null && sentinel.extendsRange() && caster.level().dimension() == sentinel.dimension() - && vec.distanceToSqr(sentinel.position()) <= SENTINEL_RADIUS * SENTINEL_RADIUS + 0.00000000001 + && vec.distanceToSqr(sentinel.position()) <= sentinelRadius * sentinelRadius + 0.00000000001 ) { return true; } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java index 10ff3b052b..dd5b73d701 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/PlayerBasedCastEnv.java @@ -14,9 +14,11 @@ import at.petrak.hexcasting.api.pigment.FrozenPigment; import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.api.utils.MediaHelper; +import at.petrak.hexcasting.common.lib.HexAttributes; import at.petrak.hexcasting.common.lib.HexDamageTypes; import at.petrak.hexcasting.xplat.IXplatAbstractions; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.Mth; @@ -35,8 +37,10 @@ import static at.petrak.hexcasting.api.HexAPI.modLoc; public abstract class PlayerBasedCastEnv extends CastingEnvironment { - public static final double AMBIT_RADIUS = 32.0; - public static final double SENTINEL_RADIUS = 16.0; + public static final double DEFAULT_AMBIT_RADIUS = 32.0; + private double ambitRadius; + public static final double DEFAULT_SENTINEL_RADIUS = 16.0; + private double sentinelRadius; protected final ServerPlayer caster; protected final InteractionHand castingHand; @@ -45,6 +49,8 @@ protected PlayerBasedCastEnv(ServerPlayer caster, InteractionHand castingHand) { super(caster.serverLevel()); this.caster = caster; this.castingHand = castingHand; + this.ambitRadius = caster.getAttributeValue(HexAttributes.AMBIT_RADIUS); + this.sentinelRadius = caster.getAttributeValue(HexAttributes.SENTINEL_RADIUS); } @Override @@ -66,6 +72,16 @@ public void postExecution(CastResult result) { this.sendMishapMsgToPlayer(doMishap); } } + if (this.caster != null){ + double ambitAttribute = this.caster.getAttributeValue(HexAttributes.AMBIT_RADIUS); + if (this.ambitRadius != ambitAttribute){ + this.ambitRadius = ambitAttribute; + } + double sentinelAttribute = this.caster.getAttributeValue(HexAttributes.SENTINEL_RADIUS); + if (this.sentinelRadius != sentinelAttribute){ + this.sentinelRadius = sentinelAttribute; + } + } } @Override @@ -78,6 +94,14 @@ protected List getPrimaryStacks() { return getPrimaryStacksForPlayer(this.castingHand, this.caster); } + public double getAmbitRadius() { + return this.ambitRadius; + } + + public double getSentinelRadius(){ + return this.sentinelRadius; + } + @Override public boolean replaceItem(Predicate stackOk, ItemStack replaceWith, @Nullable InteractionHand hand) { return replaceItemForPlayer(stackOk, replaceWith, hand, this.caster); @@ -90,12 +114,12 @@ public boolean isVecInRangeEnvironment(Vec3 vec) { && sentinel.extendsRange() && this.caster.level().dimension() == sentinel.dimension() // adding 0.00000000001 to avoid machine precision errors at specific angles - && vec.distanceToSqr(sentinel.position()) <= SENTINEL_RADIUS * SENTINEL_RADIUS + 0.00000000001 + && vec.distanceToSqr(sentinel.position()) <= sentinelRadius * sentinelRadius + 0.00000000001 ) { return true; } - return vec.distanceToSqr(this.caster.position()) <= AMBIT_RADIUS * AMBIT_RADIUS + 0.00000000001; + return vec.distanceToSqr(this.caster.position()) <= ambitRadius * ambitRadius + 0.00000000001; } @Override @@ -128,7 +152,7 @@ protected long extractMediaFromInventory(long costLeft, boolean allowOvercast, b } else { var mediaAbleToCastFromHP = this.caster.getHealth() * mediaToHealth; - Mishap.trulyHurt(this.caster, this.caster.damageSources().source(HexDamageTypes.OVERCAST), (float) healthToRemove); + Mishap.trulyHurt(this.caster, this.world.damageSources().source(HexDamageTypes.OVERCAST), (float) healthToRemove); var actuallyTaken = Mth.ceil(mediaAbleToCastFromHP - (this.caster.getHealth() * mediaToHealth)); @@ -152,9 +176,12 @@ protected long extractMediaFromInventory(long costLeft, boolean allowOvercast, b } protected boolean canOvercast() { - var adv = this.world.getServer().getAdvancements().getAdvancement(modLoc("y_u_no_cast_angy")); - var advs = this.caster.getAdvancements(); - return advs.getOrStartProgress(adv).isDone(); + var adv = this.world.getServer().getAdvancements().get(modLoc("y_u_no_cast_angy")); + if(adv != null) { + var advs = this.caster.getAdvancements(); + return advs.getOrStartProgress(adv).isDone(); + } + return false; } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/StaffCastEnv.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/StaffCastEnv.java index 29e80d3817..537c146b71 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/StaffCastEnv.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/env/StaffCastEnv.java @@ -14,6 +14,7 @@ import at.petrak.hexcasting.common.msgs.*; import at.petrak.hexcasting.xplat.IXplatAbstractions; import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; @@ -131,7 +132,7 @@ public static void handleNewPatternOnServer(ServerPlayer sender, MsgNewSpellPatt IXplatAbstractions.INSTANCE.sendPacketToPlayer(sender, new MsgNewSpellPatternS2C(clientInfo, resolvedPatterns.size() - 1)); - IMessage packet; + CustomPacketPayload packet; if (clientInfo.isStackClear()) { packet = new MsgClearSpiralPatternsS2C(sender.getUUID()); } else { diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/CastingImage.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/CastingImage.kt index 3ffd771bcd..573f73fb61 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/CastingImage.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/CastingImage.kt @@ -1,57 +1,59 @@ package at.petrak.hexcasting.api.casting.eval.vm import at.petrak.hexcasting.api.HexAPI +import at.petrak.hexcasting.api.casting.eval.vm.CastingImage.ParenthesizedIota import at.petrak.hexcasting.api.casting.eval.vm.CastingImage.ParenthesizedIota.Companion.TAG_ESCAPED import at.petrak.hexcasting.api.casting.eval.vm.CastingImage.ParenthesizedIota.Companion.TAG_IOTAS import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.casting.iota.IotaType import at.petrak.hexcasting.api.casting.iota.ListIota import at.petrak.hexcasting.api.utils.* +import com.mojang.serialization.Codec +import com.mojang.serialization.codecs.RecordCodecBuilder import net.minecraft.nbt.CompoundTag import net.minecraft.nbt.ListTag import net.minecraft.nbt.Tag +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.codec.StreamCodec import net.minecraft.server.level.ServerLevel +import net.minecraft.util.ExtraCodecs import net.minecraft.world.entity.Entity +import java.util.Optional +import kotlin.jvm.optionals.getOrNull /** * The state of a casting VM, containing the stack and all */ -data class CastingImage private constructor( +data class CastingImage( val stack: List, val parenCount: Int, val parenthesized: List, val escapeNext: Boolean, val opsConsumed: Long, - val userData: CompoundTag ) { constructor() : this(listOf(), 0, listOf(), false, 0, CompoundTag()) data class ParenthesizedIota(val iota: Iota, val escaped: Boolean) { companion object { + val CODEC = RecordCodecBuilder.create { inst -> + inst.group( + IotaType.TYPED_CODEC.fieldOf("iota").forGetter { it.iota }, + Codec.BOOL.fieldOf("escaped").forGetter { it.escaped } + ).apply(inst, ::ParenthesizedIota) + } + val STREAM_CODEC = StreamCodec.composite( + IotaType.TYPED_STREAM_CODEC, ParenthesizedIota::iota, + ByteBufCodecs.BOOL, ParenthesizedIota::escaped, + ::ParenthesizedIota + ) + const val TAG_IOTAS = "iotas" const val TAG_ESCAPED = "escaped" } } - /** - * Returns an empty list if it's too complicated. - */ - private fun Iterable.serializeToNBT(): CompoundTag { - val tag = CompoundTag() - - if (IotaType.isTooLargeToSerialize(this.map { it.iota })) { - tag.put(TAG_IOTAS, ListTag()) - tag.put(TAG_ESCAPED, ListTag()) - } else { - tag.put(TAG_IOTAS, ListIota(this.map { it.iota }).serialize()) - tag.put(TAG_ESCAPED, this.map { it.escaped }.serializeToNBT()) - } - - return tag - } - /** * Return a copy of this with the given number of ops additionally exhausted */ @@ -72,60 +74,32 @@ data class CastingImage private constructor( */ fun withResetEscape() = this.copy(parenCount = 0, parenthesized = listOf(), escapeNext = false) - fun serializeToNbt() = NBTBuilder { - TAG_STACK %= stack.serializeToNBT() - - TAG_PAREN_COUNT %= parenCount - TAG_ESCAPE_NEXT %= escapeNext - TAG_PARENTHESIZED %= parenthesized.serializeToNBT() - TAG_OPS_CONSUMED %= opsConsumed - - TAG_USERDATA %= userData - } - companion object { - const val TAG_STACK = "stack" - const val TAG_PAREN_COUNT = "open_parens" - const val TAG_PARENTHESIZED = "parenthesized" - const val TAG_ESCAPE_NEXT = "escape_next" - const val TAG_OPS_CONSUMED = "ops_consumed" - const val TAG_USERDATA = "userdata" - @JvmStatic - fun loadFromNbt(tag: CompoundTag, world: ServerLevel): CastingImage { - return try { - val stack = mutableListOf() - val stackTag = tag.getList(TAG_STACK, Tag.TAG_COMPOUND) - for (subtag in stackTag) { - val datum = IotaType.deserialize(subtag.asCompound, world) - stack.add(datum) - } - - val userData = if (tag.contains(TAG_USERDATA)) { - tag.getCompound(TAG_USERDATA) - } else { - CompoundTag() - } - - val parenthesized = mutableListOf() - val parenTag = tag.getCompound(TAG_PARENTHESIZED) - val parenIotasTag = parenTag.getList(TAG_IOTAS, Tag.TAG_COMPOUND) - val parenEscapedTag = parenTag.getByteArray(TAG_ESCAPED) - - for ((subtag, isEscapedByte) in parenIotasTag.zipWithDefault(parenEscapedTag) { _ -> 0 }) { - parenthesized.add(ParenthesizedIota(IotaType.deserialize(subtag.downcast(CompoundTag.TYPE), world), isEscapedByte != 0.toByte())) - } - - val parenCount = tag.getInt(TAG_PAREN_COUNT) - val escapeNext = tag.getBoolean(TAG_ESCAPE_NEXT) - val opsUsed = tag.getLong(TAG_OPS_CONSUMED) - - CastingImage(stack, parenCount, parenthesized, escapeNext, opsUsed, userData) - } catch (exn: Exception) { - HexAPI.LOGGER.warn("error while loading a CastingImage", exn) - CastingImage() + val CODEC = RecordCodecBuilder.create { inst -> + inst.group( + IotaType.TYPED_CODEC.listOf().fieldOf("stack").forGetter { it.stack }, + Codec.INT.fieldOf("open_parens").forGetter { it.parenCount }, + ParenthesizedIota.CODEC.listOf().fieldOf("parenthesized").forGetter { it.parenthesized }, + Codec.BOOL.fieldOf("escape_next").forGetter { it.escapeNext }, + Codec.LONG.fieldOf("ops_consumed").forGetter { it.opsConsumed }, + CompoundTag.CODEC.fieldOf("userData").forGetter { it.userData } + ).apply(inst) { a, b, c, d, e, f -> + CastingImage(a, b, c, d, e, f) } - } + }.orElseGet(::CastingImage) + @JvmStatic + val STREAM_CODEC = StreamCodec.composite( + IotaType.TYPED_STREAM_CODEC.apply(ByteBufCodecs.list()), CastingImage::stack, + ByteBufCodecs.VAR_INT, CastingImage::parenCount, + ParenthesizedIota.STREAM_CODEC.apply(ByteBufCodecs.list()), CastingImage::parenthesized, + ByteBufCodecs.BOOL, CastingImage::escapeNext, + ByteBufCodecs.VAR_LONG, CastingImage::opsConsumed, + ByteBufCodecs.COMPOUND_TAG, { it.userData }, + { a, b, c, d, e, f -> + CastingImage(a, b, c, d, e, f) + } + ) @JvmStatic fun checkAndMarkGivenMotion(userData: CompoundTag, entity: Entity): Boolean { diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/CastingVM.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/CastingVM.kt index 587500355b..c6e4336a47 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/CastingVM.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/CastingVM.kt @@ -1,7 +1,6 @@ package at.petrak.hexcasting.api.casting.eval.vm import at.petrak.hexcasting.api.HexAPI -import at.petrak.hexcasting.api.casting.PatternShapeMatch.* import at.petrak.hexcasting.api.casting.SpellList import at.petrak.hexcasting.api.casting.eval.* import at.petrak.hexcasting.api.casting.eval.sideeffects.OperatorSideEffect @@ -12,8 +11,10 @@ import at.petrak.hexcasting.api.casting.iota.ListIota import at.petrak.hexcasting.api.casting.iota.PatternIota import at.petrak.hexcasting.api.casting.math.HexDir import at.petrak.hexcasting.api.casting.math.HexPattern -import at.petrak.hexcasting.api.casting.mishaps.* -import at.petrak.hexcasting.api.utils.* +import at.petrak.hexcasting.api.casting.mishaps.Mishap +import at.petrak.hexcasting.api.casting.mishaps.MishapInternalException +import at.petrak.hexcasting.api.casting.mishaps.MishapStackSize +import at.petrak.hexcasting.api.casting.mishaps.MishapTooManyCloseParens import at.petrak.hexcasting.common.lib.hex.HexEvalSounds import net.minecraft.nbt.CompoundTag import net.minecraft.server.level.ServerLevel @@ -64,7 +65,7 @@ class CastingVM(var image: CastingImage, val env: CastingEnvironment) { } } - // Then write all pertinent data back to the harness for the next iteration. + // Then write all pertinent data back to the VM for the next iteration. if (image2.newData != null) { this.image = image2.newData } @@ -86,12 +87,14 @@ class CastingVM(var image: CastingImage, val env: CastingEnvironment) { if (lastResolutionType.success) ResolvedPatternType.EVALUATED else ResolvedPatternType.ERRORED } - val (stackDescs, ravenmind) = generateDescs() + val ravenmind: CompoundTag? = image.userData + ?.takeIf { it.contains(HexAPI.RAVENMIND_USERDATA) } + ?.getCompound(HexAPI.RAVENMIND_USERDATA) val isStackClear = image.stack.isEmpty() && image.parenCount == 0 && !image.escapeNext && ravenmind == null this.env.postCast(image) - return ExecutionClientView(isStackClear, lastResolutionType, stackDescs, ravenmind) + return ExecutionClientView(isStackClear, lastResolutionType, image.stack, ravenmind) } /** @@ -158,14 +161,6 @@ class CastingVM(var image: CastingImage, val env: CastingEnvironment) { } } - fun generateDescs(): Pair, CompoundTag?> { - val stackDescs = this.image.stack.map { IotaType.serialize(it) } - val ravenmind = if (this.image.userData.contains(HexAPI.RAVENMIND_USERDATA)) { - this.image.userData.getCompound(HexAPI.RAVENMIND_USERDATA) - } else null - return Pair(stackDescs, ravenmind) - } - /** * Return a non-null value if we handled this in some sort of parenthesey way, * either escaping it onto the stack or changing the parenthese-handling state. diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/ContinuationFrame.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/ContinuationFrame.kt index f565135837..ff25b70b57 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/ContinuationFrame.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/ContinuationFrame.kt @@ -2,12 +2,24 @@ package at.petrak.hexcasting.api.casting.eval.vm import at.petrak.hexcasting.api.casting.SpellList import at.petrak.hexcasting.api.casting.eval.CastResult +import at.petrak.hexcasting.api.casting.iota.GarbageIota import at.petrak.hexcasting.api.casting.iota.Iota +import at.petrak.hexcasting.api.casting.iota.IotaType +import at.petrak.hexcasting.common.lib.HexRegistries import at.petrak.hexcasting.common.lib.hex.HexContinuationTypes +import at.petrak.hexcasting.xplat.IXplatAbstractions +import com.mojang.serialization.Codec +import com.mojang.serialization.DataResult +import com.mojang.serialization.MapCodec import net.minecraft.nbt.CompoundTag import net.minecraft.nbt.Tag +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.server.level.ServerLevel +import java.util.function.Function +import java.util.function.Supplier /** * A single frame of evaluation during the execution of a spell. @@ -37,11 +49,6 @@ interface ContinuationFrame { */ fun breakDownwards(stack: List): Pair> - /** - * Serializes this frame. Used for things like delays, where we pause execution. - */ - fun serializeToNBT(): CompoundTag - /** * Return the number of iotas contained inside this frame, used for determining whether it is valid to serialise. */ @@ -50,41 +57,36 @@ interface ContinuationFrame { val type: Type<*> interface Type { - fun deserializeFromNBT(tag: CompoundTag, world: ServerLevel): U? - } - companion object { - /** - * Takes a tag containing the ContinuationFrame.Type resourcelocation and the serialized continuation frame, and returns - * the deserialized continuation frame. - */ - @JvmStatic - fun fromNBT(tag: CompoundTag, world: ServerLevel): ContinuationFrame { - val type = getTypeFromTag(tag) ?: return FrameEvaluate(SpellList.LList(0, listOf()), false) + fun codec(): MapCodec - return (tag.get(HexContinuationTypes.KEY_DATA) as? CompoundTag)?.let { type.deserializeFromNBT(it, world) } - ?: FrameEvaluate(SpellList.LList(0, listOf()), false) - } + fun streamCodec(): StreamCodec + + companion object { + //TODO if doesn't exist use `FrameEvaluate(SpellList.LList(0, listOf()), false)` as default value + @JvmStatic + val TYPED_CODEC: Codec = Codec.lazyInitialized { + IXplatAbstractions.INSTANCE + .continuationTypeRegistry + .byNameCodec() + .dispatch( + "type", + ContinuationFrame::type, + Type<*>::codec + ) + } - /** - * Takes a continuation frame and serializes it along with its type. - */ - @JvmStatic - fun toNBT(frame: ContinuationFrame): CompoundTag { - val type = frame.type - val typeId = HexContinuationTypes.REGISTRY.getKey(type) - ?: throw IllegalStateException( - "Tried to serialize an unregistered continuation type. Continuation: " + frame - + " ; Type" + type.javaClass.typeName + @JvmStatic + val TYPED_STREAM_CODEC: StreamCodec = ByteBufCodecs + .registry(HexRegistries.CONTINUATION_TYPE) + .dispatch( + ContinuationFrame::type, + Type<*>::streamCodec ) - - val data = frame.serializeToNBT() - - val out = CompoundTag() - out.putString(HexContinuationTypes.KEY_TYPE, typeId.toString()) - out.put(HexContinuationTypes.KEY_DATA, data) - return out } + } + + companion object { /** * This method attempts to find the type from the `type` key. @@ -98,9 +100,11 @@ interface ContinuationFrame { } val typeKey = tag.getString(HexContinuationTypes.KEY_TYPE) + val typeLoc = ResourceLocation.tryParse(typeKey) + ?: return null - return typeLoc?.let { HexContinuationTypes.REGISTRY[it] } + return HexContinuationTypes.REGISTRY[typeLoc] } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameEvaluate.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameEvaluate.kt index 141148dfdc..c67b2683ba 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameEvaluate.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameEvaluate.kt @@ -5,13 +5,13 @@ import at.petrak.hexcasting.api.casting.eval.CastResult import at.petrak.hexcasting.api.casting.eval.ResolvedPatternType import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.casting.iota.ListIota -import at.petrak.hexcasting.api.utils.NBTBuilder -import at.petrak.hexcasting.api.utils.getList -import at.petrak.hexcasting.api.utils.serializeToNBT import at.petrak.hexcasting.common.lib.hex.HexEvalSounds -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes -import net.minecraft.nbt.CompoundTag -import net.minecraft.nbt.Tag +import com.mojang.serialization.Codec +import com.mojang.serialization.MapCodec +import com.mojang.serialization.codecs.RecordCodecBuilder +import net.minecraft.network.RegistryFriendlyByteBuf +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.codec.StreamCodec import net.minecraft.server.level.ServerLevel /** @@ -48,27 +48,32 @@ data class FrameEvaluate(val list: SpellList, val isMetacasting: Boolean) : Cont } } - override fun serializeToNBT() = NBTBuilder { - "patterns" %= list.serializeToNBT() - "isMetacasting" %= isMetacasting - } - override fun size() = list.size() override val type: ContinuationFrame.Type<*> = TYPE companion object { + @JvmField val TYPE: ContinuationFrame.Type = object : ContinuationFrame.Type { - override fun deserializeFromNBT(tag: CompoundTag, world: ServerLevel): FrameEvaluate { - return FrameEvaluate( - HexIotaTypes.LIST.deserialize( - tag.getList("patterns", Tag.TAG_COMPOUND), - world - )!!.list, - tag.getBoolean("isMetacasting")) + val CODEC = RecordCodecBuilder.mapCodec { inst -> + inst.group( + SpellList.CODEC.fieldOf("patterns").forGetter { it.list }, + Codec.BOOL.fieldOf("isMetacasting").forGetter { it.isMetacasting } + ).apply(inst, ::FrameEvaluate) } + val STREAM_CODEC = StreamCodec.composite( + SpellList.STREAM_CODEC, FrameEvaluate::list, + ByteBufCodecs.BOOL, FrameEvaluate::isMetacasting, + ::FrameEvaluate + ) + + + override fun codec(): MapCodec = + CODEC + override fun streamCodec(): StreamCodec = + STREAM_CODEC } } } \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameFinishEval.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameFinishEval.kt index 72bbb8c80c..ed16b1768c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameFinishEval.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameFinishEval.kt @@ -6,7 +6,10 @@ import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.casting.iota.NullIota import at.petrak.hexcasting.api.utils.NBTBuilder import at.petrak.hexcasting.common.lib.hex.HexEvalSounds +import com.mojang.serialization.MapCodec import net.minecraft.nbt.CompoundTag +import net.minecraft.network.RegistryFriendlyByteBuf +import net.minecraft.network.codec.StreamCodec import net.minecraft.server.level.ServerLevel /** @@ -24,7 +27,7 @@ object FrameFinishEval : ContinuationFrame { harness: CastingVM ): CastResult { return CastResult( - NullIota(), + NullIota.INSTANCE, continuation, null, listOf(), @@ -33,13 +36,19 @@ object FrameFinishEval : ContinuationFrame { ) } - override fun serializeToNBT() = CompoundTag() - override fun size() = 0 @JvmField val TYPE: ContinuationFrame.Type = object : ContinuationFrame.Type { - override fun deserializeFromNBT(tag: CompoundTag, world: ServerLevel) = FrameFinishEval + val CODEC = MapCodec.unit(FrameFinishEval) + val STREAM_CODEC = StreamCodec.unit(FrameFinishEval) + + override fun codec(): MapCodec = + CODEC + + override fun streamCodec(): StreamCodec = + STREAM_CODEC + } override val type = TYPE diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameForEach.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameForEach.kt index 0221c1f36d..0017aeecf3 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameForEach.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FrameForEach.kt @@ -4,16 +4,17 @@ import at.petrak.hexcasting.api.casting.SpellList import at.petrak.hexcasting.api.casting.eval.CastResult import at.petrak.hexcasting.api.casting.eval.ResolvedPatternType import at.petrak.hexcasting.api.casting.iota.Iota +import at.petrak.hexcasting.api.casting.iota.IotaType import at.petrak.hexcasting.api.casting.iota.ListIota -import at.petrak.hexcasting.api.utils.NBTBuilder -import at.petrak.hexcasting.api.utils.getList -import at.petrak.hexcasting.api.utils.hasList -import at.petrak.hexcasting.api.utils.serializeToNBT import at.petrak.hexcasting.common.lib.hex.HexEvalSounds -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes -import net.minecraft.nbt.CompoundTag -import net.minecraft.nbt.Tag +import com.mojang.serialization.MapCodec +import com.mojang.serialization.codecs.RecordCodecBuilder +import net.minecraft.network.RegistryFriendlyByteBuf +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.codec.StreamCodec import net.minecraft.server.level.ServerLevel +import java.util.* +import kotlin.jvm.optionals.getOrNull /** * A frame representing all the state for a Thoth evaluation. @@ -47,7 +48,7 @@ data class FrameForEach( ): CastResult { // If this isn't the very first Thoth step (i.e. no Thoth computations run yet)... val stack = if (baseStack == null) { - // init stack to the harness stack... + // init stack to the VM stack... harness.image.stack.toList() } else { // else save the stack to the accumulator and reuse the saved base stack. @@ -81,14 +82,6 @@ data class FrameForEach( ) } - override fun serializeToNBT() = NBTBuilder { - "data" %= data.serializeToNBT() - "code" %= code.serializeToNBT() - if (baseStack != null) - "base" %= baseStack.serializeToNBT() - "accumulator" %= acc.serializeToNBT() - } - override fun size() = data.size() + code.size() + acc.size + (baseStack?.size ?: 0) override val type: ContinuationFrame.Type<*> = TYPE @@ -96,21 +89,33 @@ data class FrameForEach( companion object { @JvmField val TYPE: ContinuationFrame.Type = object : ContinuationFrame.Type { - override fun deserializeFromNBT(tag: CompoundTag, world: ServerLevel): FrameForEach { - return FrameForEach( - HexIotaTypes.LIST.deserialize(tag.getList("data", Tag.TAG_COMPOUND), world)!!.list, - HexIotaTypes.LIST.deserialize(tag.getList("code", Tag.TAG_COMPOUND), world)!!.list, - if (tag.hasList("base", Tag.TAG_COMPOUND)) - HexIotaTypes.LIST.deserialize(tag.getList("base", Tag.TAG_COMPOUND), world)!!.list.toList() - else - null, - HexIotaTypes.LIST.deserialize( - tag.getList("accumulator", Tag.TAG_COMPOUND), - world - )!!.list.toMutableList() - ) + val CODEC = RecordCodecBuilder.mapCodec { inst -> + inst.group( + SpellList.CODEC.fieldOf("data").forGetter { it.data }, + SpellList.CODEC.fieldOf("code").forGetter { it.code }, + IotaType.TYPED_CODEC.listOf().optionalFieldOf("base").forGetter { Optional.ofNullable(it.baseStack) }, + IotaType.TYPED_CODEC.listOf().fieldOf("accumulator").forGetter { it.acc } + ).apply(inst) { a, b, c, d -> + FrameForEach(a, b, c.getOrNull(), d) + } + } + val STREAM_CODEC = StreamCodec.composite( + SpellList.STREAM_CODEC, FrameForEach::data, + SpellList.STREAM_CODEC, FrameForEach::code, + ByteBufCodecs.optional(IotaType.TYPED_STREAM_CODEC + .apply(ByteBufCodecs.list())), { Optional.ofNullable(it.baseStack) }, + IotaType.TYPED_STREAM_CODEC + .apply(ByteBufCodecs.list()), FrameForEach::acc + ) { a, b, c, d -> + FrameForEach(a, b, c.getOrNull(), d) } + + override fun codec(): MapCodec = + CODEC + + override fun streamCodec(): StreamCodec = + STREAM_CODEC } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FunctionalData.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FunctionalData.kt index 49f3d149d0..79c48bf6bb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FunctionalData.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/FunctionalData.kt @@ -3,7 +3,7 @@ package at.petrak.hexcasting.api.casting.eval.vm import at.petrak.hexcasting.api.casting.iota.Iota /** - * A change to the data in a CastHarness after a pattern is drawn. + * A change to the data in a CastingVM after a pattern is drawn. */ data class FunctionalData( val stack: List, diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/SpellContinuation.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/SpellContinuation.kt index ec706c2858..774d9ea60d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/SpellContinuation.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/vm/SpellContinuation.kt @@ -1,10 +1,13 @@ package at.petrak.hexcasting.api.casting.eval.vm -import at.petrak.hexcasting.api.utils.NBTBuilder -import at.petrak.hexcasting.api.utils.getList -import net.minecraft.nbt.CompoundTag -import net.minecraft.nbt.Tag -import net.minecraft.server.level.ServerLevel +import com.mojang.datafixers.util.Either +import com.mojang.serialization.Codec +import com.mojang.serialization.codecs.RecordCodecBuilder +import io.netty.buffer.ByteBuf +import net.minecraft.network.RegistryFriendlyByteBuf +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.codec.StreamCodec +import java.util.function.Function /** * A continuation during the execution of a spell. @@ -16,31 +19,43 @@ sealed interface SpellContinuation { fun pushFrame(frame: ContinuationFrame): SpellContinuation = NotDone(frame, this) - fun serializeToNBT() = NBTBuilder { - TAG_FRAME %= list(getNBTFrames()) - } - fun getNBTFrames(): List { - var self = this - val frames = mutableListOf() - while (self is NotDone) { - frames.add(ContinuationFrame.toNBT(self.frame)) - self = self.next - } - return frames - } companion object { - const val TAG_FRAME = "frame" - + // TODO port: maybe serialize to list like before? + // TODO port: maybe unit should be first @JvmStatic - fun fromNBT(nbt: CompoundTag, world: ServerLevel): SpellContinuation { - val frames = nbt.getList(TAG_FRAME, Tag.TAG_COMPOUND) - var result: SpellContinuation = Done - for (frame in frames.asReversed()) { - if (frame is CompoundTag) { - result = result.pushFrame(ContinuationFrame.fromNBT(frame, world)) + val CODEC = Codec.recursive( + SpellContinuation::class.java.simpleName + ) { recursed: Codec -> + Codec.withAlternative( + Codec.unit(Done), + RecordCodecBuilder.create { inst -> + inst.group( + ContinuationFrame.Type.TYPED_CODEC.fieldOf("frame").forGetter { it.frame }, + recursed.fieldOf("next").forGetter { it.next } + ).apply(inst, ::NotDone) } - } - return result + ) + } + @JvmStatic + val STREAM_CODEC = StreamCodec.recursive { recursed -> + withAlternative( + StreamCodec.unit(Done), + StreamCodec.composite( + ContinuationFrame.Type.TYPED_STREAM_CODEC, NotDone::frame, + recursed, NotDone::next, + ::NotDone + ).map(Function.identity()) { it as NotDone } + ) + } + + private fun withAlternative(primary: StreamCodec, alternative: StreamCodec): StreamCodec { + return ByteBufCodecs.either( + primary, + alternative + ).map( + Function { either: Either -> Either.unwrap(either) }, + Function { value: T -> Either.left(value) } + ) } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/BooleanIota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/BooleanIota.java index 91cf0b339d..8b03fc33c9 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/BooleanIota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/BooleanIota.java @@ -2,21 +2,26 @@ import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import io.netty.buffer.ByteBuf; import net.minecraft.ChatFormatting; import net.minecraft.nbt.ByteTag; import net.minecraft.nbt.Tag; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerLevel; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; public class BooleanIota extends Iota { + private boolean value; public BooleanIota(boolean d) { - super(HexIotaTypes.BOOLEAN, d); + super(() -> HexIotaTypes.BOOLEAN); + this.value = d; } public boolean getBool() { - return (boolean) this.payload; + return value; } @Override @@ -32,21 +37,30 @@ public boolean toleratesOther(Iota that) { } @Override - public @NotNull Tag serialize() { - // there is no boolean tag :( - return ByteTag.valueOf(this.getBool()); + public int hashCode() { + return Boolean.hashCode(value); + } + + @Override + public Component display() { + return BooleanIota.display(getBool()); } public static IotaType TYPE = new IotaType<>() { - @Nullable + public static final MapCodec CODEC = Codec.BOOL + .xmap(BooleanIota::new, BooleanIota::getBool) + .fieldOf("value"); + public static final StreamCodec STREAM_CODEC = + ByteBufCodecs.BOOL.map(BooleanIota::new, BooleanIota::getBool).mapStream(buffer -> buffer); + @Override - public BooleanIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return BooleanIota.deserialize(tag); + public MapCodec codec() { + return CODEC; } @Override - public Component display(Tag tag) { - return BooleanIota.display(BooleanIota.deserialize(tag).getBool()); + public StreamCodec streamCodec() { + return STREAM_CODEC; } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/ContinuationIota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/ContinuationIota.java index 13764c4675..7eca19aa6d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/ContinuationIota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/ContinuationIota.java @@ -4,13 +4,17 @@ import at.petrak.hexcasting.api.casting.eval.ResolvedPatternType; import at.petrak.hexcasting.api.casting.eval.vm.CastingVM; import at.petrak.hexcasting.api.casting.eval.vm.SpellContinuation; +import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.lib.hex.HexEvalSounds; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; +import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.server.level.ServerLevel; import org.jetbrains.annotations.NotNull; @@ -21,13 +25,15 @@ */ public class ContinuationIota extends Iota { public static final Component DISPLAY = Component.translatable("hexcasting.tooltip.jump_iota").withStyle(ChatFormatting.RED); + private SpellContinuation value; public ContinuationIota(SpellContinuation cont) { - super(HexIotaTypes.CONTINUATION, cont); + super(() -> HexIotaTypes.CONTINUATION); + this.value = cont; } public SpellContinuation getContinuation() { - return (SpellContinuation) this.payload; + return value; } @Override @@ -40,12 +46,6 @@ public boolean toleratesOther(Iota that) { return typesMatch(this, that) && that instanceof ContinuationIota cont && cont.getContinuation().equals(getContinuation()); } - @Override - public @NotNull - Tag serialize() { - return getContinuation().serializeToNBT(); - } - @Override public @NotNull CastResult execute(CastingVM vm, ServerLevel world, SpellContinuation continuation) { return new CastResult(this, this.getContinuation(), vm.getImage(), List.of(), ResolvedPatternType.EVALUATED, HexEvalSounds.HERMES); @@ -69,16 +69,31 @@ public int size() { return Math.min(size, 1); } + @Override + public int hashCode() { + return value.hashCode(); + } + + @Override + public Component display() { + return DISPLAY; + } + public static IotaType TYPE = new IotaType<>() { + public static final MapCodec CODEC = SpellContinuation.getCODEC() + .xmap(ContinuationIota::new, ContinuationIota::getContinuation) + .fieldOf("value"); + public static final StreamCodec STREAM_CODEC = + SpellContinuation.getSTREAM_CODEC().map(ContinuationIota::new, ContinuationIota::getContinuation); + @Override - public @NotNull ContinuationIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - var compoundTag = HexUtils.downcast(tag, CompoundTag.TYPE); - return new ContinuationIota(SpellContinuation.fromNBT(compoundTag, world)); + public MapCodec codec() { + return CODEC; } @Override - public Component display(Tag tag) { - return DISPLAY; + public StreamCodec streamCodec() { + return STREAM_CODEC; } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/DoubleIota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/DoubleIota.java index e9ff20f57c..229fded62a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/DoubleIota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/DoubleIota.java @@ -2,23 +2,30 @@ import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; import net.minecraft.nbt.DoubleTag; import net.minecraft.nbt.Tag; +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.server.level.ServerLevel; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class DoubleIota extends Iota { public static final double TOLERANCE = 0.0001; + private double value; public DoubleIota(double d) { - super(HexIotaTypes.DOUBLE, d); + super(() -> HexIotaTypes.DOUBLE); + this.value = d; } public double getDouble() { - return HexUtils.fixNAN((Double) this.payload); + return HexUtils.fixNAN((Double) value); } @Override @@ -38,20 +45,30 @@ public static boolean tolerates(double a, double b) { } @Override - public @NotNull Tag serialize() { - return DoubleTag.valueOf(this.getDouble()); + public int hashCode() { + return Double.hashCode(value); + } + + @Override + public Component display() { + return DoubleIota.display(value); } public static IotaType TYPE = new IotaType<>() { - @Nullable + public static final MapCodec CODEC = Codec.DOUBLE + .xmap(DoubleIota::new, DoubleIota::getDouble) + .fieldOf("value"); + public static final StreamCodec STREAM_CODEC = + ByteBufCodecs.DOUBLE.map(DoubleIota::new, DoubleIota::getDouble).mapStream(buffer -> buffer); + @Override - public DoubleIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return DoubleIota.deserialize(tag); + public MapCodec codec() { + return CODEC; } @Override - public Component display(Tag tag) { - return DoubleIota.display(DoubleIota.deserialize(tag).getDouble()); + public StreamCodec streamCodec() { + return STREAM_CODEC; } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/EntityIota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/EntityIota.java index 2a8023cf01..9c4f3bfc49 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/EntityIota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/EntityIota.java @@ -1,36 +1,96 @@ package at.petrak.hexcasting.api.casting.iota; -import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import com.samsthenerd.inline.api.InlineAPI; import com.samsthenerd.inline.api.data.EntityInlineData; import com.samsthenerd.inline.api.data.PlayerHeadData; import net.minecraft.ChatFormatting; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtUtils; -import net.minecraft.nbt.Tag; +import net.minecraft.core.UUIDUtil; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.ComponentSerialization; import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.component.ResolvableProfile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.lang.ref.WeakReference; +import java.util.Optional; +import java.util.UUID; + public class EntityIota extends Iota { + private final UUID entityId; + @Nullable + private WeakReference cachedEntity; + @Nullable + private Component entityName; + public EntityIota(@NotNull Entity e) { - super(HexIotaTypes.ENTITY, e); + this(e.getUUID(), getEntityNameWithInline(e)); + this.cachedEntity = new WeakReference<>(e); } - public Entity getEntity() { - return (Entity) this.payload; + public EntityIota(UUID entityId, @Nullable Component entityName) { + super(() -> HexIotaTypes.ENTITY); + this.entityId = entityId; + this.entityName = entityName; + } + + public UUID getEntityId() { + return entityId; + } + + @Nullable + public Entity getOrFindEntity(ServerLevel level) { + // First, let's try to get it from weak reference + var entity = getCachedEntity(); + if (entity != null) + return entity; + // Now let's try to fetch it from the world + entity = level.getEntity(entityId); + // Store in weak reference + if (entity != null) + cachedEntity = new WeakReference<>(entity); + return entity; + } + + @Nullable + public Entity getCachedEntity() { + if (cachedEntity != null) + if (!cachedEntity.refersTo(null)) + return cachedEntity.get(); + else + cachedEntity = null; // Clear weakref + return null; + } + + public @Nullable Component getEntityName() { + var ent = getCachedEntity(); + if(ent != null) { + var name = getEntityNameWithInline(ent); + this.entityName = name; + return name; + } + + return getCachedEntityName(); + } + + public @Nullable Component getCachedEntityName() { + return entityName; } @Override public boolean toleratesOther(Iota that) { return typesMatch(this, that) - && that instanceof EntityIota dent - && this.getEntity() == dent.getEntity(); + && that instanceof EntityIota dent + && this.getEntityId() == dent.getEntityId(); } @Override @@ -39,63 +99,49 @@ public boolean isTruthy() { } @Override - public @NotNull - Tag serialize() { - var out = new CompoundTag(); - out.putUUID("uuid", this.getEntity().getUUID()); - out.putString("name", Component.Serializer.toJson(getEntityNameWithInline(true))); - return out; + public Component display() { + var name = getCachedEntityName(); + return name != null ? name.copy().withStyle(ChatFormatting.AQUA) : Component.translatable("hexcasting.spelldata.entity.whoknows"); } @Override - public Component display() { - return getEntityNameWithInline(false).copy().withStyle(ChatFormatting.AQUA); + public int hashCode() { + return entityId.hashCode(); } - private Component getEntityNameWithInline(boolean fearSerializer){ - MutableComponent baseName = this.getEntity().getName().copy(); - Component inlineEnt = null; - if(this.getEntity() instanceof Player player){ - inlineEnt = new PlayerHeadData(player.getGameProfile()).asText(!fearSerializer); + private static Component getEntityNameWithInline(Entity entity) { + MutableComponent baseName = entity.getName().copy(); + Component inlineEnt; + if(entity instanceof Player player){ + inlineEnt = new PlayerHeadData(new ResolvableProfile(player.getGameProfile())).asText(false); inlineEnt = inlineEnt.plainCopy().withStyle(InlineAPI.INSTANCE.withSizeModifier(inlineEnt.getStyle(), 1.5)); - } else{ - if(fearSerializer){ // we don't want to have to serialize an entity just to display it - inlineEnt = EntityInlineData.fromType(this.getEntity().getType()).asText(!fearSerializer); - } else { - inlineEnt = EntityInlineData.fromEntity(this.getEntity()).asText(!fearSerializer); - } + } else { + inlineEnt = EntityInlineData.fromType(entity.getType()).asText(false); } return baseName.append(Component.literal(": ")).append(inlineEnt); } public static IotaType TYPE = new IotaType<>() { - @Nullable + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> + inst.group( + UUIDUtil.CODEC.fieldOf("entityId").forGetter(EntityIota::getEntityId), + ComponentSerialization.CODEC.optionalFieldOf("entityName").forGetter(iota -> Optional.ofNullable(iota.getEntityName())) + ).apply(inst, (a, b) -> new EntityIota(a, b.orElse(null)))); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + UUIDUtil.STREAM_CODEC, EntityIota::getEntityId, + ByteBufCodecs.optional(ComponentSerialization.STREAM_CODEC), iota -> Optional.ofNullable(iota.getEntityName()), + (a, b) -> new EntityIota(a, b.orElse(null)) + ); + @Override - public EntityIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - var ctag = HexUtils.downcast(tag, CompoundTag.TYPE); - Tag uuidTag = ctag.get("uuid"); - if (uuidTag == null) { - return null; - } - var uuid = NbtUtils.loadUUID(uuidTag); - var entity = world.getEntity(uuid); - if (entity == null) { - return null; - } - return new EntityIota(entity); + public MapCodec codec() { + return CODEC; } @Override - public Component display(Tag tag) { - if (!(tag instanceof CompoundTag ctag)) { - return Component.translatable("hexcasting.spelldata.entity.whoknows"); - } - if (!ctag.contains("name", Tag.TAG_STRING)) { - return Component.translatable("hexcasting.spelldata.entity.whoknows"); - } - var nameJson = ctag.getString("name"); -// return Component.literal(nameJson); - return Component.Serializer.fromJsonLenient(nameJson).withStyle(ChatFormatting.AQUA); + public StreamCodec streamCodec() { + return STREAM_CODEC; } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/GarbageIota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/GarbageIota.java index 0824985852..f0c869b00c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/GarbageIota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/GarbageIota.java @@ -1,31 +1,28 @@ package at.petrak.hexcasting.api.casting.iota; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; +import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; -import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerLevel; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Random; +import net.minecraft.network.codec.StreamCodec; /** * this is LITERALLY a copy of NullIota but I can't see how to do it any better, i hate java generics */ public class GarbageIota extends Iota { + public static final GarbageIota INSTANCE = new GarbageIota(); + private static final Object NULL_SUBSTITUTE = new Object(); public static final Component DISPLAY = Component.literal("arimfexendrapuse") .withStyle(ChatFormatting.DARK_GRAY, ChatFormatting.OBFUSCATED); - private static final Random RANDOM = new Random(); - - public GarbageIota() { + private GarbageIota() { // We have to pass *something* here, but there's nothing that actually needs to go there, // so we just do this i guess - super(HexIotaTypes.GARBAGE, NULL_SUBSTITUTE); + super(() -> HexIotaTypes.GARBAGE); } @Override @@ -39,20 +36,28 @@ public boolean toleratesOther(Iota that) { } @Override - public @NotNull Tag serialize() { - return new CompoundTag(); + public int hashCode() { + return NULL_SUBSTITUTE.hashCode(); + } + + @Override + public Component display() { + return DISPLAY; } public static IotaType TYPE = new IotaType<>() { - @Nullable + public static final MapCodec CODEC = MapCodec.unit(GarbageIota.INSTANCE); + public static final StreamCodec STREAM_CODEC = + StreamCodec.unit(GarbageIota.INSTANCE); + @Override - public GarbageIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return new GarbageIota(); + public MapCodec codec() { + return CODEC; } @Override - public Component display(Tag tag) { - return DISPLAY; + public StreamCodec streamCodec() { + return STREAM_CODEC; } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/Iota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/Iota.java index cad6baee82..5f2b33455b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/Iota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/Iota.java @@ -9,29 +9,38 @@ import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.api.casting.mishaps.Mishap; import at.petrak.hexcasting.api.casting.mishaps.MishapUnescapedValue; +import at.petrak.hexcasting.common.lib.HexRegistries; import at.petrak.hexcasting.common.lib.hex.HexEvalSounds; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; +import com.mojang.serialization.Codec; +import net.minecraft.ChatFormatting; +import net.minecraft.client.gui.Font; +import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.Tag; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.ComponentSerialization; +import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.FormattedCharSequence; +import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; +import java.util.Objects; +import java.util.function.Supplier; public abstract class Iota { @NotNull - protected final Object payload; - @NotNull - protected final IotaType type; + protected final Supplier> type; - protected Iota(@NotNull IotaType type, @NotNull Object payload) { + protected Iota(@NotNull Supplier> type) { this.type = type; - this.payload = payload; } - public @NotNull IotaType getType() { - return this.type; + public @NotNull IotaType getType() { + return this.type.get(); } abstract public boolean isTruthy(); @@ -41,13 +50,6 @@ protected Iota(@NotNull IotaType type, @NotNull Object payload) { */ abstract protected boolean toleratesOther(Iota that); - /** - * Serialize this under the {@code data} tag. - *

- * You probably don't want to call this directly; use {@link IotaType#serialize}. - */ - abstract public @NotNull Tag serialize(); - /** * This method is called when this iota is executed (i.e. Hermes is run on a list containing it, unescaped). * By default it will return a {@link CastResult} indicating an error has occurred. @@ -100,8 +102,19 @@ public int depth() { return 1; } - public Component display() { - return this.type.display(this.serialize()); + public abstract Component display(); + + public FormattedCharSequence displayWithMaxWidth(int maxWidth, Font font) { + var splitted = font.split(display(), maxWidth - font.width("...")); + if (splitted.isEmpty()) + return FormattedCharSequence.EMPTY; + else if (splitted.size() == 1) + return splitted.getFirst(); + else { + var first = splitted.getFirst(); + return FormattedCharSequence.fromPair(first, + Component.literal("...").withStyle(ChatFormatting.GRAY).getVisualOrderText()); + } } /** @@ -121,7 +134,13 @@ public static boolean tolerates(Iota a, Iota b) { } @Override - public int hashCode() { - return payload.hashCode(); + public abstract int hashCode(); + + @Override + public boolean equals(Object o) { + if(o instanceof Iota io) { + return tolerates(this, io); + } + return false; } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/IotaType.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/IotaType.java index c0167ae5df..66e4130482 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/IotaType.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/IotaType.java @@ -1,78 +1,52 @@ package at.petrak.hexcasting.api.casting.iota; -import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.utils.HexUtils; +import at.petrak.hexcasting.common.lib.HexRegistries; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import com.mojang.datafixers.util.Pair; +import at.petrak.hexcasting.xplat.IXplatAbstractions; +import com.mojang.serialization.Codec; +import com.mojang.serialization.DataResult; +import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.Font; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.Tag; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextColor; +import net.minecraft.network.chat.ComponentSerialization; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; import net.minecraft.util.FormattedCharSequence; -import javax.annotation.Nullable; import java.util.List; -import java.util.Objects; +import java.util.function.Function; // Take notes from ForgeRegistryEntry public abstract class IotaType { - - /** - * Spell datums are stored as such: {@code { "type": "modid:type", "datum": a_tag }}. - *

- * The {@code type} key is given when registering the spell datum type; this method - * deserializes the tag associated with {@code "datum"}. - *

- * Returning {@code null} makes the resulting datum be {@link NullIota}. - * Throwing an exception raises a mishap. - */ - @Nullable - public abstract T deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException; - - /** - * Get a display of this datum from the {@code data} tag, without the world. - * This is for use on the client. - */ - public abstract Component display(Tag tag); - - /** - * Get the color associated with this datum type. - */ - public abstract int color(); - - /** - * Get a display component that's the name of this iota type. - */ - public Component typeName() { - var key = HexIotaTypes.REGISTRY.getKey(this); - return Component.translatable("hexcasting.iota." + key) - .withStyle(style -> style.withColor(TextColor.fromRgb(color()))); - } - - public static CompoundTag serialize(Iota iota) { - var type = iota.getType(); - var typeId = HexIotaTypes.REGISTRY.getKey(type); - if (typeId == null) { - throw new IllegalStateException( - "Tried to serialize an unregistered iota type. Iota: " + iota - + " ; Type" + type.getClass().getTypeName()); - } - - // We check if it's too big on serialization; if it is we just return a garbage. - if (isTooLargeToSerialize(List.of(iota), 0)) { - // Garbage will never be too large so we just recurse - return serialize(new GarbageIota()); - } - var dataTag = iota.serialize(); - var out = new CompoundTag(); - out.putString(HexIotaTypes.KEY_TYPE, typeId.toString()); - out.put(HexIotaTypes.KEY_DATA, dataTag); - return out; - } + public static final Codec TYPED_CODEC = Codec.lazyInitialized(() -> IXplatAbstractions.INSTANCE + .getIotaTypeRegistry() + .byNameCodec() + .dispatch("type", Iota::getType, IotaType::codec) + .comapFlatMap( + iota -> { + if (isTooLargeToSerialize(List.of(iota), 0)) { + return DataResult.success(GarbageIota.INSTANCE); + } + return DataResult.success(iota); + }, + Function.identity() + ).orElse(GarbageIota.INSTANCE) + ); + public static final StreamCodec TYPED_STREAM_CODEC = ByteBufCodecs + .registry(HexRegistries.IOTA_TYPE) + .dispatch(Iota::getType, IotaType::streamCodec); + + + public abstract MapCodec codec(); + + public abstract StreamCodec streamCodec(); public static boolean isTooLargeToSerialize(Iterable examinee) { return isTooLargeToSerialize(examinee, 1); @@ -88,99 +62,10 @@ private static boolean isTooLargeToSerialize(Iterable examinee, int starti return totalSize >= HexIotaTypes.MAX_SERIALIZATION_TOTAL; } - /** - * This method attempts to find the type from the {@code type} key. - * See {@link IotaType#serialize(Iota)} for the storage format. - * - * @return {@code null} if it cannot get the type. - */ - @org.jetbrains.annotations.Nullable - public static IotaType getTypeFromTag(CompoundTag tag) { - if (!tag.contains(HexIotaTypes.KEY_TYPE, Tag.TAG_STRING)) { - return null; - } - var typeKey = tag.getString(HexIotaTypes.KEY_TYPE); - if (!ResourceLocation.isValidResourceLocation(typeKey)) { - return null; - } - var typeLoc = new ResourceLocation(typeKey); - return HexIotaTypes.REGISTRY.get(typeLoc); - } - - /** - * Attempt to deserialize an iota from a tag. - *
- * Iotas are saved as such: - * - * { - * "type": "hexcasting:atype", - * "data": {...} - * } - * - */ - public static Iota deserialize(CompoundTag tag, ServerLevel world) { - var type = getTypeFromTag(tag); - if (type == null) { - return new GarbageIota(); - } - var data = tag.get(HexIotaTypes.KEY_DATA); - if (data == null) { - return new GarbageIota(); - } - Iota deserialized; - try { - deserialized = Objects.requireNonNullElse(type.deserialize(data, world), new NullIota()); - } catch (IllegalArgumentException exn) { - HexAPI.LOGGER.warn("Caught an exception deserializing an iota", exn); - deserialized = new GarbageIota(); - } - return deserialized; - } - - private static Component brokenIota() { + public static Component brokenIota() { return Component.translatable("hexcasting.spelldata.unknown") .withStyle(ChatFormatting.GRAY, ChatFormatting.ITALIC); } - public static Component getDisplay(CompoundTag tag) { - var type = getTypeFromTag(tag); - if (type == null) { - return brokenIota(); - } - var data = tag.get(HexIotaTypes.KEY_DATA); - if (data == null) { - return brokenIota(); - } - return type.display(data); - } - - public static FormattedCharSequence getDisplayWithMaxWidth(CompoundTag tag, int maxWidth, Font font) { - var type = getTypeFromTag(tag); - if (type == null) { - return brokenIota().getVisualOrderText(); - } - var data = tag.get(HexIotaTypes.KEY_DATA); - if (data == null) { - return brokenIota().getVisualOrderText(); - } - var display = type.display(data); - var splitted = font.split(display, maxWidth - font.width("...")); - if (splitted.isEmpty()) - return FormattedCharSequence.EMPTY; - else if (splitted.size() == 1) - return splitted.get(0); - else { - var first = splitted.get(0); - return FormattedCharSequence.fromPair(first, - Component.literal("...").withStyle(ChatFormatting.GRAY).getVisualOrderText()); - } - } - - public static int getColor(CompoundTag tag) { - var type = getTypeFromTag(tag); - if (type == null) { - return HexUtils.ERROR_COLOR; - } - return type.color(); - } + public abstract int color(); } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/ListIota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/ListIota.java index d3eb9455bf..ab41d887c4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/ListIota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/ListIota.java @@ -1,18 +1,15 @@ package at.petrak.hexcasting.api.casting.iota; import at.petrak.hexcasting.api.casting.SpellList; -import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; +import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.Tag; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerLevel; +import net.minecraft.network.codec.StreamCodec; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; import java.util.List; import static java.lang.Math.max; @@ -21,11 +18,13 @@ * This is a wrapper for {@link SpellList}. */ public class ListIota extends Iota { + private SpellList list; private final int depth; private final int size; public ListIota(@NotNull SpellList list) { - super(HexIotaTypes.LIST, list); + super(() -> HexIotaTypes.LIST); + this.list = list; int maxChildDepth = 0; int totalSize = 1; for (Iota iota : list) { @@ -41,7 +40,7 @@ public ListIota(@NotNull List list) { } public SpellList getList() { - return (SpellList) this.payload; + return list; } @Override @@ -77,15 +76,6 @@ public boolean toleratesOther(Iota that) { } } - @Override - public @NotNull Tag serialize() { - var out = new ListTag(); - for (var subdatum : this.getList()) { - out.add(IotaType.serialize(subdatum)); - } - return out; - } - @Override public @Nullable Iterable subIotas() { return this.getList(); @@ -101,43 +91,45 @@ public int depth() { return depth; } - public static IotaType TYPE = new IotaType<>() { - @Nullable - @Override - public ListIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - var listTag = HexUtils.downcast(tag, ListTag.TYPE); - var out = new ArrayList(listTag.size()); - - for (var sub : listTag) { - var csub = HexUtils.downcast(sub, CompoundTag.TYPE); - var subiota = IotaType.deserialize(csub, world); - if (subiota == null) { - return null; - } - out.add(subiota); + @Override + public int hashCode() { + return list.hashCode(); + } + + @Override + public Component display() { + var out = Component.empty(); + + for (int i = 0; i < list.size(); i++) { + var sub = list.getAt(i); + + out.append(sub.display()); + + // only add a comma between 2 non-patterns (commas don't look good with Inline patterns) + // TODO: maybe add a config? maybe add a method on IotaType to allow it to opt out of commas + if (i < list.size() - 1 && (sub.type != PatternIota.TYPE + || list.getAt(i + 1).type != PatternIota.TYPE)) { + out.append(", "); } + } + return Component.translatable("hexcasting.tooltip.list_contents", out).withStyle(ChatFormatting.DARK_PURPLE); + } - return new ListIota(out); + public static IotaType TYPE = new IotaType<>() { + public static final MapCodec CODEC = SpellList.getCODEC() + .xmap(ListIota::new, ListIota::getList) + .fieldOf("list"); + public static final StreamCodec STREAM_CODEC = + SpellList.getSTREAM_CODEC().map(ListIota::new, ListIota::getList); + + @Override + public MapCodec codec() { + return CODEC; } @Override - public Component display(Tag tag) { - var out = Component.empty(); - var list = HexUtils.downcast(tag, ListTag.TYPE); - for (int i = 0; i < list.size(); i++) { - Tag sub = list.get(i); - var csub = HexUtils.downcast(sub, CompoundTag.TYPE); - - out.append(IotaType.getDisplay(csub)); - - // only add a comma between 2 non-patterns (commas don't look good with Inline patterns) - // TODO: maybe add a config? maybe add a method on IotaType to allow it to opt out of commas - if (i < list.size() - 1 && (IotaType.getTypeFromTag(csub) != PatternIota.TYPE - || IotaType.getTypeFromTag(HexUtils.downcast(list.get(i+1), CompoundTag.TYPE)) != PatternIota.TYPE)) { - out.append(", "); - } - } - return Component.translatable("hexcasting.tooltip.list_contents", out).withStyle(ChatFormatting.DARK_PURPLE); + public StreamCodec streamCodec() { + return STREAM_CODEC; } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/NullIota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/NullIota.java index 525e6b22a9..73bde5b4fb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/NullIota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/NullIota.java @@ -1,10 +1,13 @@ package at.petrak.hexcasting.api.casting.iota; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; +import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.server.level.ServerLevel; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -13,15 +16,14 @@ * An iota with no data associated with it. */ public class NullIota extends Iota { + public static final NullIota INSTANCE = new NullIota(); private static final Object NULL_SUBSTITUTE = new Object(); public static final Component DISPLAY = Component.translatable("hexcasting.tooltip.null_iota").withStyle(ChatFormatting.GRAY); - public NullIota() { - // We have to pass *something* here, but there's nothing that actually needs to go there, - // so we just do this i guess - super(HexIotaTypes.NULL, NULL_SUBSTITUTE); + private NullIota() { + super(() -> HexIotaTypes.NULL); } @Override @@ -35,20 +37,28 @@ public boolean toleratesOther(Iota that) { } @Override - public @NotNull Tag serialize() { - return new CompoundTag(); + public int hashCode() { + return NULL_SUBSTITUTE.hashCode(); + } + + @Override + public Component display() { + return DISPLAY; } public static IotaType TYPE = new IotaType<>() { - @Nullable + public static final MapCodec CODEC = MapCodec.unit(NullIota.INSTANCE); + public static final StreamCodec STREAM_CODEC = + StreamCodec.unit(NullIota.INSTANCE); + @Override - public NullIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return new NullIota(); + public MapCodec codec() { + return CODEC; } @Override - public Component display(Tag tag) { - return DISPLAY; + public StreamCodec streamCodec() { + return STREAM_CODEC; } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/PatternIota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/PatternIota.java index b86e8541ce..91fa4fe2f2 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/PatternIota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/PatternIota.java @@ -21,11 +21,16 @@ import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; import at.petrak.hexcasting.interop.inline.InlinePatternData; import at.petrak.hexcasting.xplat.IXplatAbstractions; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceKey; import net.minecraft.server.level.ServerLevel; import org.jetbrains.annotations.NotNull; @@ -38,16 +43,15 @@ import static at.petrak.hexcasting.api.utils.HexUtils.isOfTag; public class PatternIota extends Iota { + private HexPattern value; + public PatternIota(@NotNull HexPattern pattern) { - super(HexIotaTypes.PATTERN, pattern); + super(() -> HexIotaTypes.PATTERN); + this.value = pattern; } public HexPattern getPattern() { - return (HexPattern) this.payload; - } - - protected PatternIota(@NotNull IotaType type, @NotNull Object payload) { - super(type, payload); + return value; } @Override @@ -62,11 +66,6 @@ public boolean toleratesOther(Iota that) { && this.getPattern().getAngles().equals(piota.getPattern().getAngles()); } - @Override - public @NotNull Tag serialize() { - return this.getPattern().serializeToNBT(); - } - @Override public @NotNull CastResult execute(CastingVM vm, ServerLevel world, SpellContinuation continuation) { Supplier<@Nullable Component> castedName = () -> null; @@ -140,15 +139,31 @@ public boolean executable() { return true; } + @Override + public int hashCode() { + return value.hashCode(); + } + + @Override + public Component display() { + return PatternIota.display(getPattern()); + } + public static IotaType TYPE = new IotaType<>() { + public static final MapCodec CODEC = HexPattern.CODEC + .xmap(PatternIota::new, PatternIota::getPattern) + .fieldOf("value"); + public static final StreamCodec STREAM_CODEC = + HexPattern.STREAM_CODEC.map(PatternIota::new, PatternIota::getPattern); + @Override - public PatternIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return PatternIota.deserialize(tag); + public MapCodec codec() { + return CODEC; } @Override - public Component display(Tag tag) { - return PatternIota.display(PatternIota.deserialize(tag).getPattern()); + public StreamCodec streamCodec() { + return STREAM_CODEC; } @Override @@ -157,12 +172,6 @@ public int color() { } }; - public static PatternIota deserialize(Tag tag) throws IllegalArgumentException { - var patTag = HexUtils.downcast(tag, CompoundTag.TYPE); - HexPattern pat = HexPattern.fromNBT(patTag); - return new PatternIota(pat); - } - public static Component display(HexPattern pat) { Component text = (new InlinePatternData(pat)).asText(true); return text.copy().withStyle(text.getStyle().applyTo(Style.EMPTY.withColor(ChatFormatting.WHITE))); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/Vec3Iota.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/Vec3Iota.java index 9d9d7fbf67..8836869fce 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/Vec3Iota.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/iota/Vec3Iota.java @@ -2,27 +2,35 @@ import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.LongArrayTag; import net.minecraft.nbt.Tag; +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.server.level.ServerLevel; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.List; + public class Vec3Iota extends Iota { + private Vec3 value; public Vec3Iota(@NotNull Vec3 datum) { - super(HexIotaTypes.VEC3, datum); + super(() -> HexIotaTypes.VEC3); + this.value = datum; } public Vec3 getVec3() { - var v = (Vec3) this.payload; return new Vec3( - HexUtils.fixNAN(v.x), - HexUtils.fixNAN(v.y), - HexUtils.fixNAN(v.z) + HexUtils.fixNAN(value.x), + HexUtils.fixNAN(value.y), + HexUtils.fixNAN(value.z) ); } @@ -40,20 +48,36 @@ public boolean toleratesOther(Iota that) { } @Override - public @NotNull Tag serialize() { - return HexUtils.serializeToNBT(this.getVec3()); + public int hashCode() { + return value.hashCode(); + } + + @Override + public Component display() { + return Vec3Iota.display(getVec3()); } public static IotaType TYPE = new IotaType<>() { - @Nullable + public static final MapCodec CODEC = Vec3.CODEC + .xmap(Vec3Iota::new, Vec3Iota::getVec3) + .fieldOf("value"); + // TODO replace with Vec3 codec if it will appear somewhere + public static final StreamCodec STREAM_CODEC = + ByteBufCodecs.DOUBLE.apply(ByteBufCodecs.list()) + .map( + l -> new Vec3Iota(new Vec3(l.get(0), l.get(1), l.get(2))), + iota -> List.of(iota.getVec3().x, iota.getVec3().y, iota.getVec3().z) + ) + .mapStream(b -> b); + @Override - public Vec3Iota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return Vec3Iota.deserialize(tag); + public MapCodec codec() { + return CODEC; } @Override - public Component display(Tag tag) { - return Vec3Iota.display(Vec3Iota.deserialize(tag).getVec3()); + public StreamCodec streamCodec() { + return STREAM_CODEC; } @Override @@ -62,16 +86,6 @@ public int color() { } }; - public static Vec3Iota deserialize(Tag tag) throws IllegalArgumentException { - Vec3 vec; - if (tag.getType() == LongArrayTag.TYPE) { - var lat = HexUtils.downcast(tag, LongArrayTag.TYPE); - vec = HexUtils.vecFromNBT(lat.getAsLongArray()); - } else - vec = HexUtils.vecFromNBT(HexUtils.downcast(tag, CompoundTag.TYPE)); - return new Vec3Iota(vec); - } - public static Component display(double x, double y, double z) { return Component.literal(String.format("(%.2f, %.2f, %.2f)", x, y, z)) .withStyle(ChatFormatting.RED); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/math/HexDir.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/math/HexDir.kt index 03f4ca5a56..b11ba185a0 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/math/HexDir.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/math/HexDir.kt @@ -2,6 +2,10 @@ package at.petrak.hexcasting.api.casting.math import at.petrak.hexcasting.api.utils.getSafe import com.mojang.serialization.Codec +import io.netty.buffer.ByteBuf +import net.minecraft.network.RegistryFriendlyByteBuf +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.codec.StreamCodec enum class HexDir { NORTH_EAST, EAST, SOUTH_EAST, SOUTH_WEST, WEST, NORTH_WEST; @@ -31,6 +35,10 @@ enum class HexDir { HexDir::fromString, HexDir::name ) + val STREAM_CODEC: StreamCodec = ByteBufCodecs.STRING_UTF8.map( + HexDir::fromString, + HexDir::name + ) @JvmStatic fun fromString(key: String): HexDir { diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/math/HexPattern.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/math/HexPattern.kt index 001cfdeab4..9dea87f1bc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/math/HexPattern.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/math/HexPattern.kt @@ -8,6 +8,9 @@ import com.mojang.serialization.Codec import com.mojang.serialization.codecs.RecordCodecBuilder import net.minecraft.nbt.CompoundTag import net.minecraft.nbt.Tag +import net.minecraft.network.RegistryFriendlyByteBuf +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.codec.StreamCodec import net.minecraft.world.phys.Vec2 /** @@ -73,12 +76,6 @@ data class HexPattern(val startDir: HexDir, val angles: MutableList = fun finalDir(): HexDir = this.angles.fold(this.startDir) { acc, angle -> acc * angle } - - fun serializeToNBT() = NBTBuilder { - TAG_START_DIR %= byte(startDir.ordinal) - TAG_ANGLES %= byteArray(angles.map(HexAngle::ordinal)) - } - // Terrible shorthand method for easy matching fun anglesSignature(): String { return buildString { @@ -126,28 +123,19 @@ data class HexPattern(val startDir: HexDir, val angles: MutableList = } companion object { - const val TAG_START_DIR = "start_dir" - const val TAG_ANGLES = "angles" - @JvmField val CODEC: Codec = RecordCodecBuilder.create({instance -> instance.group( - Codec.STRING.fieldOf(TAG_START_DIR).forGetter(HexPattern::anglesSignature), - HexDir.CODEC.fieldOf(TAG_ANGLES).forGetter(HexPattern::startDir) + Codec.STRING.fieldOf("start_dir").forGetter(HexPattern::anglesSignature), + HexDir.CODEC.fieldOf("angles").forGetter(HexPattern::startDir) ).apply(instance, HexPattern::fromAngles) }) - @JvmStatic - fun isPattern(tag: CompoundTag): Boolean { - return tag.contains(TAG_START_DIR, Tag.TAG_ANY_NUMERIC.toInt()) - && tag.contains(TAG_ANGLES, Tag.TAG_BYTE_ARRAY.toInt()) - } - - @JvmStatic - fun fromNBT(tag: CompoundTag): HexPattern { - val startDir = HexDir.values().getSafe(tag.getByte(TAG_START_DIR)) - val angles = tag.getByteArray(TAG_ANGLES).map(HexAngle.values()::getSafe) - return HexPattern(startDir, angles.toMutableList()) - } + @JvmField + val STREAM_CODEC: StreamCodec = StreamCodec.composite( + ByteBufCodecs.STRING_UTF8, HexPattern::anglesSignature, + HexDir.STREAM_CODEC, HexPattern::startDir, + HexPattern::fromAngles + ) @JvmStatic fun fromAngles(signature: String, startDir: HexDir): HexPattern { diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapAlreadyBrainswept.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapAlreadyBrainswept.kt index d076dd36e2..fcfe86b2d7 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapAlreadyBrainswept.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapAlreadyBrainswept.kt @@ -5,7 +5,6 @@ import at.petrak.hexcasting.api.casting.eval.CastingEnvironment import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.pigment.FrozenPigment import at.petrak.hexcasting.common.lib.HexDamageTypes -import at.petrak.hexcasting.mixin.accessor.AccessorDamageSource import net.minecraft.world.entity.Mob import net.minecraft.world.item.DyeColor @@ -14,11 +13,7 @@ class MishapAlreadyBrainswept(val mob: Mob) : Mishap() { dyeColor(DyeColor.GREEN) override fun execute(ctx: CastingEnvironment, errorCtx: Context, stack: MutableList) { - trulyHurt( - mob, - (mob.damageSources() as AccessorDamageSource).`hex$source`(HexDamageTypes.OVERCAST, ctx.castingEntity)!!, - mob.health - ) + mob.hurt(mob.damageSources().source(HexDamageTypes.OVERCAST, ctx.castingEntity), mob.health) } override fun particleSpray(ctx: CastingEnvironment) = diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapBadBrainsweep.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapBadBrainsweep.kt index 7054802563..601273fbb0 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapBadBrainsweep.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapBadBrainsweep.kt @@ -5,7 +5,6 @@ import at.petrak.hexcasting.api.casting.eval.CastingEnvironment import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.pigment.FrozenPigment import at.petrak.hexcasting.common.lib.HexDamageTypes -import at.petrak.hexcasting.mixin.accessor.AccessorDamageSource import net.minecraft.core.BlockPos import net.minecraft.world.entity.Mob import net.minecraft.world.item.DyeColor @@ -16,11 +15,7 @@ class MishapBadBrainsweep(val mob: Mob, val pos: BlockPos) : Mishap() { dyeColor(DyeColor.GREEN) override fun execute(ctx: CastingEnvironment, errorCtx: Context, stack: MutableList) { - trulyHurt( - mob, - (mob.damageSources() as AccessorDamageSource).`hex$source`(HexDamageTypes.OVERCAST, ctx.castingEntity)!!, - 1f - ) + trulyHurt(mob, mob.damageSources().source(HexDamageTypes.OVERCAST, ctx.castingEntity), 1f) } override fun particleSpray(ctx: CastingEnvironment): ParticleSpray { diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapBadEntity.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapBadEntity.kt index a9334f0137..f176e62769 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapBadEntity.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapBadEntity.kt @@ -19,7 +19,7 @@ class MishapBadEntity(val entity: Entity, val wanted: Component) : Mishap() { } override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context) = - error("bad_entity", wanted, entity.displayName!!.plainCopy().aqua) + error("bad_entity", wanted, entity.displayName?.plainCopy()?.aqua ?: entity.type.description.plainCopy().aqua) companion object { @JvmStatic diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapDivideByZero.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapDivideByZero.kt index 98050ee244..b31a0c84f3 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapDivideByZero.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapDivideByZero.kt @@ -17,7 +17,7 @@ class MishapDivideByZero(val operand1: Component, val operand2: Component, val s dyeColor(DyeColor.RED) override fun execute(env: CastingEnvironment, errorCtx: Context, stack: MutableList) { - stack.add(GarbageIota()) + stack.add(GarbageIota.INSTANCE) env.mishapEnvironment.damage(0.5f) } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEntityTooFarAway.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEntityTooFarAway.kt index d486bff74d..5f196d376f 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEntityTooFarAway.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEntityTooFarAway.kt @@ -3,6 +3,7 @@ package at.petrak.hexcasting.api.casting.mishaps import at.petrak.hexcasting.api.casting.eval.CastingEnvironment import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.pigment.FrozenPigment +import at.petrak.hexcasting.api.utils.aqua import net.minecraft.network.chat.Component import net.minecraft.world.entity.Entity import net.minecraft.world.item.DyeColor @@ -16,5 +17,5 @@ class MishapEntityTooFarAway(val entity: Entity) : Mishap() { } override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context): Component = - error("entity_too_far", entity.displayName!!) + error("entity_too_far", entity.displayName?.plainCopy() ?: entity.type.description) } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEntityUnavailable.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEntityUnavailable.kt new file mode 100644 index 0000000000..9ec7232fb9 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEntityUnavailable.kt @@ -0,0 +1,20 @@ +package at.petrak.hexcasting.api.casting.mishaps + +import at.petrak.hexcasting.api.casting.eval.CastingEnvironment +import at.petrak.hexcasting.api.casting.iota.Iota +import at.petrak.hexcasting.api.pigment.FrozenPigment +import at.petrak.hexcasting.api.utils.aqua +import net.minecraft.ChatFormatting +import net.minecraft.network.chat.Component +import net.minecraft.world.item.DyeColor +import java.util.* + +class MishapEntityUnavailable(val entityId: UUID, val entityName: Component?) : Mishap() { + override fun accentColor(ctx: CastingEnvironment, errorCtx: Context): FrozenPigment = + dyeColor(DyeColor.BROWN) + + override fun execute(env: CastingEnvironment, errorCtx: Context, stack: MutableList) {} + + override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context) = + error("unavailable_entity", entityName?.plainCopy()?.aqua ?: Component.literal(entityId.toString()).withStyle(ChatFormatting.AQUA)) +} diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEvalTooMuch.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEvalTooMuch.kt index 24ecda81e8..1634cd63e1 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEvalTooMuch.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapEvalTooMuch.kt @@ -14,5 +14,5 @@ class MishapEvalTooMuch : Mishap() { } override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context) = - error("eval_too_deep") + error("eval_too_much") } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapImmuneEntity.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapImmuneEntity.kt index 1a027a1a77..ca2622947a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapImmuneEntity.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapImmuneEntity.kt @@ -4,6 +4,8 @@ import at.petrak.hexcasting.api.casting.eval.CastingEnvironment import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.pigment.FrozenPigment import at.petrak.hexcasting.api.utils.aqua +import net.minecraft.core.registries.Registries +import net.minecraft.network.chat.Component import net.minecraft.world.entity.Entity import net.minecraft.world.item.DyeColor @@ -16,5 +18,5 @@ class MishapImmuneEntity(val entity: Entity) : Mishap() { } override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context) = - error("immune_entity", entity.displayName!!.plainCopy().aqua) + error("immune_entity", entity.displayName?.plainCopy()?.aqua ?: entity.type.description.plainCopy().aqua) } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidIota.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidIota.kt index 17e71d6044..3645a95ab7 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidIota.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidIota.kt @@ -20,7 +20,7 @@ class MishapInvalidIota( dyeColor(DyeColor.GRAY) override fun execute(env: CastingEnvironment, errorCtx: Context, stack: MutableList) { - stack[stack.size - 1 - reverseIdx] = GarbageIota(); + stack[stack.size - 1 - reverseIdx] = GarbageIota.INSTANCE; } override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context) = diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidOperatorArgs.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidOperatorArgs.kt index a16c083f4c..187ecd8dac 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidOperatorArgs.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidOperatorArgs.kt @@ -18,7 +18,7 @@ class MishapInvalidOperatorArgs(val perpetrators: List) : Mishap() { override fun execute(env: CastingEnvironment, errorCtx: Context, stack: MutableList) { for (i in perpetrators.indices) { - stack[stack.size - 1 - i] = GarbageIota() + stack[stack.size - 1 - i] = GarbageIota.INSTANCE } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidPattern.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidPattern.kt index 20fbd31fb5..e52b71a2cc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidPattern.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInvalidPattern.kt @@ -14,7 +14,7 @@ class MishapInvalidPattern : Mishap() { override fun resolutionType(ctx: CastingEnvironment) = ResolvedPatternType.INVALID override fun execute(env: CastingEnvironment, errorCtx: Context, stack: MutableList) { - stack.add(GarbageIota()) + stack.add(GarbageIota.INSTANCE) } override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context) = diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapLocationInWrongDimension.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapLocationInWrongDimension.kt index 2d0e721838..c13b88af58 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapLocationInWrongDimension.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapLocationInWrongDimension.kt @@ -13,7 +13,7 @@ class MishapLocationInWrongDimension(val properDimension: ResourceLocation) : Mi dyeColor(DyeColor.MAGENTA) override fun execute(env: CastingEnvironment, errorCtx: Context, stack: MutableList) { - stack.add(GarbageIota()) + stack.add(GarbageIota.INSTANCE) } override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context): Component = diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapNotEnoughArgs.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapNotEnoughArgs.kt index 646f42c927..beed34a8de 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapNotEnoughArgs.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapNotEnoughArgs.kt @@ -11,7 +11,7 @@ class MishapNotEnoughArgs(val expected: Int, val got: Int) : Mishap() { dyeColor(DyeColor.LIGHT_GRAY) override fun execute(env: CastingEnvironment, errorCtx: Context, stack: MutableList) { - repeat(expected - got) { stack.add(GarbageIota()) } + repeat(expected - got) { stack.add(GarbageIota.INSTANCE) } } override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context) = diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapOthersName.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapOthersName.kt index e6ea0326ed..629ed69189 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapOthersName.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapOthersName.kt @@ -5,6 +5,7 @@ import at.petrak.hexcasting.api.casting.iota.EntityIota import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.casting.iota.ListIota import at.petrak.hexcasting.api.pigment.FrozenPigment +import net.minecraft.server.level.ServerLevel import net.minecraft.world.entity.player.Player import net.minecraft.world.item.DyeColor @@ -33,14 +34,19 @@ class MishapOthersName(val confidant: Player) : Mishap() { * If `caster` is non-null, it will ignore that when checking. */ @JvmStatic - fun getTrueNameFromDatum(datum: Iota, caster: Player?): Player? { + fun getTrueNameFromDatum(level: ServerLevel, datum: Iota, caster: Player?): Player? { val poolToSearch = ArrayDeque() poolToSearch.addLast(datum) while (poolToSearch.isNotEmpty()) { val datumToCheck = poolToSearch.removeFirst() - if (datumToCheck is EntityIota && datumToCheck.entity is Player && datumToCheck.entity != caster) - return datumToCheck.entity as Player + + if(datumToCheck is EntityIota) { + var ent = datumToCheck.getOrFindEntity(level) + if(ent is Player && ent != caster) + return ent + } + val datumSubIotas = datumToCheck.subIotas() if (datumSubIotas != null) poolToSearch.addAll(datumSubIotas) @@ -50,8 +56,8 @@ class MishapOthersName(val confidant: Player) : Mishap() { } @JvmStatic - fun getTrueNameFromArgs(datums: List, caster: Player?): Player? { - return datums.firstNotNullOfOrNull { getTrueNameFromDatum(it, caster) } + fun getTrueNameFromArgs(level: ServerLevel, datums: List, caster: Player?): Player? { + return datums.firstNotNullOfOrNull { getTrueNameFromDatum(level, it, caster) } } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapStackSize.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapStackSize.kt index 571e39bcd9..87dc91a010 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapStackSize.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapStackSize.kt @@ -16,7 +16,7 @@ class MishapStackSize() : Mishap() { override fun execute(env: CastingEnvironment, errorCtx: Context, stack: MutableList) { stack.clear() - stack.add(GarbageIota()) + stack.add(GarbageIota.INSTANCE) } override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context) = diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/circle/MishapNoSpellCircle.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/circle/MishapNoSpellCircle.kt index ba8fe81034..b1615fe604 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/circle/MishapNoSpellCircle.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/circle/MishapNoSpellCircle.kt @@ -4,22 +4,20 @@ import at.petrak.hexcasting.api.casting.eval.CastingEnvironment import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.casting.mishaps.Mishap import at.petrak.hexcasting.api.pigment.FrozenPigment -import net.minecraft.resources.ResourceLocation +import net.minecraft.core.component.DataComponents import net.minecraft.server.level.ServerPlayer import net.minecraft.world.entity.player.Player import net.minecraft.world.item.DyeColor import net.minecraft.world.item.ItemStack +import net.minecraft.world.item.enchantment.EnchantmentHelper +import net.minecraft.world.item.enchantment.Enchantments class MishapNoSpellCircle : Mishap() { override fun accentColor(ctx: CastingEnvironment, errorCtx: Context): FrozenPigment = dyeColor(DyeColor.LIGHT_BLUE) // FIXME: make me work with any entity and not just players - private inline fun dropAll( - player: Player, - stacks: MutableList, - filter: (ItemStack) -> Boolean = { true } - ) { + private inline fun dropAll(player: Player, stacks: MutableList, filter: (ItemStack) -> Boolean = { true }) { for (index in stacks.indices) { val item = stacks[index] if (!item.isEmpty && filter(item)) { @@ -36,7 +34,7 @@ class MishapNoSpellCircle : Mishap() { dropAll(caster, caster.inventory.items) dropAll(caster, caster.inventory.offhand) dropAll(caster, caster.inventory.armor) { - it.enchantments.keySet().any { ench -> ench.`is`(ResourceLocation.parse("minecraft:binding_curse")) } + it.get(DataComponents.ENCHANTMENTS)?.keySet()?.any { e -> e.`is`(Enchantments.BINDING_CURSE) } != true } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/item/IotaHolderItem.java b/Common/src/main/java/at/petrak/hexcasting/api/item/IotaHolderItem.java index c312383129..db7e60859c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/item/IotaHolderItem.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/item/IotaHolderItem.java @@ -5,6 +5,7 @@ import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.client.ClientTickCounter; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; @@ -26,30 +27,15 @@ * and the appropriate cap/CC will be attached. */ public interface IotaHolderItem { - /** - * If this key is set on the item, we ignore the rest of the item and render this as if it were of the - * {@link at.petrak.hexcasting.api.casting.iota.IotaType IotaType} given by the resource location. - *

- * This is not useful to the player at all. - */ - String TAG_OVERRIDE_VISUALLY = "VisualOverride"; - - @Nullable - CompoundTag readIotaTag(ItemStack stack); @Nullable - default Iota readIota(ItemStack stack, ServerLevel world) { - if (!(stack.getItem() instanceof IotaHolderItem dh)) { + default Iota readIota(ItemStack stack) { + if (!(stack.getItem() instanceof IotaHolderItem)) { // this should be checked via mishap beforehand throw new IllegalArgumentException("stack's item must be an IotaHolderItem but was " + stack.getItem()); } - var tag = dh.readIotaTag(stack); - if (tag != null) { - return IotaType.deserialize(tag, world); - } else { - return null; - } + return stack.get(HexDataComponents.IOTA); } /** @@ -61,28 +47,18 @@ default Iota emptyIota(ItemStack stack) { } default int getColor(ItemStack stack) { - if (NBTHelper.hasString(stack, TAG_OVERRIDE_VISUALLY)) { - var override = NBTHelper.getString(stack, TAG_OVERRIDE_VISUALLY); - - if (override != null && ResourceLocation.isValidResourceLocation(override)) { - var key = new ResourceLocation(override); - if (HexIotaTypes.REGISTRY.containsKey(key)) { - var iotaType = HexIotaTypes.REGISTRY.get(key); - if (iotaType != null) { - return iotaType.color(); - } - } - } - - return 0xFF000000 | Mth.hsvToRgb(ClientTickCounter.getTotal() * 2 % 360 / 360F, 0.75F, 1F); + var override = stack.get(HexDataComponents.VISUAL_OVERRIDE); + //noinspection OptionalAssignedToNull + if (override != null) { + return override.map(IotaType::color).orElseGet(() -> 0xFF000000 | Mth.hsvToRgb(ClientTickCounter.getTotal() * 2 % 360 / 360F, 0.75F, 1F)); } - var tag = this.readIotaTag(stack); - if (tag == null) { + var iota = this.readIota(stack); + if (iota == null) { return HexUtils.ERROR_COLOR; } - return IotaType.getColor(tag); + return iota.getType().color(); } /** @@ -102,15 +78,16 @@ default int getColor(ItemStack stack) { static void appendHoverText(IotaHolderItem self, ItemStack stack, List components, TooltipFlag flag) { - var datumTag = self.readIotaTag(stack); - if (datumTag != null) { - var cmp = IotaType.getDisplay(datumTag); + var datum = self.readIota(stack); + if (datum != null) { + var cmp = datum.display(); components.add(Component.translatable("hexcasting.spelldata.onitem", cmp)); - if (flag.isAdvanced()) { - components.add(Component.literal("").append(NbtUtils.toPrettyComponent(datumTag))); - } - } else if (NBTHelper.hasString(stack, IotaHolderItem.TAG_OVERRIDE_VISUALLY)) { + //TODO port: show NBT in advanced display + /*if (flag.isAdvanced()) { + components.add(Component.literal("").append(NbtUtils.toPrettyComponent(datum))); + }*/ + } else if (stack.has(HexDataComponents.VISUAL_OVERRIDE)) { components.add(Component.translatable("hexcasting.spelldata.onitem", Component.translatable("hexcasting.spelldata.anything").withStyle(ChatFormatting.LIGHT_PURPLE))); } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/item/PigmentItem.java b/Common/src/main/java/at/petrak/hexcasting/api/item/PigmentItem.java index 06829c4b16..7c6f979f23 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/item/PigmentItem.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/item/PigmentItem.java @@ -1,6 +1,9 @@ package at.petrak.hexcasting.api.item; import at.petrak.hexcasting.api.pigment.ColorProvider; +import com.mojang.serialization.Codec; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.animal.Pig; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.ApiStatus; @@ -16,3 +19,5 @@ public interface PigmentItem { ColorProvider provideColor(ItemStack stack, UUID owner); } + + diff --git a/Common/src/main/java/at/petrak/hexcasting/api/item/VariantItem.java b/Common/src/main/java/at/petrak/hexcasting/api/item/VariantItem.java index 6bdca2d2d7..d242fe9edb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/item/VariantItem.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/item/VariantItem.java @@ -1,6 +1,7 @@ package at.petrak.hexcasting.api.item; import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexDataComponents; import net.minecraft.world.item.ItemStack; /** @@ -10,16 +11,16 @@ * and the appropriate cap/CC will be attached. */ public interface VariantItem { - String TAG_VARIANT = "variant"; int numVariants(); default int getVariant(ItemStack stack) { - return NBTHelper.getInt(stack, TAG_VARIANT, 0); + var variant = stack.get(HexDataComponents.VARIANT); + return variant != null ? variant : 0; } default void setVariant(ItemStack stack, int variant) { - NBTHelper.putInt(stack, TAG_VARIANT, clampVariant(variant)); + stack.set(HexDataComponents.VARIANT, clampVariant(variant)); } default int clampVariant(int variant) { diff --git a/Common/src/main/java/at/petrak/hexcasting/api/mod/HexConfig.java b/Common/src/main/java/at/petrak/hexcasting/api/mod/HexConfig.java index 19458cbc8e..f22b1b82a2 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/mod/HexConfig.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/mod/HexConfig.java @@ -67,6 +67,8 @@ public interface ServerConfigAccess { boolean isActionAllowedInCircles(ResourceLocation actionID); + boolean doesGreaterTeleportSplatItems(); + boolean doVillagersTakeOffenseAtMindMurder(); // fun fact, although dimension keys are a RegistryHolder, they aren't a registry, so i can't do tags @@ -74,10 +76,15 @@ public interface ServerConfigAccess { boolean trueNameHasAmbit(); + double traderScrollChance(); + int DEFAULT_MAX_OP_COUNT = 100_000; int DEFAULT_MAX_SPELL_CIRCLE_LENGTH = 1024; int DEFAULT_OP_BREAK_HARVEST_LEVEL = 3; + double DEFAULT_TRADER_SCROLL_CHANCE = 0.2; + boolean DEFAULT_GREATER_TELEPORT_SPLATS_ITEMS = true; + boolean DEFAULT_VILLAGERS_DISLIKE_MIND_MURDER = true; List DEFAULT_DIM_TP_DENYLIST = List.of("twilightforest:twilight_forest"); @@ -99,11 +106,9 @@ default Tier opBreakHarvestLevel() { // Simple extensions for resource location configs public static boolean anyMatch(List keys, ResourceLocation key) { for (String s : keys) { - if (ResourceLocation.isValidResourceLocation(s)) { - var rl = new ResourceLocation(s); - if (rl.equals(key)) { - return true; - } + var rl = ResourceLocation.tryParse(s); + if (rl != null && rl.equals(key)) { + return true; } } return false; diff --git a/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java b/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java index 238afae719..a9c5b2d4e7 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java @@ -47,6 +47,8 @@ public static final class Blocks { public static final TagKey CHEAP_TO_BREAK_BLOCK = create("cheap_to_break_block"); + public static final TagKey HEX_UNBREAKABLE = create("hex_unbreakable"); + public static TagKey create(String name) { return TagKey.create(Registries.BLOCK, modLoc(name)); } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/pigment/FrozenPigment.java b/Common/src/main/java/at/petrak/hexcasting/api/pigment/FrozenPigment.java index f5cd478e0e..b9a42d6680 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/pigment/FrozenPigment.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/pigment/FrozenPigment.java @@ -2,8 +2,14 @@ import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.xplat.IXplatAbstractions; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.Util; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.UUIDUtil; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import java.util.UUID; @@ -16,33 +22,20 @@ * Get it once, and then query it a lot. */ public record FrozenPigment(ItemStack item, UUID owner) { - - public static final String TAG_STACK = "stack"; - public static final String TAG_OWNER = "owner"; - public static final Supplier DEFAULT = - () -> new FrozenPigment(new ItemStack(HexItems.DEFAULT_PIGMENT), Util.NIL_UUID); - - public CompoundTag serializeToNBT() { - var out = new CompoundTag(); - out.put(TAG_STACK, this.item.save(new CompoundTag())); - out.putUUID(TAG_OWNER, this.owner); - return out; - } - - public static FrozenPigment fromNBT(CompoundTag tag) { - if (tag.isEmpty()) { - return FrozenPigment.DEFAULT.get(); - } - try { - CompoundTag stackTag = tag.getCompound(TAG_STACK); - var stack = ItemStack.of(stackTag); - var uuid = tag.getUUID(TAG_OWNER); - return new FrozenPigment(stack, uuid); - } catch (NullPointerException exn) { - return FrozenPigment.DEFAULT.get(); - } - } + () -> new FrozenPigment(new ItemStack(HexItems.DEFAULT_PIGMENT), Util.NIL_UUID); + + public static Codec CODEC = RecordCodecBuilder.create(inst -> + inst.group( + ItemStack.CODEC.fieldOf("stack").forGetter(FrozenPigment::item), + UUIDUtil.CODEC.fieldOf("owner").forGetter(FrozenPigment::owner) + ).apply(inst, FrozenPigment::new)).orElseGet(FrozenPigment.DEFAULT); + //TODO port: maybe default here too somehow?.. + public static StreamCodec STREAM_CODEC = StreamCodec.composite( + ItemStack.STREAM_CODEC, FrozenPigment::item, + UUIDUtil.STREAM_CODEC, FrozenPigment::owner, + FrozenPigment::new + ); public ColorProvider getColorProvider() { return IXplatAbstractions.INSTANCE.getColorProvider(this); diff --git a/Common/src/main/java/at/petrak/hexcasting/api/player/AltioraAbility.java b/Common/src/main/java/at/petrak/hexcasting/api/player/AltioraAbility.java index 304a02121d..b16c295711 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/player/AltioraAbility.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/player/AltioraAbility.java @@ -1,5 +1,9 @@ package at.petrak.hexcasting.api.player; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; + /** * Note that this just keeps track of state, actually giving the player the elytra ability is handled * differently per platform @@ -7,4 +11,8 @@ * @param gracePeriod so the flight isn't immediately removed because the player started on the ground */ public record AltioraAbility(int gracePeriod) { + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.VAR_INT.map( + AltioraAbility::new, + AltioraAbility::gracePeriod + ).mapStream(b -> b); } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/player/Sentinel.java b/Common/src/main/java/at/petrak/hexcasting/api/player/Sentinel.java index 867b4fca34..189a88b74a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/player/Sentinel.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/player/Sentinel.java @@ -1,5 +1,10 @@ package at.petrak.hexcasting.api.player; +import at.petrak.paucal.api.PaucalCodecs; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; @@ -8,4 +13,11 @@ * A null sentinel means no sentinel */ public record Sentinel(boolean extendsRange, Vec3 position, ResourceKey dimension) { + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.BOOL, Sentinel::extendsRange, + PaucalCodecs.VEC3, Sentinel::position, + ResourceKey.streamCodec(Registries.DIMENSION), Sentinel::dimension, + Sentinel::new + ); } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/utils/HexUtils.kt b/Common/src/main/java/at/petrak/hexcasting/api/utils/HexUtils.kt index 7629783a56..ad323acaf8 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/utils/HexUtils.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/utils/HexUtils.kt @@ -7,6 +7,8 @@ import at.petrak.hexcasting.api.casting.iota.IotaType import at.petrak.hexcasting.api.casting.iota.ListIota import at.petrak.hexcasting.api.casting.math.HexCoord import net.minecraft.ChatFormatting +import net.minecraft.advancements.AdvancementHolder +import net.minecraft.core.HolderLookup import net.minecraft.core.Registry import net.minecraft.nbt.* import net.minecraft.network.chat.Component @@ -14,12 +16,15 @@ import net.minecraft.network.chat.MutableComponent import net.minecraft.network.chat.Style import net.minecraft.resources.ResourceKey import net.minecraft.resources.ResourceLocation +import net.minecraft.server.ServerAdvancementManager import net.minecraft.tags.TagKey import net.minecraft.world.InteractionHand +import net.minecraft.world.item.ItemStack import net.minecraft.world.phys.Vec2 import net.minecraft.world.phys.Vec3 import java.lang.ref.WeakReference import java.util.* +import kotlin.jvm.optionals.getOrNull import kotlin.math.absoluteValue import kotlin.math.max import kotlin.math.min @@ -43,7 +48,6 @@ fun vecFromNBT(tag: LongArray): Vec3 = if (tag.size != 3) Vec3.ZERO else Double.fromBits(tag[1]), Double.fromBits(tag[2]) ) - fun vecFromNBT(tag: CompoundTag): Vec3 { return if (!tag.contains("x") || !tag.contains("y") || !tag.contains("z")) Vec3.ZERO @@ -258,15 +262,6 @@ inline operator fun WeakValue.setValue(thisRef: Any?, property: KProperty this.value = value } -/** - * Returns an empty list if it's too complicated. - */ -fun Iterable.serializeToNBT() = - if (IotaType.isTooLargeToSerialize(this)) - ListTag() - else - ListIota(this.toList()).serialize() - fun Iterable.serializeToNBT(): ByteArrayTag { val out = ByteArray(if (this is Collection<*>) this.size else 10) for ((i, b) in this.withIndex()) { @@ -282,13 +277,12 @@ fun List.zipWithDefault(array: ByteArray, default: (idx: Int) -> Byte): L return list } -// -//// Copy the impl from forge -//fun ItemStack.serializeToNBT(): CompoundTag { -// val out = CompoundTag() -// this.save(out) -// return out -//} + +fun ItemStack.serializeToNBT(provider: HolderLookup.Provider): CompoundTag { + val out = CompoundTag() + save(provider, out) + return out +} @Suppress("UNCHECKED_CAST") @Throws(IllegalArgumentException::class) @@ -313,3 +307,5 @@ fun isOfTag(registry: Registry, loc: ResourceLocation, tag: TagKey): B val key = ResourceKey.create(registry.key(), loc); return isOfTag(registry, key, tag) } + + diff --git a/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTHelper.kt b/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTHelper.kt index f72ee92e31..15095adb09 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTHelper.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTHelper.kt @@ -1,12 +1,15 @@ @file:JvmName("NBTHelper") -// TODO this entire file needs to be HEAVILY refactored. also i need to understand components - package at.petrak.hexcasting.api.utils +import net.minecraft.advancements.AdvancementHolder +import net.minecraft.core.component.DataComponents import net.minecraft.nbt.* +import net.minecraft.server.ServerAdvancementManager import net.minecraft.world.item.ItemStack +import net.minecraft.world.item.component.CustomData import java.util.* +import kotlin.jvm.optionals.getOrNull private inline fun T?.getIf(key: K, predicate: T?.(K) -> Boolean, get: T.(K) -> E): E? = getIf(key, predicate, get, null) @@ -17,6 +20,16 @@ private inline fun T?.getIf(key: K, predicate: T?.(K) -> Boolean return default } +fun AdvancementHolder.isChildOf(root: AdvancementHolder, serverAdvancementManager: ServerAdvancementManager): Boolean { + var current = this + while (true) { + if (current.equals(root)) return true + var parentOpt = serverAdvancementManager.get(current.value.parent.getOrNull() ?: return false) ?: return false + + current = parentOpt + } +} + // ======================================================================================================== CompoundTag // Checks for containment @@ -117,12 +130,9 @@ fun CompoundTag.getList(key: String, objType: Byte): ListTag = getList(key, objT // Get-or-create -fun CompoundTag.getOrCreateCompound(key: String): CompoundTag = - getCompound(key) ?: CompoundTag().also { putCompound(key, it) } - +fun CompoundTag.getOrCreateCompound(key: String): CompoundTag = getCompound(key) ?: CompoundTag().also { putCompound(key, it) } fun CompoundTag.getOrCreateList(key: String, objType: Byte) = getOrCreateList(key, objType.toInt()) -fun CompoundTag.getOrCreateList(key: String, objType: Int): ListTag = - if (hasList(key, objType)) getList(key, objType) else ListTag().also { putList(key, it) } +fun CompoundTag.getOrCreateList(key: String, objType: Int): ListTag = if (hasList(key, objType)) getList(key, objType) else ListTag().also { putList(key, it) } // ================================================================================================================ Tag @@ -141,12 +151,10 @@ val Tag.asLongArray: LongArray val array = this.asIntArray LongArray(array.size) { array[it].toLong() } } - is ByteArrayTag -> { val array = this.asByteArray LongArray(array.size) { array[it].toLong() } } - else -> LongArray(0) } @@ -157,12 +165,10 @@ val Tag.asIntArray: IntArray val array = this.asLongArray IntArray(array.size) { array[it].toInt() } } - is ByteArrayTag -> { val array = this.asByteArray IntArray(array.size) { array[it].toInt() } } - else -> IntArray(0) } @@ -173,12 +179,10 @@ val Tag.asByteArray: ByteArray val array = this.asLongArray ByteArray(array.size) { array[it].toByte() } } - is IntArrayTag -> { val array = this.asIntArray ByteArray(array.size) { array[it].toByte() } } - else -> ByteArray(0) } @@ -187,98 +191,3 @@ val Tag.asCompound get() = this as? CompoundTag ?: CompoundTag() // asString is defined in Tag val Tag.asList get() = this as? ListTag ?: ListTag() val Tag.asUUID: UUID get() = if (this is IntArrayTag && this.size == 4) NbtUtils.loadUUID(this) else UUID(0, 0) - -// ========================================================================================================== ItemStack - -// Checks for containment - -fun ItemStack.hasNumber(key: String) = tag.hasNumber(key) -fun ItemStack.hasByte(key: String) = tag.hasByte(key) -fun ItemStack.hasShort(key: String) = tag.hasShort(key) -fun ItemStack.hasInt(key: String) = tag.hasInt(key) -fun ItemStack.hasLong(key: String) = tag.hasLong(key) -fun ItemStack.hasFloat(key: String) = tag.hasFloat(key) -fun ItemStack.hasDouble(key: String) = tag.hasDouble(key) -fun ItemStack.hasLongArray(key: String) = tag.hasLongArray(key) -fun ItemStack.hasIntArray(key: String) = tag.hasIntArray(key) -fun ItemStack.hasByteArray(key: String) = tag.hasByteArray(key) -fun ItemStack.hasCompound(key: String) = tag.hasCompound(key) -fun ItemStack.hasString(key: String) = tag.hasString(key) -fun ItemStack.hasList(key: String) = tag.hasList(key) -fun ItemStack.hasList(key: String, objType: Int) = tag.hasList(key, objType) -fun ItemStack.hasList(key: String, objType: Byte) = tag.hasList(key, objType) -fun ItemStack.hasUUID(key: String) = tag.hasUUID(key) - -@JvmName("contains") -fun ItemStack.containsTag(key: String) = tag.contains(key) - -@JvmName("contains") -fun ItemStack.containsTag(key: String, id: Byte) = tag.contains(key, id) - -@JvmName("contains") -fun ItemStack.containsTag(key: String, id: Int) = tag.contains(key, id) - -// Puts - -fun ItemStack.putBoolean(key: String, value: Boolean) = orCreateTag.putBoolean(key, value) -fun ItemStack.putByte(key: String, value: Byte) = orCreateTag.putByte(key, value) -fun ItemStack.putShort(key: String, value: Short) = orCreateTag.putShort(key, value) -fun ItemStack.putInt(key: String, value: Int) = orCreateTag.putInt(key, value) -fun ItemStack.putLong(key: String, value: Long) = orCreateTag.putLong(key, value) -fun ItemStack.putFloat(key: String, value: Float) = orCreateTag.putFloat(key, value) -fun ItemStack.putDouble(key: String, value: Double) = orCreateTag.putDouble(key, value) - -fun ItemStack.putLongArray(key: String, value: LongArray) = orCreateTag.putLongArray(key, value) -fun ItemStack.putIntArray(key: String, value: IntArray) = orCreateTag.putIntArray(key, value) -fun ItemStack.putByteArray(key: String, value: ByteArray) = orCreateTag.putByteArray(key, value) -fun ItemStack.putCompound(key: String, value: CompoundTag) = putTag(key, value) -fun ItemStack.putString(key: String, value: String) = orCreateTag.putString(key, value) -fun ItemStack.putList(key: String, value: ListTag) = putTag(key, value) -fun ItemStack.putUUID(key: String, value: UUID) = orCreateTag.putUUID(key, value) - -@JvmName("put") -fun ItemStack.putTag(key: String, value: Tag) = orCreateTag.put(key, value) - -// Remove - -fun ItemStack.remove(key: String) = removeTagKey(key) - -// Gets - -@JvmOverloads -fun ItemStack.getBoolean(key: String, defaultExpected: Boolean = false) = tag.getBoolean(key, defaultExpected) - -@JvmOverloads -fun ItemStack.getByte(key: String, defaultExpected: Byte = 0) = tag.getByte(key, defaultExpected) - -@JvmOverloads -fun ItemStack.getShort(key: String, defaultExpected: Short = 0) = tag.getShort(key, defaultExpected) - -@JvmOverloads -fun ItemStack.getInt(key: String, defaultExpected: Int = 0) = tag.getInt(key, defaultExpected) - -@JvmOverloads -fun ItemStack.getLong(key: String, defaultExpected: Long = 0) = tag.getLong(key, defaultExpected) - -@JvmOverloads -fun ItemStack.getFloat(key: String, defaultExpected: Float = 0f) = tag.getFloat(key, defaultExpected) - -@JvmOverloads -fun ItemStack.getDouble(key: String, defaultExpected: Double = 0.0) = tag.getDouble(key, defaultExpected) - -fun ItemStack.getLongArray(key: String) = tag.getLongArray(key) -fun ItemStack.getIntArray(key: String) = tag.getIntArray(key) -fun ItemStack.getByteArray(key: String) = tag.getByteArray(key) -fun ItemStack.getCompound(key: String) = tag.getCompound(key) -fun ItemStack.getString(key: String) = tag.getString(key) -fun ItemStack.getList(key: String, objType: Int) = tag.getList(key, objType) -fun ItemStack.getUUID(key: String) = tag.getUUID(key) - -@JvmName("get") -fun ItemStack.getTag(key: String) = tag.get(key) - -// Get-or-create - -fun ItemStack.getOrCreateCompound(key: String): CompoundTag = getOrCreateTagElement(key) -fun ItemStack.getOrCreateList(key: String, objType: Byte) = orCreateTag.getOrCreateList(key, objType) -fun ItemStack.getOrCreateList(key: String, objType: Int) = orCreateTag.getOrCreateList(key, objType) diff --git a/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java b/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java index 75658fa63a..7c6ca4973b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java @@ -22,6 +22,7 @@ import at.petrak.hexcasting.common.items.storage.*; import at.petrak.hexcasting.common.lib.HexBlockEntities; import at.petrak.hexcasting.common.lib.HexBlocks; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.xplat.IClientXplatAbstractions; import net.minecraft.client.color.block.BlockColor; @@ -30,7 +31,9 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.ModelBakery; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.core.Registry; +import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; @@ -56,25 +59,27 @@ public class RegisterClientStuff { public static void init() { registerSealableDataHolderOverrides(HexItems.FOCUS, - stack -> HexItems.FOCUS.readIotaTag(stack) != null, + stack -> stack.has(HexDataComponents.IOTA), ItemFocus::isSealed); registerSealableDataHolderOverrides(HexItems.SPELLBOOK, - stack -> HexItems.SPELLBOOK.readIotaTag(stack) != null, + stack -> HexItems.SPELLBOOK.readIota(stack) != null, ItemSpellbook::isSealed); registerVariantOverrides(HexItems.FOCUS, HexItems.FOCUS::getVariant); registerVariantOverrides(HexItems.SPELLBOOK, HexItems.SPELLBOOK::getVariant); + registerVariantOverrides(HexItems.ANCIENT_CYPHER, HexItems.ANCIENT_CYPHER::getVariant); registerVariantOverrides(HexItems.CYPHER, HexItems.CYPHER::getVariant); registerVariantOverrides(HexItems.TRINKET, HexItems.TRINKET::getVariant); registerVariantOverrides(HexItems.ARTIFACT, HexItems.ARTIFACT::getVariant); IClientXplatAbstractions.INSTANCE.registerItemProperty(HexItems.THOUGHT_KNOT, ItemThoughtKnot.WRITTEN_PRED, (stack, level, holder, holderID) -> { - if (NBTHelper.contains(stack, ItemThoughtKnot.TAG_DATA)) { + if (stack.has(HexDataComponents.IOTA)) { return 1; } else { return 0; } }); + registerPackagedSpellOverrides(HexItems.ANCIENT_CYPHER); registerPackagedSpellOverrides(HexItems.CYPHER); registerPackagedSpellOverrides(HexItems.TRINKET); registerPackagedSpellOverrides(HexItems.ARTIFACT); @@ -132,7 +137,7 @@ public static void init() { x.registerEntityRenderer(HexEntities.WALL_SCROLL, WallScrollRenderer::new); -// for (var tex : new ResourceLocation[]{ +// for (var tex : ResourceLocation.fromNamespaceAndPath[]{ // PatternTooltipComponent.PRISTINE_BG, // PatternTooltipComponent.ANCIENT_BG, // PatternTooltipComponent.SLATE_BG @@ -164,11 +169,11 @@ public static void registerColorProviders(BiConsumer itemColorR // this gets called for particles for some irritating reason return 0xff_ffffff; } - var iotaTag = beas.getIotaTag(); - if (iotaTag == null) { + var iota = beas.getIota(); + if (iota == null) { return 0xff_ffffff; } - return IotaType.getColor(iotaTag); + return iota.getType().color(); }, HexBlocks.AKASHIC_BOOKSHELF); } @@ -190,7 +195,7 @@ private static void registerSealableDataHolderOverrides(IotaHolderItem item, Pre Predicate isSealed) { IClientXplatAbstractions.INSTANCE.registerItemProperty((Item) item, ItemFocus.OVERLAY_PRED, (stack, level, holder, holderID) -> { - if (!hasIota.test(stack) && !NBTHelper.hasString(stack, IotaHolderItem.TAG_OVERRIDE_VISUALLY)) { + if (!hasIota.test(stack) && !stack.has(HexDataComponents.VISUAL_OVERRIDE)) { return 0; } if (!isSealed.test(stack)) { @@ -207,7 +212,7 @@ private static void registerVariantOverrides(VariantItem item, Function NBTHelper.hasString(stack, ItemScroll.TAG_OP_ID) ? 1f : 0f); + (stack, level, holder, holderID) -> stack.has(HexDataComponents.ACTION) ? 1f : 0f); } private static void registerPackagedSpellOverrides(ItemPackagedHex item) { @@ -220,7 +225,7 @@ private static void registerPackagedSpellOverrides(ItemPackagedHex item) { private static void registerWandOverrides(ItemStaff item) { IClientXplatAbstractions.INSTANCE.registerItemProperty(item, ItemStaff.FUNNY_LEVEL_PREDICATE, (stack, level, holder, holderID) -> { - if (!stack.hasCustomHoverName()) { + if (!stack.has(DataComponents.CUSTOM_NAME)) { return 0; } var name = stack.getHoverName().getString().toLowerCase(Locale.ROOT); @@ -254,7 +259,7 @@ void registerBlockEntityRenderer(BlockEntityType type BlockEntityRendererProvider berp); } - public static void onModelRegister(ResourceManager recMan, Consumer extraModels) { + public static void onModelRegister(ResourceManager recMan, Consumer extraModels) { for (var type : QUENCHED_ALLAY_TYPES.entrySet()) { var blockLoc = BuiltInRegistries.BLOCK.getKey(type.getKey()); var locStart = "block/"; @@ -262,12 +267,30 @@ public static void onModelRegister(ResourceManager recMan, Consumer map) { + @FunctionalInterface + public interface FabricModelContext { + void add(ResourceLocation id); + } + + public static void onModelRegister(FabricModelContext context) { + for (var type : QUENCHED_ALLAY_TYPES.entrySet()) { + var blockLoc = BuiltInRegistries.BLOCK.getKey(type.getKey()); + var locStart = "block/"; + if (type.getValue()) + locStart += "deco/"; + + for (int i = 0; i < BlockQuenchedAllay.VARIANTS; i++) { + context.add(modLoc( locStart + blockLoc.getPath() + "_" + i)); + } + } + } + + public static void onModelBake(ModelBakery loader, Map map) { for (var type : QUENCHED_ALLAY_TYPES.entrySet()) { var blockLoc = BuiltInRegistries.BLOCK.getKey(type.getKey()); var locStart = "block/"; @@ -276,7 +299,7 @@ public static void onModelBake(ModelBakery loader, Map(); for (int i = 0; i < BlockQuenchedAllay.VARIANTS; i++) { - var variantLoc = modLoc(locStart + blockLoc.getPath() + "_" + i); + var variantLoc = new ModelResourceLocation(modLoc(locStart + blockLoc.getPath() + "_" + i), IClientXplatAbstractions.INSTANCE.getModelLocVariant()); var model = map.get(variantLoc); list.add(model); } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/entity/WallScrollRenderer.java b/Common/src/main/java/at/petrak/hexcasting/client/entity/WallScrollRenderer.java index d17e617cd9..9e88bcf384 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/entity/WallScrollRenderer.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/entity/WallScrollRenderer.java @@ -56,42 +56,41 @@ public void render(EntityWallScroll wallScroll, float yaw, float partialTicks, P float margin = 1f / 48f; var last = ps.last(); var mat = last.pose(); - var norm = last.normal(); RenderType layer = RenderType.entityCutout(this.getTextureLocation(wallScroll)); var verts = bufSource.getBuffer(layer); // Remember: CCW // Front face - vertex(mat, norm, light, verts, 0, 0, dz, 0, 0, 0, 0, -1); - vertex(mat, norm, light, verts, 0, dy, dz, 0, 1, 0, 0, -1); - vertex(mat, norm, light, verts, dx, dy, dz, 1, 1, 0, 0, -1); - vertex(mat, norm, light, verts, dx, 0, dz, 1, 0, 0, 0, -1); + vertex(mat, last, light, verts, 0, 0, dz, 0, 0, 0, 0, -1); + vertex(mat, last, light, verts, 0, dy, dz, 0, 1, 0, 0, -1); + vertex(mat, last, light, verts, dx, dy, dz, 1, 1, 0, 0, -1); + vertex(mat, last, light, verts, dx, 0, dz, 1, 0, 0, 0, -1); // Back face - vertex(mat, norm, light, verts, 0, 0, 0, 0, 0, 0, 0, 1); - vertex(mat, norm, light, verts, dx, 0, 0, 1, 0, 0, 0, 1); - vertex(mat, norm, light, verts, dx, dy, 0, 1, 1, 0, 0, 1); - vertex(mat, norm, light, verts, 0, dy, 0, 0, 1, 0, 0, 1); + vertex(mat, last, light, verts, 0, 0, 0, 0, 0, 0, 0, 1); + vertex(mat, last, light, verts, dx, 0, 0, 1, 0, 0, 0, 1); + vertex(mat, last, light, verts, dx, dy, 0, 1, 1, 0, 0, 1); + vertex(mat, last, light, verts, 0, dy, 0, 0, 1, 0, 0, 1); // Top face - vertex(mat, norm, light, verts, 0, 0, 0, 0, 0, 0, -1, 0); - vertex(mat, norm, light, verts, 0, 0, dz, 0, margin, 0, -1, 0); - vertex(mat, norm, light, verts, dx, 0, dz, 1, margin, 0, -1, 0); - vertex(mat, norm, light, verts, dx, 0, 0, 1, 0, 0, -1, 0); + vertex(mat, last, light, verts, 0, 0, 0, 0, 0, 0, -1, 0); + vertex(mat, last, light, verts, 0, 0, dz, 0, margin, 0, -1, 0); + vertex(mat, last, light, verts, dx, 0, dz, 1, margin, 0, -1, 0); + vertex(mat, last, light, verts, dx, 0, 0, 1, 0, 0, -1, 0); // Left face - vertex(mat, norm, light, verts, 0, 0, 0, 0, 0, -1, 0, 0); - vertex(mat, norm, light, verts, 0, dy, 0, 0, 1, -1, 0, 0); - vertex(mat, norm, light, verts, 0, dy, dz, margin, 1, -1, 0, 0); - vertex(mat, norm, light, verts, 0, 0, dz, margin, 0, -1, 0, 0); + vertex(mat, last, light, verts, 0, 0, 0, 0, 0, -1, 0, 0); + vertex(mat, last, light, verts, 0, dy, 0, 0, 1, -1, 0, 0); + vertex(mat, last, light, verts, 0, dy, dz, margin, 1, -1, 0, 0); + vertex(mat, last, light, verts, 0, 0, dz, margin, 0, -1, 0, 0); // Right face - vertex(mat, norm, light, verts, dx, 0, dz, 1 - margin, 0, 1, 0, 0); - vertex(mat, norm, light, verts, dx, dy, dz, 1 - margin, 1, 1, 0, 0); - vertex(mat, norm, light, verts, dx, dy, 0, 1, 1, 1, 0, 0); - vertex(mat, norm, light, verts, dx, 0, 0, 1, 0, 1, 0, 0); + vertex(mat, last, light, verts, dx, 0, dz, 1 - margin, 0, 1, 0, 0); + vertex(mat, last, light, verts, dx, dy, dz, 1 - margin, 1, 1, 0, 0); + vertex(mat, last, light, verts, dx, dy, 0, 1, 1, 1, 0, 0); + vertex(mat, last, light, verts, dx, 0, 0, 1, 0, 1, 0, 0); // Bottom face - vertex(mat, norm, light, verts, 0, dy, dz, 0, 1 - margin, 0, 1, 0); - vertex(mat, norm, light, verts, 0, dy, 0, 0, 1, 0, 1, 0); - vertex(mat, norm, light, verts, dx, dy, 0, 1, 1, 0, 1, 0); - vertex(mat, norm, light, verts, dx, dy, dz, 1, 1 - margin, 0, 1, 0); + vertex(mat, last, light, verts, 0, dy, dz, 0, 1 - margin, 0, 1, 0); + vertex(mat, last, light, verts, 0, dy, 0, 0, 1, 0, 1, 0); + vertex(mat, last, light, verts, dx, dy, 0, 1, 1, 0, 1, 0); + vertex(mat, last, light, verts, dx, dy, dz, 1, 1 - margin, 0, 1, 0); ps.popPose(); @@ -124,13 +123,14 @@ public ResourceLocation getTextureLocation(EntityWallScroll wallScroll) { } } - private static void vertex(Matrix4f mat, Matrix3f normal, int light, VertexConsumer verts, float x, float y, + private static void vertex(Matrix4f mat, PoseStack.Pose last, int light, VertexConsumer verts, float x, float y, float z, float u, float v, float nx, float ny, float nz) { - verts.vertex(mat, x, y, z) - .color(0xffffffff) - .uv(u, v).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light) - .normal(normal, nx, ny, nz) - .endVertex(); + verts.addVertex(mat, x, y, z) + .setColor(0xffffffff) + .setUv(u, v) + .setOverlay(OverlayTexture.NO_OVERLAY) + .setLight(light) + .setNormal(last, nx, ny, nz); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/gui/GuiSpellcasting.kt b/Common/src/main/java/at/petrak/hexcasting/client/gui/GuiSpellcasting.kt index 0a9f66cd2b..b45e4923ac 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/gui/GuiSpellcasting.kt +++ b/Common/src/main/java/at/petrak/hexcasting/client/gui/GuiSpellcasting.kt @@ -3,6 +3,7 @@ package at.petrak.hexcasting.client.gui import at.petrak.hexcasting.api.casting.eval.ExecutionClientView import at.petrak.hexcasting.api.casting.eval.ResolvedPattern import at.petrak.hexcasting.api.casting.eval.ResolvedPatternType +import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.casting.iota.IotaType import at.petrak.hexcasting.api.casting.math.HexAngle import at.petrak.hexcasting.api.casting.math.HexCoord @@ -28,7 +29,9 @@ import net.minecraft.client.gui.screens.Screen import net.minecraft.client.renderer.GameRenderer import net.minecraft.client.resources.sounds.SimpleSoundInstance import net.minecraft.client.resources.sounds.SoundInstance +import net.minecraft.core.Holder import net.minecraft.nbt.CompoundTag +import net.minecraft.nbt.NbtOps import net.minecraft.sounds.SoundSource import net.minecraft.util.FormattedCharSequence import net.minecraft.util.Mth @@ -40,7 +43,7 @@ import kotlin.math.* class GuiSpellcasting constructor( private val handOpenedWith: InteractionHand, private var patterns: MutableList, - private var cachedStack: List, + private var cachedStack: List, private var cachedRavenmind: CompoundTag?, private var parenCount: Int, ) : Screen("gui.hexcasting.spellcasting".asTranslatedComponent) { @@ -85,7 +88,7 @@ class GuiSpellcasting constructor( val mc = Minecraft.getInstance() val width = (this.width * LHS_IOTAS_ALLOCATION).toInt() this.stackDescs = - this.cachedStack.map { IotaType.getDisplayWithMaxWidth(it, width, mc.font) } + this.cachedStack.map { it.displayWithMaxWidth(width, mc.font) } .asReversed() // this.parenDescs = if (this.cachedParens.isNotEmpty()) // this.cachedParens.flatMap { HexIotaTypes.getDisplayWithMaxWidth(it, width, mc.font) } @@ -96,8 +99,8 @@ class GuiSpellcasting constructor( this.parenDescs = emptyList() this.ravenmind = this.cachedRavenmind?.let { - IotaType.getDisplayWithMaxWidth( - it, + val iota = IotaType.TYPED_CODEC.parse(NbtOps.INSTANCE, it).getOrThrow() + iota.displayWithMaxWidth( (this.width * RHS_IOTAS_ALLOCATION).toInt(), mc.font ) @@ -122,7 +125,7 @@ class GuiSpellcasting constructor( val player = minecraft.player if (player != null) { val heldItem = player.getItemInHand(handOpenedWith) - if (heldItem.isEmpty || !heldItem.`is`(HexTags.Items.STAVES)) + if (heldItem.isEmpty || !heldItem.`is`(HexTags.Items.STAVES) || player.getAttributeValue(HexAttributes.FEEBLE_MIND) > 0) closeForReal() } } @@ -291,16 +294,16 @@ class GuiSpellcasting constructor( return false } - override fun mouseScrolled(pMouseX: Double, pMouseY: Double, pDelta: Double): Boolean { - super.mouseScrolled(pMouseX, pMouseY, pDelta) + override fun mouseScrolled(mouseX: Double, mouseY: Double, scrollX: Double, scrollY: Double): Boolean { + super.mouseScrolled(mouseX, mouseY, scrollX, scrollY) val mouseHandler = Minecraft.getInstance().mouseHandler - if (mouseHandler.accumulatedScroll != 0.0 && sign(pDelta) != sign(mouseHandler.accumulatedScroll)) { + if (mouseHandler.accumulatedScroll != 0.0 && sign(scrollY) != sign(mouseHandler.accumulatedScroll)) { mouseHandler.accumulatedScroll = 0.0 } - mouseHandler.accumulatedScroll += pDelta + mouseHandler.accumulatedScroll += scrollY val accumulation: Int = mouseHandler.accumulatedScroll.toInt() if (accumulation == 0) { return true @@ -308,7 +311,7 @@ class GuiSpellcasting constructor( mouseHandler.accumulatedScroll -= accumulation.toDouble() - ShiftScrollListener.onScroll(pDelta, false) + ShiftScrollListener.onScroll(scrollY, false) return true } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/ktxt/ClientAccessorWrappers.kt b/Common/src/main/java/at/petrak/hexcasting/client/ktxt/ClientAccessorWrappers.kt index 5863d7f050..94dc5b0d13 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/ktxt/ClientAccessorWrappers.kt +++ b/Common/src/main/java/at/petrak/hexcasting/client/ktxt/ClientAccessorWrappers.kt @@ -5,5 +5,5 @@ import at.petrak.hexcasting.mixin.accessor.client.AccessorMouseHandler import net.minecraft.client.MouseHandler var MouseHandler.accumulatedScroll: Double - get() = (this as AccessorMouseHandler).`hex$getAccumulatedScroll`() - set(value) = (this as AccessorMouseHandler).`hex$setAccumulatedScroll`(value) + get() = (this as AccessorMouseHandler).`hex$getAccumulatedScrollY`() + set(value) = (this as AccessorMouseHandler).`hex$setAccumulatedScrollY`(value) diff --git a/Common/src/main/java/at/petrak/hexcasting/client/model/AltioraLayer.java b/Common/src/main/java/at/petrak/hexcasting/client/model/AltioraLayer.java index a354d6eba3..07cbcd3d6f 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/model/AltioraLayer.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/model/AltioraLayer.java @@ -43,8 +43,9 @@ public void render(PoseStack ps, MultiBufferSource buffer, int packedLight, Abst this.getParentModel().copyPropertiesTo(this.elytraModel); this.elytraModel.setupAnim(player, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch); VertexConsumer verts = ItemRenderer.getArmorFoilBuffer( - buffer, RenderType.armorCutoutNoCull(TEX_LOC), false, true); - this.elytraModel.renderToBuffer(ps, verts, packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); + buffer, RenderType.armorCutoutNoCull(TEX_LOC), true); + // TODO port: check color + this.elytraModel.renderToBuffer(ps, verts, packedLight, OverlayTexture.NO_OVERLAY, -1); ps.popPose(); } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/model/MyOwnArmorModelWithBlackjackAndHookers.java b/Common/src/main/java/at/petrak/hexcasting/client/model/MyOwnArmorModelWithBlackjackAndHookers.java index fc63fcdf72..0bdd3fb2d1 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/model/MyOwnArmorModelWithBlackjackAndHookers.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/model/MyOwnArmorModelWithBlackjackAndHookers.java @@ -52,10 +52,9 @@ public void setupAnim(LivingEntity entity, float limbSwing, float limbSwingAmoun } @Override - public void renderToBuffer(PoseStack ms, VertexConsumer buffer, int light, int overlay, float r, float g, float b - , float a) { + public void renderToBuffer(PoseStack ms, VertexConsumer buffer, int light, int overlay, int color) { setPartVisibility(slot); - super.renderToBuffer(ms, buffer, light, overlay, r, g, b, a); + super.renderToBuffer(ms, buffer, light, overlay, color); } // [VanillaCopy] HumanoidArmorLayer diff --git a/Common/src/main/java/at/petrak/hexcasting/client/particles/ConjureParticle.java b/Common/src/main/java/at/petrak/hexcasting/client/particles/ConjureParticle.java index 122e536e75..9f0ae031a3 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/particles/ConjureParticle.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/particles/ConjureParticle.java @@ -91,7 +91,7 @@ public Particle createParticle(ConjureParticleOptions type, ClientLevel level, // https://github.com/VazkiiMods/Botania/blob/db85d778ab23f44c11181209319066d1f04a9e3d/Xplat/src/main/java/vazkii/botania/client/fx/FXWisp.java private record ConjureRenderType() implements ParticleRenderType { @Override - public void begin(BufferBuilder buf, TextureManager texMan) { + public BufferBuilder begin(Tesselator tess, TextureManager texMan) { Minecraft.getInstance().gameRenderer.lightTexture().turnOnLightLayer(); RenderSystem.depthMask(false); RenderSystem.enableBlend(); @@ -99,19 +99,9 @@ public void begin(BufferBuilder buf, TextureManager texMan) { RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_PARTICLES); var tex = texMan.getTexture(TextureAtlas.LOCATION_PARTICLES); - IClientXplatAbstractions.INSTANCE.setFilterSave(tex, true, false); - buf.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.PARTICLE); + IClientXplatAbstractions.INSTANCE.setFilterSave(tex, false, false); RenderSystem.enableDepthTest(); - } - - @Override - public void end(Tesselator tess) { - tess.end(); - IClientXplatAbstractions.INSTANCE.restoreLastFilter( - Minecraft.getInstance().getTextureManager().getTexture(TextureAtlas.LOCATION_PARTICLES) - ); - RenderSystem.disableBlend(); - RenderSystem.depthMask(true); + return tess.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.PARTICLE); } @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/HexAdditionalRenderers.java b/Common/src/main/java/at/petrak/hexcasting/client/render/HexAdditionalRenderers.java index 1861a9b8fb..2d8c543d03 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/HexAdditionalRenderers.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/HexAdditionalRenderers.java @@ -14,11 +14,13 @@ import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.datafixers.util.Pair; +import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.core.Holder; import net.minecraft.locale.Language; import net.minecraft.network.chat.FormattedText; import net.minecraft.network.chat.Style; @@ -43,7 +45,7 @@ public static void overlayLevel(PoseStack ps, float partialTick) { } } - public static void overlayGui(GuiGraphics graphics, float partialTicks) { + public static void overlayGui(GuiGraphics graphics, DeltaTracker partialTicks) { tryRenderScryingLensOverlay(graphics, partialTicks); } @@ -75,7 +77,6 @@ private static void renderSentinel(Sentinel sentinel, LocalPlayer owner, var tess = Tesselator.getInstance(); - var buf = tess.getBuilder(); var neo = ps.last().pose(); RenderSystem.enableBlend(); RenderSystem.setShader(GameRenderer::getRendertypeLinesShader); @@ -86,23 +87,23 @@ private static void renderSentinel(Sentinel sentinel, LocalPlayer owner, var pigment = IXplatAbstractions.INSTANCE.getPigment(owner); var colProvider = pigment.getColorProvider(); + + // Icosahedron inscribed inside the unit sphere + var buf = tess.begin(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL); + BiConsumer v = (l, r) -> { int lcolor = colProvider.getColor(time, new Vec3(l[0], l[1], l[2])), rcolor = colProvider.getColor(time, new Vec3(r[0], r[1], r[2])); var normal = new Vector3f(r[0] - l[0], r[1] - l[1], r[2] - l[2]); normal.normalize(); - buf.vertex(neo, l[0], l[1], l[2]) - .color(lcolor) - .normal(ps.last().normal(), normal.x(), normal.y(), normal.z()) - .endVertex(); - buf.vertex(neo, r[0], r[1], r[2]) - .color(rcolor) - .normal(ps.last().normal(), -normal.x(), -normal.y(), -normal.z()) - .endVertex(); + buf.addVertex(neo, l[0], l[1], l[2]) + .setColor(lcolor) + .setNormal(ps.last(), normal.x(), normal.y(), normal.z()); + buf.addVertex(neo, r[0], r[1], r[2]) + .setColor(rcolor) + .setNormal(ps.last(), -normal.x(), -normal.y(), -normal.z()); }; - // Icosahedron inscribed inside the unit sphere - buf.begin(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL); for (int side = 0; side <= 1; side++) { var ring = (side == 0) ? Icos.BOTTOM_RING : Icos.TOP_RING; var apex = (side == 0) ? Icos.BOTTOM : Icos.TOP; @@ -123,7 +124,7 @@ private static void renderSentinel(Sentinel sentinel, LocalPlayer owner, v.accept(Icos.TOP_RING[(i + 2) % 5], bottom); v.accept(bottom, Icos.TOP_RING[(i + 3) % 5]); } - tess.end(); + //tess.end(); RenderSystem.enableDepthTest(); RenderSystem.enableCull(); @@ -149,7 +150,7 @@ private static class Icos { } } - private static void tryRenderScryingLensOverlay(GuiGraphics graphics, float partialTicks) { + private static void tryRenderScryingLensOverlay(GuiGraphics graphics, DeltaTracker partialTicks) { var mc = Minecraft.getInstance(); var ps = graphics.pose(); @@ -159,7 +160,7 @@ private static void tryRenderScryingLensOverlay(GuiGraphics graphics, float part return; } - if (player.getAttributeValue(HexAttributes.SCRY_SIGHT) <= 0.0) + if (player.getAttributeValue(HexAttributes.SCRY_SIGHT) <= 0.0 || player.getAttributeValue(HexAttributes.FEEBLE_MIND) > 0) return; var hitRes = mc.hitResult; diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/PatternTextureManager.java b/Common/src/main/java/at/petrak/hexcasting/client/render/PatternTextureManager.java index 8486124920..b59e1e8e75 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/PatternTextureManager.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/PatternTextureManager.java @@ -4,11 +4,12 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.DynamicTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.FastColor; +import net.minecraft.util.Mth; import net.minecraft.util.Tuple; import net.minecraft.world.phys.Vec2; -import java.awt.*; -import java.awt.image.BufferedImage; +import java.awt.geom.Line2D; import java.util.List; import java.util.*; import java.util.concurrent.*; @@ -86,46 +87,38 @@ private static Map registerTextures(String patTextureK } private static NativeImage drawLines(List points, HexPatternPoints staticPoints, float unscaledLineWidth, int resPerUnit) { - BufferedImage img = new BufferedImage((int)(staticPoints.fullWidth*resPerUnit), (int)(staticPoints.fullHeight*resPerUnit), BufferedImage.TYPE_INT_ARGB); - Graphics2D g2d = img.createGraphics(); - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - - g2d.setColor(new Color(0xFF_FFFFFF)); // set it to white so we can reuse the texture with different colors - g2d.setStroke(new BasicStroke(unscaledLineWidth * resPerUnit, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); + NativeImage nativeImage = new NativeImage((int)(staticPoints.fullWidth*resPerUnit), (int)(staticPoints.fullHeight*resPerUnit), true); for (int i = 0; i < points.size() - 1; i++) { Tuple pointFrom = getTextureCoordinates(points.get(i), staticPoints, resPerUnit); Tuple pointTo = getTextureCoordinates(points.get(i+1), staticPoints, resPerUnit); - g2d.drawLine(pointFrom.getA(), pointFrom.getB(), pointTo.getA(), pointTo.getB()); + drawLine(nativeImage, pointFrom.getA(), pointFrom.getB(), pointTo.getA(), pointTo.getB(), unscaledLineWidth * resPerUnit); } - g2d.dispose(); - NativeImage nativeImage = new NativeImage(img.getWidth(), img.getHeight(), true); - for (int y = 0; y < img.getHeight(); y++) - for (int x = 0; x < img.getWidth(); x++) - nativeImage.setPixelRGBA(x, y, img.getRGB(x, y)); return nativeImage; } + private static void drawLine(NativeImage image, int x0, int y0, int x1, int y1, float width) { + var line = new Line2D.Float(x0, y0, x1, y1); + var bounds = line.getBounds(); + double halfWidth = width / 2; + for (int x = (int) (bounds.x - width - 1); x < (int) (bounds.x + bounds.width + width + 1); x++) { + for (int y = (int) (bounds.y - width - 1); y < (int) (bounds.y + bounds.height + width + 1); y++) { + double dist = line.ptSegDist(x, y); + int alpha = (int) (Mth.clamp(halfWidth - dist + 0.5, 0, 1) * 255); + if (alpha > 0) { + int oldAlpha = FastColor.ARGB32.alpha(image.getPixelRGBA(x, y)); + int newAlpha = Math.max(oldAlpha, alpha); + image.setPixelRGBA(x, y, 0xFFFFFF | (newAlpha << 24)); + } + } + } + } + private static Tuple getTextureCoordinates(Vec2 point, HexPatternPoints staticPoints, int resPerUnit) { int x = (int) ( point.x * resPerUnit); int y = (int) ( point.y * resPerUnit); return new Tuple<>(x, y); } - // keeping this around just in case we ever decide to put the dots in the textures instead of dynamic - private static void drawHexagon(Graphics2D g2d, int x, int y, int radius) { - int fracOfCircle = 6; - Polygon hexagon = new Polygon(); - - for (int i = 0; i < fracOfCircle; i++) { - double theta = (i / (double) fracOfCircle) * Math.PI * 2; - int hx = (int) (x + Math.cos(theta) * radius); - int hy = (int) (y + Math.sin(theta) * radius); - hexagon.addPoint(hx, hy); - } - - g2d.fill(hexagon); - } - public static void repaint() { repaintIndex++; patternTexturesToAdd.clear(); diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/RenderLib.kt b/Common/src/main/java/at/petrak/hexcasting/client/render/RenderLib.kt index 8603befcf1..3263d314cb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/RenderLib.kt +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/RenderLib.kt @@ -7,6 +7,7 @@ import at.petrak.hexcasting.api.mod.HexConfig import at.petrak.hexcasting.api.utils.TAU import at.petrak.hexcasting.client.ClientTickCounter import at.petrak.hexcasting.client.gui.GuiSpellcasting +import com.mojang.blaze3d.vertex.BufferUploader import com.mojang.blaze3d.vertex.DefaultVertexFormat import com.mojang.blaze3d.vertex.PoseStack import com.mojang.blaze3d.vertex.Tesselator @@ -112,10 +113,8 @@ fun drawLineSeq( val normal = Vec2(-tangent.y, tangent.x) fun color(time: Float): Int = - FastColor.ARGB32.color( - Mth.lerp(time, a1, a2).toInt(), Mth.lerp(time, r1, r2).toInt(), - Mth.lerp(time, g1, g2).toInt(), Mth.lerp(time, b1, b2).toInt() - ) + FastColor.ARGB32.color(Mth.lerp(time, a1, a2).toInt(), Mth.lerp(time, r1, r2).toInt(), + Mth.lerp(time, g1, g2).toInt(), Mth.lerp(time, b1, b2).toInt()) val color1 = color(i.toFloat() / n) val color2 = color((i + 1f) / n) @@ -222,8 +221,7 @@ fun drawPatternFromPoints( lastSegmentLenProportion: Float, seed: Double ) { - val zappyPts = - makeZappy(points, dupIndices, 10, 2.5f, 0.1f, flowIrregular, readabilityOffset, lastSegmentLenProportion, seed) + val zappyPts = makeZappy(points, dupIndices, 10, 2.5f, 0.1f, flowIrregular, readabilityOffset, lastSegmentLenProportion, seed) val nodes = if (drawLast) { points } else { @@ -356,13 +354,7 @@ fun findDupIndices(pts: Iterable): Set { * include primitive drawing code... */ fun drawSpot(mat: Matrix4f, point: Vec2, radius: Float, r: Float, g: Float, b: Float, a: Float) { - drawSpot( - mat, - point, - radius, - ARGB32.color((a * 255).toInt(), (r * 255).toInt(), (g * 255).toInt(), (b * 255).toInt()), - VCDrawHelper.Basic(1f) - ) + drawSpot(mat, point, radius, ARGB32.color((a*255).toInt(), (r*255).toInt(), (g*255).toInt(), (b*255).toInt()), VCDrawHelper.Basic(1f)) } fun drawSpot(mat: Matrix4f, point: Vec2, radius: Float, color: Int, vcHelper: VCDrawHelper) { @@ -465,5 +457,5 @@ fun renderQuad( .setColor(color) buf.addVertex(mat, x + w, y, 0f) .setColor(color) - buf.buildOrThrow() + BufferUploader.drawWithShader(buf.buildOrThrow()) } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/ScryingLensOverlays.java b/Common/src/main/java/at/petrak/hexcasting/client/render/ScryingLensOverlays.java index 32aed05c7a..7aac8fe1af 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/ScryingLensOverlays.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/ScryingLensOverlays.java @@ -61,9 +61,9 @@ public static void addScryingLensStuff() { ScryingLensOverlayRegistry.addDisplayer(HexBlocks.AKASHIC_BOOKSHELF, (lines, state, pos, observer, world, direction) -> { if (world.getBlockEntity(pos) instanceof BlockEntityAkashicBookshelf tile) { - var iotaTag = tile.getIotaTag(); - if (iotaTag != null) { - var display = IotaType.getDisplay(iotaTag); + var iota = tile.getIota(); + if (iota != null) { + var display = iota.display(); lines.add(new Pair<>(new ItemStack(Items.BOOK), display)); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/VCDrawHelper.kt b/Common/src/main/java/at/petrak/hexcasting/client/render/VCDrawHelper.kt index 5076ad45b3..5fa673b252 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/VCDrawHelper.kt +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/VCDrawHelper.kt @@ -18,13 +18,11 @@ import net.minecraft.world.phys.Vec3 import org.joml.Matrix4f -// TODO sam you're going to need to fix this, i have no idea what is going on here interface VCDrawHelper { fun vcSetupAndSupply(vertMode: VertexFormat.Mode): VertexConsumer fun vertex(vc: VertexConsumer, color: Int, pos: Vec2, matrix: Matrix4f) { - vertex(vc, color, pos, Vec2(0f, 0f), matrix) + vertex(vc, color, pos, Vec2(0f,0f), matrix) } - fun vertex(vc: VertexConsumer, color: Int, pos: Vec2, uv: Vec2, matrix: Matrix4f) fun vcEndDrawer(vc: VertexConsumer) @@ -35,15 +33,15 @@ interface VCDrawHelper { val WHITE: ResourceLocation = HexAPI.modLoc("textures/entity/white.png") @JvmStatic - fun getHelper(worldlyBits: WorldlyBits?, ps: PoseStack, z: Float, texture: ResourceLocation): VCDrawHelper { - if (worldlyBits != null) { + fun getHelper(worldlyBits: WorldlyBits?, ps: PoseStack, z: Float, texture: ResourceLocation) : VCDrawHelper { + if(worldlyBits != null){ return Worldly(worldlyBits, ps, z, texture) } return Basic(z, texture) } @JvmStatic - fun getHelper(worldlyBits: WorldlyBits?, ps: PoseStack, z: Float): VCDrawHelper { + fun getHelper(worldlyBits: WorldlyBits?, ps: PoseStack, z: Float) : VCDrawHelper { return getHelper(worldlyBits, ps, z, WHITE) } } @@ -53,32 +51,27 @@ interface VCDrawHelper { override fun vcSetupAndSupply(vertMode: VertexFormat.Mode): VertexConsumer { val tess = Tesselator.getInstance() val buf = tess.begin(vertMode, DefaultVertexFormat.POSITION_TEX_COLOR) - RenderSystem.setShader(GameRenderer::getPositionTexColorShader); + RenderSystem.setShader(GameRenderer::getPositionTexColorShader) RenderSystem.disableCull() RenderSystem.enableDepthTest() RenderSystem.enableBlend() - RenderSystem.blendFunc( - GlStateManager.SourceFactor.SRC_ALPHA, - GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA - ) + RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, + GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA) RenderSystem.setShaderTexture(0, texture) return buf } - - override fun vertex(vc: VertexConsumer, color: Int, pos: Vec2, uv: Vec2, matrix: Matrix4f) { - vc.vertex(matrix, pos.x, pos.y, z).color(color).uv(uv.x, uv.y).endVertex() + override fun vertex(vc: VertexConsumer, color: Int, pos: Vec2, uv: Vec2, matrix: Matrix4f){ + vc.addVertex(matrix, pos.x, pos.y, z).setColor(color).setUv(uv.x, uv.y) } - override fun vcEndDrawer(vc: VertexConsumer) { - Tesselator.getInstance().end() + if(vc is BufferBuilder) + BufferUploader.drawWithShader(vc.buildOrThrow()) } } - class Worldly(val worldlyBits: WorldlyBits, val ps: PoseStack, val z: Float, val texture: ResourceLocation) : - VCDrawHelper { + class Worldly(val worldlyBits: WorldlyBits, val ps: PoseStack, val z: Float, val texture: ResourceLocation) : VCDrawHelper { - var lastVertMode: VertexFormat.Mode? = - null // i guess this assumes that the vcHelper is only used once at a time? maybe reconsider that + var lastVertMode: VertexFormat.Mode ?= null // i guess this assumes that the vcHelper is only used once at a time? maybe reconsider that override fun vcSetupAndSupply(vertMode: VertexFormat.Mode): VertexConsumer { val provider = worldlyBits.provider @@ -87,57 +80,53 @@ interface VCDrawHelper { provider.endBatch() } lastVertMode = vertMode - val buf = Tesselator.getInstance().builder - if (vertMode == VertexFormat.Mode.QUADS) { + val tess = Tesselator.getInstance() + if(vertMode == VertexFormat.Mode.QUADS){ val layer = RenderType.entityTranslucentCull(texture) layer.setupRenderState() if (provider == null) { - buf.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.NEW_ENTITY) + val buf = tess.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.NEW_ENTITY) RenderSystem.setShader { GameRenderer.getRendertypeEntityTranslucentCullShader() } return buf } else { return provider.getBuffer(layer) } } - buf.begin(vertMode, DefaultVertexFormat.NEW_ENTITY) + val buf = tess.begin( vertMode, DefaultVertexFormat.NEW_ENTITY ) // Generally this would be handled by a RenderLayer, but that doesn't seem to actually work here,, RenderSystem.setShaderTexture(0, texture) RenderSystem.enableDepthTest() RenderSystem.disableCull() Minecraft.getInstance().gameRenderer.lightTexture().turnOnLightLayer() RenderSystem.enableBlend() - RenderSystem.blendFuncSeparate( - GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, - GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA - ) + RenderSystem.blendFuncSeparate( GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, + GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA ) RenderSystem.setShaderColor(1f, 1f, 1f, 1f); if (Minecraft.useShaderTransparency()) { Minecraft.getInstance().levelRenderer.translucentTarget!!.bindWrite(false) } - RenderSystem.setShader(GameRenderer::getRendertypeEntityTranslucentCullShader) + RenderSystem.setShader( GameRenderer::getRendertypeEntityTranslucentCullShader ) return buf } - override fun vertex(vc: VertexConsumer, color: Int, pos: Vec2, uv: Vec2, matrix: Matrix4f) { - val nv = worldlyBits.normal ?: Vec3(1.0, 1.0, 1.0) - vc.vertex(matrix, pos.x, pos.y, z) - .color(color) - .uv(uv.x, uv.y) - .overlayCoords(OverlayTexture.NO_OVERLAY) - .uv2(worldlyBits.light ?: LightTexture.FULL_BRIGHT) - .normal(ps.last().normal(), nv.x.toFloat(), nv.y.toFloat(), nv.z.toFloat()) - - vc.endVertex() + override fun vertex(vc: VertexConsumer, color: Int, pos: Vec2, uv: Vec2, matrix: Matrix4f){ + val nv = worldlyBits.normal?: Vec3(1.0, 1.0, 1.0) + vc.addVertex(matrix, pos.x, pos.y, z) + .setColor(color) + .setUv(uv.x, uv.y) + .setOverlay(OverlayTexture.NO_OVERLAY) + .setLight(worldlyBits.light?: LightTexture.FULL_BRIGHT ) + .setNormal(ps.last(), nv.x.toFloat(), nv.y.toFloat(), nv.z.toFloat()) } - - override fun vcEndDrawer(vc: VertexConsumer) { - if (lastVertMode == VertexFormat.Mode.QUADS) { - if (provider == null) { + override fun vcEndDrawer(vc: VertexConsumer){ + if(lastVertMode == VertexFormat.Mode.QUADS){ + if (provider == null && vc is BufferBuilder) { val layer = RenderType.entityTranslucentCull(texture) - layer.end(Tesselator.getInstance().builder, VertexSorting.ORTHOGRAPHIC_Z) + layer.draw(vc.buildOrThrow()) //TODO port: , VertexSorting.ORTHOGRAPHIC_Z } } else { - Tesselator.getInstance().end() + if(vc is BufferBuilder) + BufferUploader.drawWithShader(vc.buildOrThrow()) Minecraft.getInstance().gameRenderer.lightTexture().turnOffLightLayer() RenderSystem.disableBlend() RenderSystem.defaultBlendFunc() diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/WorldlyPatternRenderHelpers.java b/Common/src/main/java/at/petrak/hexcasting/client/render/WorldlyPatternRenderHelpers.java index 68c00d5d92..e7ad9b9d69 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/WorldlyPatternRenderHelpers.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/WorldlyPatternRenderHelpers.java @@ -9,7 +9,9 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Axis; import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.AttachFace; @@ -52,7 +54,7 @@ public static void renderPatternForScroll(HexPattern pattern, EntityWallScroll s ps.pushPose(); ps.translate(-blockSize / 2f, -blockSize / 2f, 1f / 32f); // there's almost certainly a better way to do this, but we're just flipping the y and z axes to fix normals - ps.last().normal().mul(new Matrix3f(1, 0, 0, 0, 0, 1, 0, 1, 0)); + // no need for this anymore :D renderPattern(pattern, showStrokeOrder ? READABLE_SCROLL_SETTINGS : SCROLL_SETTINGS, showStrokeOrder ? PatternColors.READABLE_SCROLL_COLORS : PatternColors.DEFAULT_PATTERN_COLOR, scroll.getPos().hashCode(), ps, bufSource, null, null, light, blockSize); @@ -61,7 +63,7 @@ public static void renderPatternForScroll(HexPattern pattern, EntityWallScroll s private static final int[] WALL_ROTATIONS = {180, 270, 0, 90}; private static final Vec3i[] SLATE_FACINGS = {new Vec3i(0, -1, 0), new Vec3i(-1, -1, 0), new Vec3i(-1, -1, 1), new Vec3i(0, -1 , 1)}; - private static final Vec3[] WALL_NORMALS = {new Vec3(0, 0, -1), new Vec3(-1, 0, 0), new Vec3(0, 0, -1), new Vec3(-1, 0, 0)}; + private static final Vec3[] WALL_NORMALS = {new Vec3(0, 0, 1), new Vec3(-1, 0, 0), new Vec3(0, 0, -1), new Vec3(1, 0, 0)}; private static final Vec3i[] SLATE_FLOORCEIL_FACINGS = {new Vec3i(0,0,0), new Vec3i(1,0,0), new Vec3i(1,0,1), new Vec3i(0,0,1)}; public static void renderPatternForSlate(BlockEntitySlate tile, HexPattern pattern, PoseStack ps, MultiBufferSource buffer, int light, BlockState bs) @@ -89,12 +91,17 @@ public static void renderPatternForSlate(BlockEntitySlate tile, HexPattern patte ps.mulPose(Axis.YP.rotationDegrees(facing*-90)); ps.mulPose(Axis.XP.rotationDegrees(90 * (isOnCeiling ? -1 : 1))); if(isOnCeiling) ps.translate(0,-1,1); + + // Set the normal for floor/ceiling slates so lighting is correct + // Floor faces up, ceiling faces down + normal = isOnCeiling ? new Vec3(0, -1, 0) : new Vec3(0, 1, 0); } + int actualLight = LevelRenderer.getLightColor(tile.getLevel(), tile.getBlockPos().relative(Direction.getNearest(normal))); renderPattern(pattern, - wombly ? WORLDLY_SETTINGS_WOBBLY : WORLDLY_SETTINGS, - wombly ? PatternColors.SLATE_WOBBLY_PURPLE_COLOR : PatternColors.DEFAULT_PATTERN_COLOR, - tile.getBlockPos().hashCode(), ps, buffer, normal, null, light, 1); + wombly ? WORLDLY_SETTINGS_WOBBLY : WORLDLY_SETTINGS, + wombly ? PatternColors.SLATE_WOBBLY_PURPLE_COLOR : PatternColors.DEFAULT_PATTERN_COLOR, + tile.getBlockPos().hashCode(), ps, buffer, normal, null, actualLight, 1); ps.popPose(); } @@ -140,7 +147,7 @@ public static void renderPattern(HexPattern pattern, PatternSettings patSets, Pa PoseStack noNormalInv = new PoseStack(); noNormalInv.scale(1, 1, -1); - ps.mulPoseMatrix(noNormalInv.last().pose()); + ps.mulPose(noNormalInv.last().pose()); PatternRenderer.renderPattern(pattern, ps, new PatternRenderer.WorldlyBits(bufSource, light, normal), patSets, patColors, seed, blockSize * 512); diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java b/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java index 15f89ad049..0d107bcebd 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java @@ -42,7 +42,7 @@ public void render(BlockEntityQuenchedAllay blockEntity, float partialTick, Pose // Forge fixes BEs rendering offscreen; Fabric doesn't! // So we do a special check on Fabric only var pos = blockEntity.getBlockPos(); - var aabb = new AABB(pos.offset(-1, 0, -1), pos.offset(1, 1, 1)); + var aabb = new AABB(pos.offset(-1, 0, -1).getCenter(), pos.offset(1, 1, 1).getCenter()); if (IClientXplatAbstractions.INSTANCE.fabricAdditionalQuenchFrustumCheck(aabb)) { doRender((BlockQuenchedAllay) blockEntity.getBlockState().getBlock(), this.ctx.getBlockRenderDispatcher(), poseStack, bufferSource, packedLight, packedOverlay); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/BlockConjured.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/BlockConjured.java index 078b819a3c..616880da50 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/BlockConjured.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/BlockConjured.java @@ -33,10 +33,11 @@ public BlockConjured(Properties properties) { } @Override - public void playerWillDestroy(Level pLevel, BlockPos pPos, BlockState pState, Player pPlayer) { - super.playerWillDestroy(pLevel, pPos, pState, pPlayer); + public BlockState playerWillDestroy(Level pLevel, BlockPos pPos, BlockState pState, Player pPlayer) { + var res = super.playerWillDestroy(pLevel, pPos, pState, pPlayer); // For some reason the block doesn't play breaking noises. So we fix that! pPlayer.playSound(SoundEvents.AMETHYST_BLOCK_BREAK, 1f, 1f); + return res; } @Nullable diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/AkashicFloodfiller.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/AkashicFloodfiller.java index ab810391af..56d6cfffc6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/AkashicFloodfiller.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/AkashicFloodfiller.java @@ -3,8 +3,12 @@ import at.petrak.hexcasting.api.misc.TriPredicate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; import org.jetbrains.annotations.Nullable; import java.util.ArrayDeque; @@ -68,4 +72,7 @@ static boolean canItBeFloodedThrough(BlockPos pos, BlockState state, Level world return flooder.canBeFloodedThrough(pos, state, world); } + + InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, + BlockHitResult pHit); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicBookshelf.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicBookshelf.java index 39545fd968..8598c47f33 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicBookshelf.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicBookshelf.java @@ -10,7 +10,9 @@ import net.minecraft.sounds.SoundSource; 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.Level; import net.minecraft.world.level.LevelReader; @@ -39,24 +41,33 @@ public BlockAkashicBookshelf(Properties p_49795_) { } @Override - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, - BlockHitResult pHit) { - if (pLevel.getBlockEntity(pPos) instanceof BlockEntityAkashicBookshelf shelf) { - var stack = pPlayer.getItemInHand(pHand); + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hitResult) { + if (level.getBlockEntity(pos) instanceof BlockEntityAkashicBookshelf shelf) { if (stack.getItem() instanceof ItemScroll scroll) { - if (!pLevel.isClientSide()) { + if (!level.isClientSide()) { scroll.writeDatum(stack, new PatternIota(shelf.getPattern())); } - pLevel.playSound(pPlayer, pPos, HexSounds.SCROLL_SCRIBBLE, SoundSource.BLOCKS, 1f, 1f); - return InteractionResult.sidedSuccess(pLevel.isClientSide); - } else if (pPlayer.isDiscrete() && pHand == InteractionHand.MAIN_HAND && stack.isEmpty()) { - if (!pLevel.isClientSide()) { + level.playSound(player, pos, HexSounds.SCROLL_SCRIBBLE, SoundSource.BLOCKS, 1f, 1f); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } + } + + return stack.isEmpty() && hand == InteractionHand.MAIN_HAND + ? ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION + : ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { + if (level.getBlockEntity(pos) instanceof BlockEntityAkashicBookshelf shelf) { + if (player.isDiscrete()) { + if (!level.isClientSide()) { shelf.clearIota(); } - pLevel.playSound(pPlayer, pPos, HexSounds.SCROLL_SCRIBBLE, SoundSource.BLOCKS, - 1f, 0.8f); - return InteractionResult.sidedSuccess(pLevel.isClientSide); + level.playSound(player, pos, HexSounds.SCROLL_SCRIBBLE, SoundSource.BLOCKS, + 1f, 0.8f); + return InteractionResult.sidedSuccess(level.isClientSide); } } @@ -106,4 +117,9 @@ public BlockState rotate(BlockState pState, Rotation pRot) { public BlockState mirror(BlockState pState, Mirror pMirror) { return pState.rotate(pMirror.getRotation(pState.getValue(FACING))); } + + @Override + public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + return null; + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicLigature.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicLigature.java index c86019bd10..005b8069c7 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicLigature.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicLigature.java @@ -1,9 +1,21 @@ package at.petrak.hexcasting.common.blocks.akashic; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; public class BlockAkashicLigature extends Block implements AkashicFloodfiller { public BlockAkashicLigature(Properties properties) { super(properties); } + + @Override + public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + return null; + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicRecord.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicRecord.java index db3f96ac14..dc14338edd 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicRecord.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockAkashicRecord.java @@ -4,6 +4,7 @@ import at.petrak.hexcasting.api.casting.iota.IotaType; import at.petrak.hexcasting.api.casting.math.HexPattern; import net.minecraft.core.BlockPos; +import net.minecraft.nbt.NbtOps; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; @@ -45,8 +46,7 @@ BlockPos addNewDatum(BlockPos herePos, Level level, HexPattern key, Iota datum) } } - public @Nullable - Iota lookupPattern(BlockPos herePos, HexPattern key, ServerLevel slevel) { + public @Nullable Iota lookupPattern(BlockPos herePos, HexPattern key, ServerLevel slevel) { var foundPos = AkashicFloodfiller.floodFillFor(herePos, slevel, (pos, bs, world) -> world.getBlockEntity(pos) instanceof BlockEntityAkashicBookshelf tile @@ -56,8 +56,7 @@ Iota lookupPattern(BlockPos herePos, HexPattern key, ServerLevel slevel) { } var tile = (BlockEntityAkashicBookshelf) slevel.getBlockEntity(foundPos); - var tag = tile.getIotaTag(); - return tag == null ? null : IotaType.deserialize(tag, slevel); + return tile != null ? tile.getIota() : null; } // TODO get comparators working again and also cache the number of iotas somehow? diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockEntityAkashicBookshelf.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockEntityAkashicBookshelf.java index d6e4cd8041..2e5569dd4c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockEntityAkashicBookshelf.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/akashic/BlockEntityAkashicBookshelf.java @@ -7,7 +7,10 @@ import at.petrak.hexcasting.client.render.HexPatternPoints; import at.petrak.hexcasting.common.lib.HexBlockEntities; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; +import net.minecraft.nbt.Tag; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -18,10 +21,11 @@ public class BlockEntityAkashicBookshelf extends HexBlockEntity { // This is only not null if this stores any data. private HexPattern pattern = null; + // TODO port: check if it works // When the world is first loading we can sometimes try to deser this from nbt without the world existing yet. // We also need a way to display the iota to the client. // For both these cases we save just the tag of the iota. - private CompoundTag iotaTag = null; + private Iota iota = null; public HexPatternPoints points; @@ -35,14 +39,20 @@ public HexPattern getPattern() { } @Nullable - public CompoundTag getIotaTag() { - return iotaTag; + public Iota getIota() { + return iota; } + /*@Nullable + public Tag getIotaTag() { + return iotaTag; + }*/ + public void setNewMapping(HexPattern pattern, Iota iota) { var previouslyEmpty = this.pattern == null; this.pattern = pattern; - this.iotaTag = IotaType.serialize(iota); + this.iota = iota; + //this.iotaTag = IotaType.TYPED_CODEC.encodeStart(NbtOps.INSTANCE, iota).getOrThrow(); if (previouslyEmpty) { var oldBs = this.getBlockState(); @@ -57,7 +67,8 @@ public void setNewMapping(HexPattern pattern, Iota iota) { public void clearIota() { var previouslyEmpty = this.pattern == null; this.pattern = null; - this.iotaTag = null; + //this.iotaTag = null; + this.iota = null; if (!previouslyEmpty) { var oldBs = this.getBlockState(); @@ -70,23 +81,25 @@ public void clearIota() { } @Override - protected void saveModData(CompoundTag compoundTag) { - if (this.pattern != null && this.iotaTag != null) { - compoundTag.put(TAG_PATTERN, this.pattern.serializeToNBT()); - compoundTag.put(TAG_IOTA, this.iotaTag); + protected void saveModData(CompoundTag compoundTag, HolderLookup.Provider registries) { + if (this.pattern != null && this.iota != null) { + compoundTag.put(TAG_PATTERN, HexPattern.CODEC.encodeStart(NbtOps.INSTANCE, pattern).getOrThrow()); + compoundTag.put(TAG_IOTA, IotaType.TYPED_CODEC.encodeStart(NbtOps.INSTANCE, iota).getOrThrow()); } else { compoundTag.putBoolean(TAG_DUMMY, false); } } @Override - protected void loadModData(CompoundTag tag) { + protected void loadModData(CompoundTag tag, HolderLookup.Provider registries) { if (tag.contains(TAG_PATTERN) && tag.contains(TAG_IOTA)) { - this.pattern = HexPattern.fromNBT(tag.getCompound(TAG_PATTERN)); - this.iotaTag = tag.getCompound(TAG_IOTA); + this.pattern = HexPattern.CODEC.parse(NbtOps.INSTANCE, tag.getCompound(TAG_PATTERN)).getOrThrow(); + //this.iotaTag = tag.getCompound(TAG_IOTA); + this.iota = IotaType.TYPED_CODEC.parse(NbtOps.INSTANCE, tag.getCompound(TAG_IOTA)).getOrThrow(); } else if (tag.contains(TAG_DUMMY)) { this.pattern = null; - this.iotaTag = null; + //this.iotaTag = null; + this.iota = null; } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/BlockEntitySlate.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/BlockEntitySlate.java index 9a0ec965bc..1bda8d2a48 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/BlockEntitySlate.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/BlockEntitySlate.java @@ -3,8 +3,12 @@ import at.petrak.hexcasting.api.block.HexBlockEntity; import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.common.lib.HexBlockEntities; +import at.petrak.hexcasting.common.lib.HexDataComponents; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentMap; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.Tag; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -20,23 +24,36 @@ public BlockEntitySlate(BlockPos pos, BlockState state) { } @Override - protected void saveModData(CompoundTag tag) { + protected void collectImplicitComponents(DataComponentMap.Builder components) { + super.collectImplicitComponents(components); if (this.pattern != null) { - tag.put(TAG_PATTERN, this.pattern.serializeToNBT()); + components.set(HexDataComponents.PATTERN, this.pattern); + } + } + + @Override + protected void applyImplicitComponents(DataComponentInput componentInput) { + super.applyImplicitComponents(componentInput); + var pat = componentInput.get(HexDataComponents.PATTERN); + if (pat != null) { + this.pattern = pat; + } + } + + @Override + protected void saveModData(CompoundTag tag, HolderLookup.Provider registries) { + if (this.pattern != null) { + tag.put(TAG_PATTERN, HexPattern.CODEC.encodeStart(NbtOps.INSTANCE, pattern).getOrThrow()); } else { tag.put(TAG_PATTERN, new CompoundTag()); } } @Override - protected void loadModData(CompoundTag tag) { + protected void loadModData(CompoundTag tag, HolderLookup.Provider registries) { if (tag.contains(TAG_PATTERN, Tag.TAG_COMPOUND)) { - CompoundTag patternTag = tag.getCompound(TAG_PATTERN); - if (HexPattern.isPattern(patternTag)) { - this.pattern = HexPattern.fromNBT(patternTag); - } else { - this.pattern = null; - } + Tag patternTag = tag.get(TAG_PATTERN); + this.pattern = HexPattern.CODEC.parse(NbtOps.INSTANCE, patternTag).result().orElse(null); } else { this.pattern = null; } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockEntityLookingImpetus.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockEntityLookingImpetus.java index 963d62a649..387936a4a8 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockEntityLookingImpetus.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockEntityLookingImpetus.java @@ -5,6 +5,7 @@ import at.petrak.hexcasting.common.lib.HexBlockEntities; import at.petrak.hexcasting.common.lib.HexSounds; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -16,6 +17,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; public class BlockEntityLookingImpetus extends BlockEntityAbstractImpetus { public static final int MAX_LOOK_AMOUNT = 30; @@ -35,8 +37,9 @@ public static void serverTick(Level level, BlockPos pos, BlockState bs, BlockEnt int prevLookAmt = self.lookAmount; int range = 20; + //TODO port: test AABB check, it's Vec3 now instead of BlockPos var players = level.getEntitiesOfClass(ServerPlayer.class, - new AABB(pos.offset(-range, -range, -range), pos.offset(range, range, range))); + new AABB(pos.offset(-range, -range, -range).getCenter(), pos.offset(range, range, range).getCenter())); ServerPlayer looker = null; for (var player : players) { @@ -84,14 +87,14 @@ public static void serverTick(Level level, BlockPos pos, BlockState bs, BlockEnt } @Override - protected void saveModData(CompoundTag tag) { - super.saveModData(tag); + protected void saveModData(CompoundTag tag, HolderLookup.Provider registries) { + super.saveModData(tag, registries); tag.putInt(TAG_LOOK_AMOUNT, this.lookAmount); } @Override - protected void loadModData(CompoundTag tag) { - super.loadModData(tag); + protected void loadModData(CompoundTag tag, HolderLookup.Provider registries) { + super.loadModData(tag, registries); this.lookAmount = tag.getInt(TAG_LOOK_AMOUNT); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockEntityRedstoneImpetus.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockEntityRedstoneImpetus.java index b776d156ce..385b591e8a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockEntityRedstoneImpetus.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockEntityRedstoneImpetus.java @@ -8,15 +8,20 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.NbtUtils; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.util.ExtraCodecs; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; +import net.minecraft.world.item.component.ResolvableProfile; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -31,15 +36,14 @@ public class BlockEntityRedstoneImpetus extends BlockEntityAbstractImpetus { private GameProfile storedPlayerProfile = null; private UUID storedPlayer = null; - private GameProfile cachedDisplayProfile = null; + private ResolvableProfile cachedDisplayProfile = null; private ItemStack cachedDisplayStack = null; public BlockEntityRedstoneImpetus(BlockPos pWorldPosition, BlockState pBlockState) { super(HexBlockEntities.IMPETUS_REDSTONE_TILE, pWorldPosition, pBlockState); } - protected @Nullable - GameProfile getPlayerName() { + protected @Nullable GameProfile getPlayerName() { if (this.level instanceof ServerLevel) { Player player = getStoredPlayer(); if (player != null) { @@ -61,6 +65,7 @@ public void clearPlayer() { this.storedPlayer = null; } + //TODO port: test player profiles public void updatePlayerProfile() { ServerPlayer player = getStoredPlayer(); if (player != null) { @@ -99,17 +104,18 @@ public void applyScryingLensOverlay(List> lines, Direction hitFace) { super.applyScryingLensOverlay(lines, state, pos, observer, world, hitFace); - var name = this.getPlayerName(); - if (name != null) { - if (!name.equals(cachedDisplayProfile) || cachedDisplayStack == null) { - cachedDisplayProfile = name; + var plProfile = this.getPlayerName(); + if (plProfile != null) { + var resolvableProfile = new ResolvableProfile(plProfile); + if (!plProfile.equals(resolvableProfile) || cachedDisplayStack == null) { + cachedDisplayProfile = resolvableProfile; var head = new ItemStack(Items.PLAYER_HEAD); - NBTHelper.put(head, "SkullOwner", NbtUtils.writeGameProfile(new CompoundTag(), name)); - head.getItem().verifyTagAfterLoad(head.getOrCreateTag()); + head.set(DataComponents.PROFILE, resolvableProfile); + head.getItem().verifyComponentsAfterLoad(head); cachedDisplayStack = head; } lines.add(new Pair<>(cachedDisplayStack, - Component.translatable("hexcasting.tooltip.lens.impetus.redstone.bound", name.getName()))); + Component.translatable("hexcasting.tooltip.lens.impetus.redstone.bound", plProfile.getName()))); } else { lines.add(new Pair<>(new ItemStack(Items.BARRIER), Component.translatable("hexcasting.tooltip.lens.impetus.redstone.bound.none"))); @@ -117,26 +123,26 @@ public void applyScryingLensOverlay(List> lines, } @Override - protected void saveModData(CompoundTag tag) { - super.saveModData(tag); + protected void saveModData(CompoundTag tag, HolderLookup.Provider registries) { + super.saveModData(tag, registries); if (this.storedPlayer != null) { tag.putUUID(TAG_STORED_PLAYER, this.storedPlayer); } if (this.storedPlayerProfile != null) { - tag.put(TAG_STORED_PLAYER_PROFILE, NbtUtils.writeGameProfile(new CompoundTag(), storedPlayerProfile)); + tag.put(TAG_STORED_PLAYER_PROFILE, ExtraCodecs.GAME_PROFILE.encodeStart(NbtOps.INSTANCE, storedPlayerProfile).getOrThrow()); } } @Override - protected void loadModData(CompoundTag tag) { - super.loadModData(tag); + protected void loadModData(CompoundTag tag, HolderLookup.Provider registries) { + super.loadModData(tag, registries); if (tag.contains(TAG_STORED_PLAYER, Tag.TAG_INT_ARRAY)) { this.storedPlayer = tag.getUUID(TAG_STORED_PLAYER); } else { this.storedPlayer = null; } if (tag.contains(TAG_STORED_PLAYER_PROFILE, Tag.TAG_COMPOUND)) { - this.storedPlayerProfile = NbtUtils.readGameProfile(tag.getCompound(TAG_STORED_PLAYER_PROFILE)); + this.storedPlayerProfile = ExtraCodecs.GAME_PROFILE.parse(NbtOps.INSTANCE, tag.getCompound(TAG_STORED_PLAYER_PROFILE)).getOrThrow(); } else { this.storedPlayerProfile = null; } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockLookingImpetus.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockLookingImpetus.java index 6cb5a1c245..f9edc217f1 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockLookingImpetus.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockLookingImpetus.java @@ -1,13 +1,18 @@ package at.petrak.hexcasting.common.blocks.circles.impetuses; import at.petrak.hexcasting.api.block.circle.BlockAbstractImpetus; +import at.petrak.hexcasting.api.casting.circles.BlockEntityAbstractImpetus; import at.petrak.hexcasting.common.lib.HexBlockEntities; import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; import org.jetbrains.annotations.Nullable; public class BlockLookingImpetus extends BlockAbstractImpetus { @@ -16,6 +21,16 @@ public BlockLookingImpetus(Properties p_49795_) { super(p_49795_); } + @Override + public BlockEntityType getBlockEntityType() { + return HexBlockEntities.IMPETUS_LOOK_TILE; + } + + @Override + public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + return null; + } + @Nullable @Override public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockRedstoneImpetus.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockRedstoneImpetus.java index fe4fb73e1b..a79a2da738 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockRedstoneImpetus.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/circles/impetuses/BlockRedstoneImpetus.java @@ -1,7 +1,9 @@ package at.petrak.hexcasting.common.blocks.circles.impetuses; import at.petrak.hexcasting.api.block.circle.BlockAbstractImpetus; +import at.petrak.hexcasting.api.casting.circles.BlockEntityAbstractImpetus; import at.petrak.hexcasting.api.casting.iota.EntityIota; +import at.petrak.hexcasting.common.lib.HexBlockEntities; import at.petrak.hexcasting.common.lib.HexSounds; import at.petrak.hexcasting.xplat.IXplatAbstractions; import net.minecraft.core.BlockPos; @@ -10,10 +12,13 @@ import net.minecraft.util.RandomSource; 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.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; @@ -28,6 +33,16 @@ public BlockRedstoneImpetus(Properties p_49795_) { super(p_49795_); } + @Override + public BlockEntityType getBlockEntityType() { + return HexBlockEntities.IMPETUS_REDSTONE_TILE; + } + + @Override + public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + return null; + } + @Nullable @Override public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) { @@ -41,37 +56,38 @@ protected void createBlockStateDefinition(StateDefinition.Builder getBlockEntityType() { + return HexBlockEntities.IMPETUS_RIGHTCLICK_TILE; + } + + @Override + public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + return null; + } + @Nullable @Override public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) { @@ -24,14 +37,13 @@ public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) { } @Override - public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, - BlockHitResult pHit) { - if (!pPlayer.isShiftKeyDown()) { - var tile = pLevel.getBlockEntity(pPos); + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { + if (!player.isShiftKeyDown()) { + var tile = level.getBlockEntity(pos); if (tile instanceof BlockEntityRightClickImpetus impetus) { - if (pPlayer instanceof ServerPlayer serverPlayer) { + if (player instanceof ServerPlayer sPlayer) { // impetus.activateSpellCircle(serverPlayer); - impetus.startExecution(serverPlayer); + impetus.startExecution(sPlayer); } return InteractionResult.SUCCESS; } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockAmethystDirectional.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockAmethystDirectional.java index 8206a583a7..946369429a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockAmethystDirectional.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockAmethystDirectional.java @@ -1,5 +1,6 @@ package at.petrak.hexcasting.common.blocks.decoration; +import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -8,22 +9,30 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.DirectionalBlock; +import net.minecraft.world.level.block.EndRodBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.phys.BlockHitResult; public class BlockAmethystDirectional extends DirectionalBlock { + public static final MapCodec CODEC = simpleCodec(BlockAmethystDirectional::new); + public BlockAmethystDirectional(Properties properties) { super(properties); } + @Override + protected MapCodec codec() { + return CODEC; + } + public void onProjectileHit(Level level, BlockState state, BlockHitResult result, Projectile projectile) { if (!level.isClientSide) { BlockPos pos = result.getBlockPos(); level.playSound(null, pos, SoundEvents.AMETHYST_BLOCK_HIT, SoundSource.BLOCKS, 1.0F, 0.5F + level.random.nextFloat() * 1.2F); level.playSound(null, pos, SoundEvents.AMETHYST_BLOCK_CHIME, SoundSource.BLOCKS, 1.0F, 0.5F + level.random.nextFloat() * 1.2F); } - } protected void createBlockStateDefinition(StateDefinition.Builder $$0) { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexDoor.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexDoor.java index 6bc4459c00..c94970d4fb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexDoor.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexDoor.java @@ -10,7 +10,7 @@ public class BlockHexDoor extends DoorBlock { public BlockHexDoor(Properties $$0) { - super($$0, HexBlockSetTypes.EDIFIED_WOOD); + super(HexBlockSetTypes.EDIFIED_WOOD, $$0); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexFallingBlock.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexFallingBlock.java new file mode 100644 index 0000000000..820077f8f7 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexFallingBlock.java @@ -0,0 +1,16 @@ +package at.petrak.hexcasting.common.blocks.decoration; + +import com.mojang.serialization.MapCodec; +import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; + +public class BlockHexFallingBlock extends FallingBlock { + public BlockHexFallingBlock(Properties props) { + super(props); + } + public static final MapCodec CODEC = BlockBehaviour.simpleCodec(BlockHexFallingBlock::new); + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexFenceGate.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexFenceGate.java index 10fc89230e..a36a2a6c3f 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexFenceGate.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexFenceGate.java @@ -12,7 +12,7 @@ public class BlockHexFenceGate extends FenceGateBlock { public BlockHexFenceGate(Properties $$0) { - super($$0, WoodType.DARK_OAK); + super(WoodType.DARK_OAK, $$0); } @SoftImplement("forge") diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexPressurePlate.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexPressurePlate.java index 5e6a517b1d..0017c066b1 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexPressurePlate.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexPressurePlate.java @@ -9,8 +9,8 @@ import net.minecraft.world.level.block.state.BlockState; public class BlockHexPressurePlate extends PressurePlateBlock { - public BlockHexPressurePlate(Sensitivity $$0, Properties $$1) { - super($$0, $$1, HexBlockSetTypes.EDIFIED_WOOD); + public BlockHexPressurePlate(Properties $$0) { + super(HexBlockSetTypes.EDIFIED_WOOD, $$0); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexTrapdoor.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexTrapdoor.java index 3e2620c59b..62d49a6eeb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexTrapdoor.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexTrapdoor.java @@ -10,7 +10,7 @@ public class BlockHexTrapdoor extends TrapDoorBlock { public BlockHexTrapdoor(Properties $$0) { - super($$0, HexBlockSetTypes.EDIFIED_WOOD); + super(HexBlockSetTypes.EDIFIED_WOOD, $$0); } @SoftImplement("forge") diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexWoodButton.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexWoodButton.java index 355f9edb9a..3676b5a009 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexWoodButton.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/decoration/BlockHexWoodButton.java @@ -10,7 +10,7 @@ public class BlockHexWoodButton extends ButtonBlock { public BlockHexWoodButton(Properties $$0) { - super($$0, BlockSetType.DARK_OAK, 30, true); + super(BlockSetType.DARK_OAK, 30, $$0); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityConjured.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityConjured.java index 5ac5004b91..e9caf5c417 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityConjured.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityConjured.java @@ -7,7 +7,9 @@ import at.petrak.hexcasting.common.lib.HexBlockEntities; import at.petrak.hexcasting.common.particles.ConjureParticleOptions; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; @@ -89,13 +91,13 @@ public void landParticle(Entity entity, int number) { } @Override - protected void saveModData(CompoundTag tag) { - tag.put(TAG_COLORIZER, this.colorizer.serializeToNBT()); + protected void saveModData(CompoundTag tag, HolderLookup.Provider registries) { + tag.put(TAG_COLORIZER, FrozenPigment.CODEC.encodeStart(NbtOps.INSTANCE, colorizer).getOrThrow()); } @Override - protected void loadModData(CompoundTag tag) { - this.colorizer = FrozenPigment.fromNBT(tag.getCompound(TAG_COLORIZER)); + protected void loadModData(CompoundTag tag, HolderLookup.Provider registries) { + this.colorizer = FrozenPigment.CODEC.parse(NbtOps.INSTANCE, tag.getCompound(TAG_COLORIZER)).getOrThrow(); } public FrozenPigment getColorizer() { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityQuenchedAllay.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityQuenchedAllay.java index dac5512a58..186bc613ab 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityQuenchedAllay.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityQuenchedAllay.java @@ -4,6 +4,7 @@ import at.petrak.hexcasting.common.blocks.BlockQuenchedAllay; import at.petrak.hexcasting.common.lib.HexBlockEntities; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.state.BlockState; @@ -22,12 +23,12 @@ public static BiFunction fromKno } @Override - protected void saveModData(CompoundTag tag) { + protected void saveModData(CompoundTag tag, HolderLookup.Provider registries) { } @Override - protected void loadModData(CompoundTag tag) { + protected void loadModData(CompoundTag tag, HolderLookup.Provider registries) { } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/akashic/OpAkashicRead.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/akashic/OpAkashicRead.kt index 34a28f0d26..552ba4e5ac 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/akashic/OpAkashicRead.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/akashic/OpAkashicRead.kt @@ -24,6 +24,6 @@ object OpAkashicRead : ConstMediaAction { } val datum = record.lookupPattern(pos, key, env.world) - return listOf(datum ?: NullIota()) + return listOf(datum ?: NullIota.INSTANCE) } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/akashic/OpAkashicWrite.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/akashic/OpAkashicWrite.kt index 2089965835..5ee2cf655a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/akashic/OpAkashicWrite.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/akashic/OpAkashicWrite.kt @@ -34,7 +34,7 @@ object OpAkashicWrite : SpellAction { throw MishapNoAkashicRecord(pos) } - val trueName = MishapOthersName.getTrueNameFromDatum(datum, env.castingEntity as? ServerPlayer) + val trueName = MishapOthersName.getTrueNameFromDatum(env.world, datum, env.castingEntity as? ServerPlayer) if (trueName != null) throw MishapOthersName(trueName) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/lists/OpIndex.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/lists/OpIndex.kt index dacaa022a8..261cf0f696 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/lists/OpIndex.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/lists/OpIndex.kt @@ -13,7 +13,7 @@ object OpIndex : ConstMediaAction { override fun execute(args: List, env: CastingEnvironment): List { val list = args.getList(0, argc).toMutableList() val index = args.getDouble(1, argc) - val x = list.getOrElse(index.roundToInt()) { NullIota() } + val x = list.getOrElse(index.roundToInt()) { NullIota.INSTANCE } return listOf(x) } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/lists/OpUnCons.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/lists/OpUnCons.kt index 211e91283d..5156595309 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/lists/OpUnCons.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/lists/OpUnCons.kt @@ -14,6 +14,6 @@ object OpUnCons : ConstMediaAction { if (list.nonEmpty) { return listOf(ListIota(list.cdr), list.car) } - return listOf(args[0], NullIota()) + return listOf(args[0], NullIota.INSTANCE) } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/local/OpPeekLocal.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/local/OpPeekLocal.kt index 375b5bbcc0..f0e4b994c6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/local/OpPeekLocal.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/local/OpPeekLocal.kt @@ -9,15 +9,16 @@ import at.petrak.hexcasting.api.casting.eval.vm.SpellContinuation import at.petrak.hexcasting.api.casting.iota.IotaType import at.petrak.hexcasting.api.casting.iota.NullIota import at.petrak.hexcasting.common.lib.hex.HexEvalSounds +import net.minecraft.nbt.NbtOps object OpPeekLocal : Action { override fun operate(env: CastingEnvironment, image: CastingImage, continuation: SpellContinuation): OperationResult { val stack = image.stack.toMutableList() val rm = if (image.userData.contains(HexAPI.RAVENMIND_USERDATA)) { - IotaType.deserialize(image.userData.getCompound(HexAPI.RAVENMIND_USERDATA), env.world) + IotaType.TYPED_CODEC.parse(NbtOps.INSTANCE, image.userData.getCompound(HexAPI.RAVENMIND_USERDATA)).getOrThrow() } else { - NullIota() + NullIota.INSTANCE } stack.add(rm) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/local/OpPushLocal.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/local/OpPushLocal.kt index 59c8a7e078..0346451238 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/local/OpPushLocal.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/local/OpPushLocal.kt @@ -10,6 +10,8 @@ import at.petrak.hexcasting.api.casting.iota.IotaType import at.petrak.hexcasting.api.casting.mishaps.MishapNotEnoughArgs import at.petrak.hexcasting.common.lib.hex.HexEvalSounds import at.petrak.hexcasting.common.lib.hex.HexIotaTypes +import net.minecraft.nbt.NbtOps +import net.minecraft.nbt.Tag object OpPushLocal : Action { override fun operate(env: CastingEnvironment, image: CastingImage, continuation: SpellContinuation): OperationResult { @@ -22,7 +24,7 @@ object OpPushLocal : Action { if (newLocal.type == HexIotaTypes.NULL) image.userData.remove(HexAPI.RAVENMIND_USERDATA) else - image.userData.put(HexAPI.RAVENMIND_USERDATA, IotaType.serialize(newLocal)) + image.userData.put(HexAPI.RAVENMIND_USERDATA, IotaType.TYPED_CODEC.encodeStart(NbtOps.INSTANCE, newLocal).getOrThrow()) val image2 = image.withUsedOp().copy(stack = stack) return OperationResult(image2, listOf(), continuation, HexEvalSounds.NORMAL_EXECUTE) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpCanEntityHexFly.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpCanEntityHexFly.kt index 8e79bd84da..82d8202fbc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpCanEntityHexFly.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpCanEntityHexFly.kt @@ -11,7 +11,7 @@ object OpCanEntityHexFly : ConstMediaAction { override val argc = 1 override fun execute(args: List, env: CastingEnvironment): List { - val player = args.getPlayer(0, argc) + val player = args.getPlayer(env.world, 0, argc) env.assertEntityInRange(player) val flightAbility = IXplatAbstractions.INSTANCE.getFlight(player) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityHeight.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityHeight.kt index 5e84528387..d8907cc416 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityHeight.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityHeight.kt @@ -10,7 +10,7 @@ object OpEntityHeight : ConstMediaAction { override val argc = 1 override fun execute(args: List, env: CastingEnvironment): List { - val e = args.getEntity(0, argc) + val e = args.getEntity(env.world, 0, argc) env.assertEntityInRange(e) return e.bbHeight.asActionResult } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityLook.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityLook.kt index 23e47e9076..b1eaed2c6f 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityLook.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityLook.kt @@ -10,7 +10,7 @@ object OpEntityLook : ConstMediaAction { override val argc = 1 override fun execute(args: List, env: CastingEnvironment): List { - val e = args.getEntity(0, argc) + val e = args.getEntity(env.world, 0, argc) env.assertEntityInRange(e) return e.lookAngle.asActionResult } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityPos.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityPos.kt index 06a6e1cb36..2cb8188297 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityPos.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityPos.kt @@ -10,7 +10,7 @@ class OpEntityPos(val feet: Boolean) : ConstMediaAction { override val argc = 1 override fun execute(args: List, env: CastingEnvironment): List { - val e = args.getEntity(0, argc) + val e = args.getEntity(env.world, 0, argc) env.assertEntityInRange(e) return (if (this.feet) e.position() else e.eyePosition).asActionResult } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityVelocity.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityVelocity.kt index 8ce1097d56..293329a8bc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityVelocity.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/queryentity/OpEntityVelocity.kt @@ -11,7 +11,7 @@ object OpEntityVelocity : ConstMediaAction { override val argc = 1 override fun execute(args: List, env: CastingEnvironment): List { - val e = args.getEntity(0, argc) + val e = args.getEntity(env.world, 0, argc) env.assertEntityInRange(e) val vel = HexAPI.instance().getEntityVelocitySpecial(e) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpBlockAxisRaycast.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpBlockAxisRaycast.kt index 2aa68ecf28..37d7aa33e9 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpBlockAxisRaycast.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpBlockAxisRaycast.kt @@ -35,7 +35,7 @@ object OpBlockAxisRaycast : ConstMediaAction { return if (blockHitResult.type == HitResult.Type.BLOCK && env.isVecInRange(Vec3.atCenterOf(blockHitResult.blockPos))) { blockHitResult.direction.step().asActionResult } else { - listOf(NullIota()) + listOf(NullIota.INSTANCE) } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpBlockRaycast.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpBlockRaycast.kt index 33a2e990eb..34bd19b8aa 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpBlockRaycast.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpBlockRaycast.kt @@ -39,7 +39,7 @@ object OpBlockRaycast : ConstMediaAction { // TODO some action that has the "weird" version? blockHitResult.blockPos.asActionResult } else { - listOf(NullIota()) + listOf(NullIota.INSTANCE) } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpEntityRaycast.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpEntityRaycast.kt index 64ea54525a..75ea1d5adf 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpEntityRaycast.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/raycast/OpEntityRaycast.kt @@ -38,7 +38,7 @@ object OpEntityRaycast : ConstMediaAction { return if (entityHitResult != null && env.isEntityInRange(entityHitResult.entity)) { entityHitResult.entity.asActionResult } else { - listOf(NullIota()) + listOf(NullIota.INSTANCE) } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpRead.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpRead.kt index 51791b6d26..0c8087b4b3 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpRead.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpRead.kt @@ -12,7 +12,7 @@ object OpRead : ConstMediaAction { override fun execute(args: List, env: CastingEnvironment): List { val (handStack) = env.getHeldItemToOperateOn { val dataHolder = IXplatAbstractions.INSTANCE.findDataHolder(it) - dataHolder != null && (dataHolder.readIota(env.world) != null || dataHolder.emptyIota() != null) + dataHolder != null && (dataHolder.readIota() != null || dataHolder.emptyIota() != null) } // If there are no data holders that are readable, find a data holder that isn't readable // so that the error message is more helpful. @@ -24,7 +24,7 @@ object OpRead : ConstMediaAction { val datumHolder = IXplatAbstractions.INSTANCE.findDataHolder(handStack) ?: throw MishapBadOffhandItem.of(handStack, "iota.read") - val datum = datumHolder.readIota(env.world) + val datum = datumHolder.readIota() ?: datumHolder.emptyIota() ?: throw MishapBadOffhandItem.of(handStack, "iota.read") diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpReadable.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpReadable.kt index d368b9d87b..93d234dfc0 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpReadable.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpReadable.kt @@ -18,7 +18,7 @@ object OpReadable : ConstMediaAction { ?: return false.asActionResult // If the datum contains no iota, return whether it has a default empty iota. - datumHolder.readIota(env.world) + datumHolder.readIota() ?: return (datumHolder.emptyIota() != null).asActionResult return true.asActionResult diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerRead.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerRead.kt index 4fd4a69f8b..060ebe9d77 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerRead.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerRead.kt @@ -14,14 +14,14 @@ object OpTheCoolerRead : ConstMediaAction { args: List, env: CastingEnvironment ): List { - val target = args.getEntity(0, argc) + val target = args.getEntity(env.world, 0, argc) env.assertEntityInRange(target) val datumHolder = IXplatAbstractions.INSTANCE.findDataHolder(target) ?: throw MishapBadEntity.of(target, "iota.read") - val datum = datumHolder.readIota(env.world) + val datum = datumHolder.readIota() ?: datumHolder.emptyIota() ?: throw MishapBadEntity.of(target, "iota.read") return listOf(datum) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerReadable.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerReadable.kt index aa118182af..2b191da486 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerReadable.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerReadable.kt @@ -14,13 +14,13 @@ object OpTheCoolerReadable : ConstMediaAction { args: List, env: CastingEnvironment ): List { - val target = args.getEntity(0, argc) + val target = args.getEntity(env.world, 0, argc) env.assertEntityInRange(target) val datumHolder = IXplatAbstractions.INSTANCE.findDataHolder(target) ?: return false.asActionResult - datumHolder.readIota(env.world) + datumHolder.readIota() ?: datumHolder.emptyIota() ?: return false.asActionResult diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerWritable.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerWritable.kt index 598ae8b145..e76a6dba84 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerWritable.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerWritable.kt @@ -15,13 +15,13 @@ object OpTheCoolerWritable : ConstMediaAction { args: List, env: CastingEnvironment ): List { - val target = args.getEntity(0, argc) + val target = args.getEntity(env.world, 0, argc) env.assertEntityInRange(target) val datumHolder = IXplatAbstractions.INSTANCE.findDataHolder(target) ?: return false.asActionResult - val success = datumHolder.writeIota(NullIota(), true) + val success = datumHolder.writeIota(NullIota.INSTANCE, true) return success.asActionResult } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerWrite.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerWrite.kt index 27e02a8f97..326705b32a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerWrite.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpTheCoolerWrite.kt @@ -19,7 +19,7 @@ object OpTheCoolerWrite : SpellAction { args: List, env: CastingEnvironment ): SpellAction.Result { - val target = args.getEntity(0, argc) + val target = args.getEntity(env.world, 0, argc) val datum = args[1] env.assertEntityInRange(target) @@ -32,7 +32,7 @@ object OpTheCoolerWrite : SpellAction { // We pass null here so that even the own caster won't be allowed into a focus. // Otherwise, you could sentinel scout to people and remotely write their names into things using a cleric circle. - val trueName = MishapOthersName.getTrueNameFromDatum(datum, null) + val trueName = MishapOthersName.getTrueNameFromDatum(env.world, datum, null) if (trueName != null) throw MishapOthersName(trueName) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpWrite.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpWrite.kt index 317dbc0453..66407097a7 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpWrite.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/rw/OpWrite.kt @@ -37,7 +37,7 @@ object OpWrite : SpellAction { if (!datumHolder.writeIota(datum, true)) throw MishapBadOffhandItem.of(handStack, "iota.readonly", datum.display()) - val trueName = MishapOthersName.getTrueNameFromDatum(datum, env.castingEntity as? ServerPlayer) + val trueName = MishapOthersName.getTrueNameFromDatum(env.world, datum, env.castingEntity as? ServerPlayer) if (trueName != null) throw MishapOthersName(trueName) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpAddMotion.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpAddMotion.kt index 7f45168f85..90c1d15a0b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpAddMotion.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpAddMotion.kt @@ -25,7 +25,7 @@ object OpAddMotion : SpellAction { env: CastingEnvironment, userData: CompoundTag ): SpellAction.Result { - val target = args.getEntity(0, argc) + val target = args.getEntity(env.world, 0, argc) val motion = args.getVec3(1, argc) env.assertEntityInRange(target) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpBlink.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpBlink.kt index a26f460d74..34a9862be8 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpBlink.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpBlink.kt @@ -20,14 +20,13 @@ import kotlin.math.roundToLong object OpBlink : SpellAction { override val argc = 2 override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { - val target = args.getEntity(0, argc) + val target = args.getEntity(env.world, 0, argc) val delta = args.getDouble(1, argc) env.assertEntityInRange(target) - // TODO: is this the same as canChangeDimensions? and what does that boolean do anyways if (!target.canUsePortal(true) || target.type.`is`(HexTags.Entities.CANNOT_TELEPORT)) throw MishapImmuneEntity(target) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt index 1011420536..0c7da5c6f4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpColorize.kt @@ -15,8 +15,8 @@ object OpColorize : SpellAction { override val argc = 0 override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { val (handStack) = env.getHeldItemToOperateOn(IXplatAbstractions.INSTANCE::isPigment) ?: throw MishapBadOffhandItem.of(ItemStack.EMPTY, "colorizer") // TODO: hack diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpDestroyFluid.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpDestroyFluid.kt index 17c1aa43a2..7f6da8e60d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpDestroyFluid.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpDestroyFluid.kt @@ -23,8 +23,8 @@ import net.minecraft.world.phys.Vec3 object OpDestroyFluid : SpellAction { override val argc = 1 override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { val vecPos = args.getVec3(0, argc) val pos = BlockPos.containing(vecPos) @@ -79,7 +79,7 @@ object OpDestroyFluid : SpellAction { ) { val success = if (blockstate.block is BucketPickup && !(blockstate.block as BucketPickup).pickupBlock( - env.caster, + env.castingEntity as? ServerPlayer, env.world, here, blockstate diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpFlight.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpFlight.kt index 9258cc059e..82d5e87da3 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpFlight.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpFlight.kt @@ -31,7 +31,7 @@ class OpFlight(val type: Type) : SpellAction { args: List, env: CastingEnvironment ): SpellAction.Result { - val target = args.getPlayer(0, argc) + val target = args.getPlayer(env.world, 0, argc) val theArg = args.getPositiveDouble(1, argc) env.assertEntityInRange(target) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpIgnite.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpIgnite.kt index 4ad9a736f7..10e55fa507 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpIgnite.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpIgnite.kt @@ -27,12 +27,12 @@ import net.minecraft.world.phys.Vec3 object OpIgnite : SpellAction { override val argc = 1 override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { when (val target = args[0]) { is EntityIota -> { - val entity = args.getEntity(0, argc) + val entity = args.getEntity(env.world, 0, argc) env.assertEntityInRange(entity) return SpellAction.Result( EntitySpell(entity), @@ -40,7 +40,6 @@ object OpIgnite : SpellAction { listOf(ParticleSpray.burst(entity.position(), 1.0)) ) } - is Vec3Iota -> { val block = args.getBlockPos(0, argc) env.assertPosInRangeForEditing(block) @@ -50,7 +49,6 @@ object OpIgnite : SpellAction { listOf(ParticleSpray.burst(Vec3.atCenterOf(BlockPos(block)), 1.0)) ) } - else -> throw MishapInvalidIota.ofType(target, 0, "entity_or_vector") } } @@ -64,12 +62,7 @@ object OpIgnite : SpellAction { } fun tryToClick(ctx: CastingEnvironment, pos: BlockPos, item: Item): Boolean { - return IXplatAbstractions.INSTANCE.isPlacingAllowed( - ctx.world, - pos, - ItemStack(item), - ctx.castingEntity as? ServerPlayer - ) && + return IXplatAbstractions.INSTANCE.isPlacingAllowed(ctx.world, pos, ItemStack(item), ctx.castingEntity as? ServerPlayer) && item.useOn( UseOnContext( ctx.world, @@ -84,7 +77,9 @@ object OpIgnite : SpellAction { private data class EntitySpell(val entity: Entity) : RenderedSpell { override fun cast(env: CastingEnvironment) { - entity.igniteForSeconds(8f) + if (!entity.fireImmune()) { + entity.igniteForSeconds(8.0f) + } } } } \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakeBattery.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakeBattery.kt index 5e86b23504..c21d8f5578 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakeBattery.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakeBattery.kt @@ -26,7 +26,7 @@ object OpMakeBattery : SpellAction { args: List, env: CastingEnvironment ): SpellAction.Result { - val entity = args.getItemEntity(0, argc) + val entity = args.getItemEntity(env.world, 0, argc) val (handStack, hand) = env.getHeldItemToOperateOn { it.`is`(HexTags.Items.PHIAL_BASE) } ?: throw MishapBadOffhandItem.of(ItemStack.EMPTY.copy(), "bottle") // TODO: hack diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt index 2601a70696..11b8290ed1 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpMakePackagedSpell.kt @@ -17,26 +17,30 @@ import at.petrak.hexcasting.xplat.IXplatAbstractions import net.minecraft.server.level.ServerPlayer import net.minecraft.world.entity.item.ItemEntity import net.minecraft.world.item.ItemStack +import net.minecraft.network.chat.Component +import java.util.function.Predicate; // TODO: How to handle in circles -class OpMakePackagedSpell(val itemType: T, val cost: Long) : SpellAction { +class OpMakePackagedSpell(val isValid: Predicate, val expectedTypeDesc: Component, val cost: Long) : SpellAction { + constructor(itemType: ItemPackagedHex, cost: Long) : this({s -> s.`is`(itemType)}, itemType.description, cost) {} + override val argc = 2 override fun execute( args: List, env: CastingEnvironment ): SpellAction.Result { - val entity = args.getItemEntity(0, argc) + val entity = args.getItemEntity(env.world, 0, argc) val patterns = args.getList(1, argc).toList() val (handStack) = env.getHeldItemToOperateOn { val hexHolder = IXplatAbstractions.INSTANCE.findHexHolder(it) - it.`is`(itemType) && hexHolder != null && !hexHolder.hasHex() + isValid.test(it) && hexHolder != null && !hexHolder.hasHex() } - ?: throw MishapBadOffhandItem(ItemStack.EMPTY.copy(), itemType.description) // TODO: hack + ?: throw MishapBadOffhandItem(ItemStack.EMPTY.copy(), expectedTypeDesc) // TODO: hack val hexHolder = IXplatAbstractions.INSTANCE.findHexHolder(handStack) - if (!handStack.`is`(itemType)) { - throw MishapBadOffhandItem(handStack, itemType.description) + if (!isValid.test(handStack)) { + throw MishapBadOffhandItem(handStack, expectedTypeDesc) } else if (hexHolder == null || hexHolder.hasHex()) { throw MishapBadOffhandItem.of(handStack, "iota.write") } @@ -54,7 +58,7 @@ class OpMakePackagedSpell(val itemType: T, val cost: Long) ) } - val trueName = MishapOthersName.getTrueNameFromArgs(patterns, env.castingEntity as? ServerPlayer) + val trueName = MishapOthersName.getTrueNameFromArgs(env.world, patterns, env.castingEntity as? ServerPlayer) if (trueName != null) throw MishapOthersName(trueName) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpPlaceBlock.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpPlaceBlock.kt index 97cff21530..16a7dcc247 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpPlaceBlock.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpPlaceBlock.kt @@ -9,7 +9,6 @@ import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.casting.mishaps.MishapBadBlock import at.petrak.hexcasting.api.casting.mishaps.MishapBadOffhandItem import at.petrak.hexcasting.api.misc.MediaConstants -import at.petrak.hexcasting.mixin.accessor.AccessorUseOnContext import at.petrak.hexcasting.xplat.IXplatAbstractions import net.minecraft.core.BlockPos import net.minecraft.core.Direction @@ -21,6 +20,7 @@ import net.minecraft.world.InteractionResult import net.minecraft.world.item.BlockItem import net.minecraft.world.item.ItemStack import net.minecraft.world.item.context.BlockPlaceContext +import net.minecraft.world.item.context.UseOnContext import net.minecraft.world.phys.BlockHitResult import net.minecraft.world.phys.Vec3 @@ -40,15 +40,7 @@ object OpPlaceBlock : SpellAction { ) val itemUseCtx = env .queryForMatchingStack { it.item is BlockItem } - ?.let { - AccessorUseOnContext.`hex$new`( - env.world, - env.castingEntity as? ServerPlayer, - env.castingHand, - it, - blockHit - ) - } + ?.let { UseOnContext(env.world, env.castingEntity as? ServerPlayer, env.castingHand, it, blockHit) } ?: throw MishapBadOffhandItem.of(ItemStack.EMPTY, "placeable") val placeContext = BlockPlaceContext(itemUseCtx) @@ -85,20 +77,14 @@ object OpPlaceBlock : SpellAction { spoofedStack.count = 1 val itemUseCtx = - AccessorUseOnContext.`hex$new`( - env.world, - caster as? ServerPlayer, - env.otherHand, - spoofedStack, - blockHit - ) + UseOnContext(env.world, caster as? ServerPlayer, env.otherHand, spoofedStack, blockHit) val placeContext = BlockPlaceContext(itemUseCtx) if (bstate.canBeReplaced(placeContext)) { - if (env.withdrawItem({ it == placeeStack }, 1, false)) { + if (env.withdrawItem({ ItemStack.isSameItemSameComponents(it, placeeStack) }, 1, false)) { val res = spoofedStack.useOn(placeContext) if (res != InteractionResult.FAIL) { - env.withdrawItem({ it == placeeStack }, 1, true) + env.withdrawItem({ ItemStack.isSameItemSameComponents(it, placeeStack) }, 1, true) env.world.playSound( caster as? ServerPlayer, diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpPotionEffect.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpPotionEffect.kt index a6a565d8d8..fcca24ddf9 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpPotionEffect.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpPotionEffect.kt @@ -19,10 +19,10 @@ class OpPotionEffect( get() = if (this.allowPotency) 3 else 2 override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { - val target = args.getLivingEntityButNotArmorStand(0, argc) + val target = args.getLivingEntityButNotArmorStand(env.world, 0, argc) val duration = args.getPositiveDouble(1, argc) val potency = if (this.allowPotency) args.getDoubleBetween(2, 1.0, 127.0, argc) @@ -42,12 +42,7 @@ class OpPotionEffect( ) } - private class Spell( - val effect: Holder, - val target: LivingEntity, - val duration: Double, - val potency: Double - ) : + private class Spell(val effect: Holder, val target: LivingEntity, val duration: Double, val potency: Double) : RenderedSpell { override fun cast(env: CastingEnvironment) { if (duration > 1.0 / 20.0) { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpRecharge.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpRecharge.kt index 0b7fcb6dfd..b45191bc32 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpRecharge.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpRecharge.kt @@ -21,7 +21,7 @@ object OpRecharge : SpellAction { args: List, env: CastingEnvironment ): SpellAction.Result { - val entity = args.getItemEntity(0, argc) + val entity = args.getItemEntity(env.world, 0, argc) val (handStack) = env.getHeldItemToOperateOn { val media = IXplatAbstractions.INSTANCE.findMediaHolder(it) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpTheOnlyReasonAnyoneDownloadedPsi.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpTheOnlyReasonAnyoneDownloadedPsi.kt index 623caf778b..0b663b871c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpTheOnlyReasonAnyoneDownloadedPsi.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpTheOnlyReasonAnyoneDownloadedPsi.kt @@ -7,13 +7,13 @@ import at.petrak.hexcasting.api.casting.eval.CastingEnvironment import at.petrak.hexcasting.api.casting.getBlockPos import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.misc.MediaConstants -import at.petrak.hexcasting.mixin.accessor.AccessorUseOnContext import net.minecraft.core.BlockPos import net.minecraft.core.Direction import net.minecraft.server.level.ServerPlayer import net.minecraft.world.InteractionHand import net.minecraft.world.item.ItemStack import net.minecraft.world.item.Items +import net.minecraft.world.item.context.UseOnContext import net.minecraft.world.phys.BlockHitResult import net.minecraft.world.phys.Vec3 @@ -21,8 +21,8 @@ import net.minecraft.world.phys.Vec3 object OpTheOnlyReasonAnyoneDownloadedPsi : SpellAction { override val argc = 1 override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { val target = args.getBlockPos(0, argc) env.assertPosInRangeForEditing(target) @@ -38,13 +38,7 @@ object OpTheOnlyReasonAnyoneDownloadedPsi : SpellAction { override fun cast(env: CastingEnvironment) { // https://github.com/VazkiiMods/Psi/blob/master/src/main/java/vazkii/psi/common/spell/trick/PieceTrickOvergrow.java val hit = BlockHitResult(Vec3.ZERO, Direction.UP, pos, false) - val fakeContext = AccessorUseOnContext.`hex$new`( - env.world, - env.castingEntity as? ServerPlayer, - InteractionHand.MAIN_HAND, - ItemStack(Items.BONE_MEAL), - hit - ) + val fakeContext = UseOnContext(env.world, env.castingEntity as? ServerPlayer, InteractionHand.MAIN_HAND, ItemStack(Items.BONE_MEAL), hit) Items.BONE_MEAL.useOn(fakeContext) } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpAltiora.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpAltiora.kt index 515518cadc..8d71bfba57 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpAltiora.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpAltiora.kt @@ -20,7 +20,7 @@ object OpAltiora : SpellAction { override val argc = 1 override fun execute(args: List, env: CastingEnvironment): SpellAction.Result { - val target = args.getPlayer(0, argc) + val target = args.getPlayer(env.world, 0, argc) env.assertEntityInRange(target) return SpellAction.Result( diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpBrainsweep.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpBrainsweep.kt index 256ccc703a..04dd9e80e1 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpBrainsweep.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpBrainsweep.kt @@ -32,10 +32,10 @@ object OpBrainsweep : SpellAction { override fun hasCastingSound(ctx: CastingEnvironment) = false override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { - val sacrifice = args.getMob(0, argc) + val sacrifice = args.getMob(env.world, 0, argc) val vecPos = args.getVec3(1, argc) val pos = BlockPos.containing(vecPos) @@ -54,9 +54,10 @@ object OpBrainsweep : SpellAction { val state = env.world.getBlockState(pos) val recman = env.world.recipeManager - // TODO they changed recipes again val recipes = recman.getAllRecipesFor(HexRecipeStuffRegistry.BRAINSWEEP_TYPE) - val recipe = recipes.find { it.matches(state, sacrifice, env.world) } + val recipe = recipes.asSequence() + .map { it.value } + .find { it.matches(state, sacrifice, env.world) } ?: throw MishapBadBrainsweep(sacrifice, pos) return SpellAction.Result( diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpTeleport.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpTeleport.kt index 81a19a37a8..dbe42846ea 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpTeleport.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/great/OpTeleport.kt @@ -15,11 +15,13 @@ import at.petrak.hexcasting.api.mod.HexTags import at.petrak.hexcasting.common.msgs.MsgBlinkS2C import at.petrak.hexcasting.xplat.IXplatAbstractions import net.minecraft.core.BlockPos +import net.minecraft.core.component.DataComponents import net.minecraft.server.level.ServerLevel import net.minecraft.server.level.ServerPlayer import net.minecraft.server.level.TicketType import net.minecraft.world.entity.Entity import net.minecraft.world.item.enchantment.EnchantmentHelper +import net.minecraft.world.item.enchantment.Enchantments import net.minecraft.world.level.ChunkPos import net.minecraft.world.phys.Vec3 @@ -28,15 +30,14 @@ import net.minecraft.world.phys.Vec3 object OpTeleport : SpellAction { override val argc = 2 override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { - val teleportee = args.getEntity(0, argc) + val teleportee = args.getEntity(env.world, 0, argc) val delta = args.getVec3(1, argc) env.assertEntityInRange(teleportee) - // TODO: see todos on blink if (!teleportee.canUsePortal(true) || teleportee.type.`is`(HexTags.Entities.CANNOT_TELEPORT)) throw MishapImmuneEntity(teleportee) @@ -63,7 +64,7 @@ object OpTeleport : SpellAction { teleportRespectSticky(teleportee, delta, env.world) - if (teleportee is ServerPlayer && teleportee == env.castingEntity) { + if (HexConfig.server().doesGreaterTeleportSplatItems() && teleportee is ServerPlayer && teleportee == env.castingEntity) { // Drop items conditionally, based on distance teleported. // MOST IMPORTANT: Never drop main hand item, since if it's a trinket, it will get duplicated later. @@ -73,7 +74,7 @@ object OpTeleport : SpellAction { // having to rearrange those. Also it makes sense for LORE REASONS probably, since the caster is more // aware of items they use often. for (armorItem in teleportee.inventory.armor) { - if (EnchantmentHelper.hasBindingCurse(armorItem)) + if (armorItem.get(DataComponents.ENCHANTMENTS)?.keySet()?.any { e -> e.`is`(Enchantments.BINDING_CURSE) } == true) continue if (Math.random() < baseDropChance * 0.25) { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/sentinel/OpGetSentinelPos.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/sentinel/OpGetSentinelPos.kt index fa56812ca5..1363ed9528 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/sentinel/OpGetSentinelPos.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/sentinel/OpGetSentinelPos.kt @@ -18,7 +18,7 @@ object OpGetSentinelPos : ConstMediaAction { if (env.castingEntity !is ServerPlayer) throw MishapBadCaster() - val sentinel = IXplatAbstractions.INSTANCE.getSentinel(env.castingEntity as? ServerPlayer) ?: return listOf(NullIota()) + val sentinel = IXplatAbstractions.INSTANCE.getSentinel(env.castingEntity as? ServerPlayer) ?: return listOf(NullIota.INSTANCE) if (sentinel.dimension != env.world.dimension()) throw MishapLocationInWrongDimension(sentinel.dimension.location()) return sentinel.position.asActionResult diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/sentinel/OpGetSentinelWayfind.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/sentinel/OpGetSentinelWayfind.kt index cad52447ed..aacc6ea486 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/sentinel/OpGetSentinelWayfind.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/sentinel/OpGetSentinelWayfind.kt @@ -23,7 +23,7 @@ object OpGetSentinelWayfind : ConstMediaAction { val from = args.getVec3(0, argc) - val sentinel = IXplatAbstractions.INSTANCE.getSentinel(env.castingEntity as? ServerPlayer) ?: return listOf(NullIota()) + val sentinel = IXplatAbstractions.INSTANCE.getSentinel(env.castingEntity as? ServerPlayer) ?: return listOf(NullIota.INSTANCE) if (sentinel.dimension != env.world.dimension()) throw MishapLocationInWrongDimension(sentinel.dimension.location()) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorIndex.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorIndex.kt index 2ecb5fc140..e08265b4e0 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorIndex.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorIndex.kt @@ -15,7 +15,7 @@ object OperatorIndex : OperatorBasic(2, IotaMultiPredicate.pair(IotaPredicate.of val it = iotas.iterator() val list = downcast(it.next(), LIST).list.toMutableList() val index = downcast(it.next(), DOUBLE).double - val x = list.getOrElse(index.roundToInt()) { NullIota() } + val x = list.getOrElse(index.roundToInt()) { NullIota.INSTANCE } return listOf(x) } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorUnCons.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorUnCons.kt index 54f0de69c2..be234fd5b7 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorUnCons.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorUnCons.kt @@ -17,6 +17,6 @@ object OperatorUnCons : OperatorBasic(1, IotaMultiPredicate.all(IotaPredicate.of val list = it.nextList(arity) if (list.nonEmpty) return listOf(ListIota(list.cdr), list.car) - return listOf(ListIota(list), NullIota()) + return listOf(ListIota(list), NullIota.INSTANCE) } } \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorUnappend.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorUnappend.kt index 6d60362b0d..d318ff21a4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorUnappend.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/arithmetic/operator/list/OperatorUnappend.kt @@ -15,7 +15,7 @@ object OperatorUnappend : OperatorBasic(1, IotaMultiPredicate.all(IotaPredicate. override fun apply(iotas: Iterable, env: CastingEnvironment): Iterable { val it = iotas.iterator().withIndex() val list = it.nextList(arity).toMutableList() - val last = list.removeLastOrNull() ?: NullIota() + val last = list.removeLastOrNull() ?: NullIota.INSTANCE return listOf(ListIota(list), last) } } \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/command/ListPerWorldPatternsCommand.java b/Common/src/main/java/at/petrak/hexcasting/common/command/ListPerWorldPatternsCommand.java index f39e14d47f..2ff15760d8 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/command/ListPerWorldPatternsCommand.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/command/ListPerWorldPatternsCommand.java @@ -7,7 +7,9 @@ import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.casting.PatternRegistryManifest; import at.petrak.hexcasting.common.items.storage.ItemScroll; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexItems; +import at.petrak.hexcasting.common.lib.HexRegistries; import at.petrak.hexcasting.server.ScrungledPatternsSave; import at.petrak.hexcasting.xplat.IXplatAbstractions; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -16,11 +18,14 @@ import net.minecraft.commands.arguments.EntityArgument; import net.minecraft.commands.arguments.ResourceLocationArgument; import net.minecraft.core.Registry; +import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.CustomData; import java.util.Collection; import java.util.List; @@ -32,18 +37,18 @@ public static void add(LiteralArgumentBuilder cmd) { .then(Commands.literal("list") .executes(ctx -> list(ctx.getSource()))) .then(Commands.literal("give") - .then(Commands.argument("patternName", PatternResLocArgument.id()) + .then(Commands.argument("patternName", PatternResKeyArgument.id()) .executes(ctx -> giveOne(ctx.getSource(), getDefaultTarget(ctx.getSource()), - ResourceLocationArgument.getId(ctx, "patternName"), - PatternResLocArgument.getPattern(ctx, "patternName"))) + PatternResKeyArgument.getPatternKey(ctx, "patternName"), + PatternResKeyArgument.getPattern(ctx, "patternName"))) .then(Commands.argument("targets", EntityArgument.players()) .executes(ctx -> giveOne(ctx.getSource(), EntityArgument.getPlayers(ctx, "targets"), - ResourceLocationArgument.getId(ctx, "patternName"), - PatternResLocArgument.getPattern(ctx, "patternName")))))) + PatternResKeyArgument.getPatternKey(ctx, "patternName"), + PatternResKeyArgument.getPattern(ctx, "patternName")))))) .then(Commands.literal("giveAll") .executes(ctx -> giveAll(ctx.getSource(), @@ -98,18 +103,15 @@ private static int giveAll(CommandSourceStack source, Collection t var startDir = found.getSecond().canonicalStartDir(); var pat = HexPattern.fromAngles(signature, startDir); - var tag = new CompoundTag(); - tag.putString(ItemScroll.TAG_OP_ID, key.location().toString()); - tag.put(ItemScroll.TAG_PATTERN, pat.serializeToNBT()); - var stack = new ItemStack(HexItems.SCROLL_LARGE); - stack.setTag(tag); + stack.set(HexDataComponents.ACTION, key); + stack.set(HexDataComponents.PATTERN, pat); for (var player : targets) { var stackEntity = player.drop(stack, false); if (stackEntity != null) { stackEntity.setNoPickUpDelay(); - stackEntity.setThrower(player.getUUID()); + stackEntity.setThrower(player); } count++; @@ -130,20 +132,17 @@ private static int giveAll(CommandSourceStack source, Collection t } private static int giveOne(CommandSourceStack source, Collection targets, - ResourceLocation patternName, HexPattern pat) { + ResourceKey actionKey, HexPattern pat) { if (!targets.isEmpty()) { - var tag = new CompoundTag(); - tag.putString(ItemScroll.TAG_OP_ID, patternName.toString()); - tag.put(ItemScroll.TAG_PATTERN, pat.serializeToNBT()); - var stack = new ItemStack(HexItems.SCROLL_LARGE); - stack.setTag(tag); + stack.set(HexDataComponents.ACTION, actionKey); + stack.set(HexDataComponents.PATTERN, pat); source.sendSuccess(() -> Component.translatable( "command.hexcasting.pats.specific.success", stack.getDisplayName(), - patternName, + actionKey.location(), targets.size() == 1 ? targets.iterator().next().getDisplayName() : targets.size()), true); @@ -151,7 +150,7 @@ private static int giveOne(CommandSourceStack source, Collection t var stackEntity = player.drop(stack, false); if (stackEntity != null) { stackEntity.setNoPickUpDelay(); - stackEntity.setThrower(player.getUUID()); + stackEntity.setThrower(player); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/command/PatternResKeyArgument.java b/Common/src/main/java/at/petrak/hexcasting/common/command/PatternResKeyArgument.java new file mode 100644 index 0000000000..4413203b37 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/command/PatternResKeyArgument.java @@ -0,0 +1,83 @@ +package at.petrak.hexcasting.common.command; + +import at.petrak.hexcasting.api.casting.ActionRegistryEntry; +import at.petrak.hexcasting.api.casting.math.HexPattern; +import at.petrak.hexcasting.api.mod.HexTags; +import at.petrak.hexcasting.api.utils.HexUtils; +import at.petrak.hexcasting.common.casting.PatternRegistryManifest; +import at.petrak.hexcasting.common.lib.HexRegistries; +import at.petrak.hexcasting.xplat.IXplatAbstractions; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; +import com.mojang.brigadier.suggestion.Suggestions; +import com.mojang.brigadier.suggestion.SuggestionsBuilder; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.SharedSuggestionProvider; +import net.minecraft.commands.arguments.ResourceKeyArgument; +import net.minecraft.commands.arguments.ResourceLocationArgument; +import net.minecraft.core.Registry; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.RecipeManager; + +import java.util.ArrayList; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; + +public class PatternResKeyArgument extends ResourceKeyArgument { + private static final DynamicCommandExceptionType ERROR_UNKNOWN_PATTERN = new DynamicCommandExceptionType( + (errorer) -> + Component.translatable("hexcasting.pattern.unknown", errorer) + ); + + public PatternResKeyArgument() { + super(HexRegistries.ACTION); + } + + public static PatternResKeyArgument id() { + return new PatternResKeyArgument(); + } + + @Override + public CompletableFuture listSuggestions(CommandContext context, SuggestionsBuilder builder) { + var suggestions = new ArrayList(); + var registry = IXplatAbstractions.INSTANCE.getActionRegistry(); + for (var key : registry.registryKeySet()) { + if (HexUtils.isOfTag(registry, key, HexTags.Actions.PER_WORLD_PATTERN)) { + suggestions.add(key.location().toString()); + } + } + + return SharedSuggestionProvider.suggest(suggestions, builder); + } + + public static ResourceKey getResourceKey( + CommandContext context, + String argumentName, + ResourceKey> registryKey, + DynamicCommandExceptionType exceptionType + ) throws CommandSyntaxException { + ResourceKey key = context.getArgument(argumentName, ResourceKey.class); + Optional> optional = key.cast(registryKey); + return optional.orElseThrow(() -> exceptionType.create(key.location())); + } + + public static ResourceKey getPatternKey( + CommandContext ctx, String argumentName) throws CommandSyntaxException { + return getResourceKey(ctx, argumentName, HexRegistries.ACTION, ERROR_UNKNOWN_PATTERN); + } + + public static HexPattern getPattern( + CommandContext ctx, String argumentName) throws CommandSyntaxException { + var targetKey = getPatternKey(ctx, argumentName); + var foundPat = PatternRegistryManifest.getCanonicalStrokesPerWorld(targetKey, ctx.getSource().getServer().overworld()); + if (foundPat == null) { + throw ERROR_UNKNOWN_PATTERN.create(targetKey.location()); + } else { + return foundPat; + } + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/command/PatternResLocArgument.java b/Common/src/main/java/at/petrak/hexcasting/common/command/PatternResLocArgument.java index 6403a422c9..d3a8813238 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/command/PatternResLocArgument.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/command/PatternResLocArgument.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.concurrent.CompletableFuture; +@Deprecated public class PatternResLocArgument extends ResourceLocationArgument { private static final DynamicCommandExceptionType ERROR_UNKNOWN_PATTERN = new DynamicCommandExceptionType( (errorer) -> diff --git a/Common/src/main/java/at/petrak/hexcasting/common/entities/EntityWallScroll.java b/Common/src/main/java/at/petrak/hexcasting/common/entities/EntityWallScroll.java index 03d916c8f7..4b8dc838ad 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/entities/EntityWallScroll.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/entities/EntityWallScroll.java @@ -4,6 +4,7 @@ import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.common.items.storage.ItemScroll; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.common.lib.HexSounds; import at.petrak.hexcasting.common.msgs.MsgNewWallScrollS2C; @@ -11,13 +12,16 @@ import at.petrak.hexcasting.xplat.IXplatAbstractions; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.common.ClientCommonPacketListener; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundAddEntityPacket; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.server.level.ServerEntity; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -26,10 +30,12 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.HangingEntity; +import net.minecraft.world.entity.decoration.PaintingVariant; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.GameRules; import net.minecraft.world.level.Level; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.Nullable; @@ -61,20 +67,13 @@ public EntityWallScroll(Level world, BlockPos pos, Direction dir, ItemStack scro } public void recalculateDisplay() { - CompoundTag patternTag = NBTHelper.getCompound(scroll, ItemScroll.TAG_PATTERN); - if (patternTag != null) { - this.pattern = HexPattern.fromNBT(patternTag); - this.isAncient = NBTHelper.hasString(scroll, ItemScroll.TAG_OP_ID); - } else { - this.pattern = null; - this.isAncient = false; - } + this.pattern = scroll.get(HexDataComponents.PATTERN); + this.isAncient = scroll.has(HexDataComponents.ACTION); } @Override - protected void defineSynchedData() { - super.defineSynchedData(); - this.entityData.define(SHOWS_STROKE_ORDER, false); + protected void defineSynchedData(SynchedEntityData.Builder builder) { + builder.define(SHOWS_STROKE_ORDER, false); } public boolean getShowsStrokeOrder() { @@ -86,13 +85,17 @@ public void setShowsStrokeOrder(boolean b) { } @Override - public int getWidth() { - return 16 * blockSize; - } - - @Override - public int getHeight() { - return 16 * blockSize; + protected AABB calculateBoundingBox(BlockPos pos, Direction p_direction) { + float f = 0.46875F; + Vec3 vec3 = Vec3.atCenterOf(pos).relative(p_direction, -0.46875); + double d0 = blockSize % 2 == 0 ? 0.5 : 0.0; + Direction direction = p_direction.getCounterClockWise(); + Vec3 vec31 = vec3.relative(direction, d0).relative(Direction.UP, d0); + Direction.Axis direction$axis = p_direction.getAxis(); + double d2 = direction$axis == Direction.Axis.X ? 0.0625 : blockSize; + double d3 = blockSize; + double d4 = direction$axis == Direction.Axis.Z ? 0.0625 : blockSize; + return AABB.ofSize(vec31, d2, d3, d4); } @Override @@ -122,7 +125,7 @@ public InteractionResult interactAt(Player pPlayer, Vec3 pVec, InteractionHand p if (pPlayer.level() instanceof ServerLevel slevel) { IXplatAbstractions.INSTANCE.sendPacketNear(this.position(), 32.0, slevel, - new MsgRecalcWallScrollDisplayS2C(this.getId(), true)); + new MsgRecalcWallScrollDisplayS2C(this.getId(), true)); } else { // Beat the packet roundtrip to the punch to get a quicker visual this.recalculateDisplay(); @@ -138,9 +141,9 @@ public void playPlacementSound() { } @Override - public Packet getAddEntityPacket() { + public Packet getAddEntityPacket(ServerEntity entity) { return IXplatAbstractions.INSTANCE.toVanillaClientboundPacket( - new MsgNewWallScrollS2C(new ClientboundAddEntityPacket(this), + new MsgNewWallScrollS2C(new ClientboundAddEntityPacket(this, this.direction.get3DDataValue(), this.getPos()), pos, direction, scroll, getShowsStrokeOrder(), blockSize)); } @@ -160,7 +163,7 @@ public void readSpawnData(BlockPos pos, Direction dir, ItemStack scrollItem, @Override public void addAdditionalSaveData(CompoundTag tag) { tag.putByte("direction", (byte) this.direction.ordinal()); - tag.put("scroll", HexUtils.serializeToNBT(this.scroll)); + tag.put("scroll", this.scroll.save(registryAccess())); tag.putBoolean("showsStrokeOrder", this.getShowsStrokeOrder()); tag.putInt("blockSize", this.blockSize); super.addAdditionalSaveData(tag); @@ -169,7 +172,7 @@ public void addAdditionalSaveData(CompoundTag tag) { @Override public void readAdditionalSaveData(CompoundTag tag) { this.direction = Direction.values()[tag.getByte("direction")]; - this.scroll = ItemStack.of(tag.getCompound("scroll")); + this.scroll = ItemStack.parse(registryAccess(), tag.getCompound("scroll")).orElse(ItemStack.EMPTY); this.blockSize = tag.getInt("blockSize"); this.setDirection(this.direction); @@ -187,9 +190,8 @@ public void moveTo(double pX, double pY, double pZ, float pYaw, float pPitch) { } @Override - public void lerpTo(double pX, double pY, double pZ, float pYaw, float pPitch, int pPosRotationIncrements, - boolean pTeleport) { - BlockPos blockpos = this.pos.offset((int) (pX - this.getX()), (int) (pY - this.getY()), (int) (pZ - this.getZ())); + public void lerpTo(double x, double y, double z, float yRot, float xRot, int steps) { + BlockPos blockpos = this.pos.offset((int) (x - this.getX()), (int) (y - this.getY()), (int) (z - this.getZ())); this.setPos(blockpos.getX(), blockpos.getY(), blockpos.getZ()); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/impl/HexAPIImpl.java b/Common/src/main/java/at/petrak/hexcasting/common/impl/HexAPIImpl.java index 0ff996b907..c80424c0a5 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/impl/HexAPIImpl.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/impl/HexAPIImpl.java @@ -21,6 +21,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Collections; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.function.Consumer; @@ -96,50 +97,15 @@ public FrozenPigment getColorizer(Player player) { return IXplatAbstractions.INSTANCE.getPigment(player); } - ArmorMaterial ARMOR_MATERIAL = new ArmorMaterial() { - - @Override - public int getDurabilityForType(ArmorItem.Type type) { - return 0; - } - - @Override - public int getDefenseForType(ArmorItem.Type type) { - return 0; - } - - @Override - public int getEnchantmentValue() { - return 0; - } - - @NotNull - @Override - public SoundEvent getEquipSound() { - return SoundEvents.ARMOR_EQUIP_LEATHER; - } - - @NotNull - @Override - public Ingredient getRepairIngredient() { - return Ingredient.EMPTY; - } - - @Override - public String getName() { - return "robes"; - } - - @Override - public float getToughness() { - return 0; - } - - @Override - public float getKnockbackResistance() { - return 0; - } - }; + ArmorMaterial ARMOR_MATERIAL = new ArmorMaterial( + Collections.emptyMap(), + 0, + SoundEvents.ARMOR_EQUIP_LEATHER, + () -> Ingredient.EMPTY, + Collections.emptyList(), // TODO check textures. If not - use robes here from original code + 0, + 0 + ); @Override public ArmorMaterial robesMaterial() { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/HexBaubleItem.java b/Common/src/main/java/at/petrak/hexcasting/common/items/HexBaubleItem.java index ed208b1b64..fc84afbeb4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/HexBaubleItem.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/HexBaubleItem.java @@ -1,6 +1,7 @@ package at.petrak.hexcasting.common.items; import com.google.common.collect.Multimap; +import net.minecraft.core.Holder; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.item.ItemStack; @@ -10,5 +11,5 @@ * I feel like botnia probably does it this way becase it's older than xplat curios */ public interface HexBaubleItem { - Multimap getHexBaubleAttrs(ItemStack stack); + Multimap, AttributeModifier> getHexBaubleAttrs(ItemStack stack); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/ItemJewelerHammer.java b/Common/src/main/java/at/petrak/hexcasting/common/items/ItemJewelerHammer.java index d5b059f5f7..f1d6135e74 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/ItemJewelerHammer.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/ItemJewelerHammer.java @@ -2,16 +2,18 @@ import at.petrak.hexcasting.common.lib.HexItems; import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.PickaxeItem; import net.minecraft.world.item.Tier; +import net.minecraft.world.item.component.ItemAttributeModifiers; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; public class ItemJewelerHammer extends PickaxeItem { - public ItemJewelerHammer(Tier tier, int damageMod, float attackSpeedMod, Properties props) { - super(tier, damageMod, attackSpeedMod, props); + public ItemJewelerHammer(Tier tier, Properties props) { + super(tier, props); } public static boolean shouldFailToBreak(Player player, BlockState state, BlockPos pos) { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/ItemLens.java b/Common/src/main/java/at/petrak/hexcasting/common/items/ItemLens.java index 4b77873f29..c093ef4307 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/ItemLens.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/ItemLens.java @@ -1,41 +1,44 @@ package at.petrak.hexcasting.common.items; import at.petrak.hexcasting.annotations.SoftImplement; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.common.lib.HexAttributes; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; -import net.minecraft.core.BlockSource; +import net.minecraft.core.Holder; +import net.minecraft.core.dispenser.BlockSource; import net.minecraft.core.dispenser.OptionalDispenseItemBehavior; import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.EquipmentSlotGroup; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; //import net.minecraft.world.item.Wearable; +import net.minecraft.world.item.component.ItemAttributeModifiers; import net.minecraft.world.level.block.DispenserBlock; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.UUID; +import static at.petrak.hexcasting.api.HexAPI.modLoc; + public class ItemLens extends Item implements HexBaubleItem { // Wearable, // The 0.1 is *additive* public static final AttributeModifier GRID_ZOOM = new AttributeModifier( - UUID.fromString("59d739b8-d419-45f7-a4ea-0efee0e3adf5"), - "Scrying Lens Zoom", 0.33, AttributeModifier.Operation.MULTIPLY_BASE); + HexAPI.modLoc("scrying_lens_zoom"), 0.33, AttributeModifier.Operation.ADD_MULTIPLIED_BASE); public static final AttributeModifier SCRY_SIGHT = new AttributeModifier( - UUID.fromString("e2e6e5d4-f978-4c11-8fdc-82a5af83385c"), - "Scrying Lens Sight", 1.0, AttributeModifier.Operation.ADDITION); + HexAPI.modLoc("scrying_lens_sight"), 1.0, AttributeModifier.Operation.ADD_VALUE); public ItemLens(Properties pProperties) { super(pProperties); DispenserBlock.registerBehavior(this, new OptionalDispenseItemBehavior() { - protected @NotNull - ItemStack execute(@NotNull BlockSource world, @NotNull ItemStack stack) { + protected @NotNull ItemStack execute(@NotNull BlockSource world, @NotNull ItemStack stack) { this.setSuccess(ArmorItem.dispenseArmor(world, stack)); return stack; } @@ -43,18 +46,8 @@ ItemStack execute(@NotNull BlockSource world, @NotNull ItemStack stack) { } @Override - public Multimap getDefaultAttributeModifiers(EquipmentSlot slot) { - var out = HashMultimap.create(super.getDefaultAttributeModifiers(slot)); - if (slot == EquipmentSlot.HEAD || slot == EquipmentSlot.MAINHAND || slot == EquipmentSlot.OFFHAND) { - out.put(HexAttributes.GRID_ZOOM, GRID_ZOOM); - out.put(HexAttributes.SCRY_SIGHT, SCRY_SIGHT); - } - return out; - } - - @Override - public Multimap getHexBaubleAttrs(ItemStack stack) { - HashMultimap out = HashMultimap.create(); + public Multimap, AttributeModifier> getHexBaubleAttrs(ItemStack stack) { + HashMultimap, AttributeModifier> out = HashMultimap.create(); out.put(HexAttributes.GRID_ZOOM, GRID_ZOOM); out.put(HexAttributes.SCRY_SIGHT, SCRY_SIGHT); return out; diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/ItemLoreFragment.java b/Common/src/main/java/at/petrak/hexcasting/common/items/ItemLoreFragment.java index 3d2f347bee..52e88072fd 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/ItemLoreFragment.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/ItemLoreFragment.java @@ -2,6 +2,7 @@ import at.petrak.hexcasting.common.lib.HexSounds; import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementHolder; import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -49,11 +50,11 @@ public InteractionResultHolder use(Level level, Player player, Intera return InteractionResultHolder.success(handStack); } - Advancement unfoundLore = null; + AdvancementHolder unfoundLore = null; var shuffled = new ArrayList<>(NAMES); Collections.shuffle(shuffled); for (var advID : shuffled) { - var adv = splayer.server.getAdvancements().getAdvancement(advID); + var adv = splayer.server.getAdvancements().get(advID); if (adv == null) { continue; // uh oh } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/ItemStaff.java b/Common/src/main/java/at/petrak/hexcasting/common/items/ItemStaff.java index c571aadf58..7fc41bdf3b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/ItemStaff.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/ItemStaff.java @@ -1,10 +1,13 @@ package at.petrak.hexcasting.common.items; import at.petrak.hexcasting.api.HexAPI; +import at.petrak.hexcasting.common.lib.HexAttributes; import at.petrak.hexcasting.common.lib.HexSounds; import at.petrak.hexcasting.common.msgs.MsgClearSpiralPatternsS2C; import at.petrak.hexcasting.common.msgs.MsgOpenSpellGuiS2C; import at.petrak.hexcasting.xplat.IXplatAbstractions; +import net.minecraft.core.Holder; +import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.stats.Stats; @@ -17,7 +20,7 @@ public class ItemStaff extends Item { // 0 = normal. 1 = old. 2 = cherry preview - public static final ResourceLocation FUNNY_LEVEL_PREDICATE = new ResourceLocation(HexAPI.MOD_ID, "funny_level"); + public static final ResourceLocation FUNNY_LEVEL_PREDICATE = ResourceLocation.fromNamespaceAndPath(HexAPI.MOD_ID, "funny_level"); public ItemStaff(Properties pProperties) { super(pProperties); @@ -25,6 +28,9 @@ public ItemStaff(Properties pProperties) { @Override public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + if (player.getAttributeValue(HexAttributes.FEEBLE_MIND) > 0){ + return InteractionResultHolder.fail(player.getItemInHand(hand)); + } if (player.isShiftKeyDown()) { if (world.isClientSide()) { player.playSound(HexSounds.STAFF_RESET, 1f, 1f); @@ -37,12 +43,16 @@ public InteractionResultHolder use(Level world, Player player, Intera } if (!world.isClientSide() && player instanceof ServerPlayer serverPlayer) { - var harness = IXplatAbstractions.INSTANCE.getStaffcastVM(serverPlayer, hand); + var vm = IXplatAbstractions.INSTANCE.getStaffcastVM(serverPlayer, hand); var patterns = IXplatAbstractions.INSTANCE.getPatternsSavedInUi(serverPlayer); - var descs = harness.generateDescs(); + + var userData = vm.getImage().getUserData(); + CompoundTag ravenmind = null; + if(userData.contains(HexAPI.RAVENMIND_USERDATA)) + ravenmind = userData.getCompound(HexAPI.RAVENMIND_USERDATA); IXplatAbstractions.INSTANCE.sendPacketToPlayer(serverPlayer, - new MsgOpenSpellGuiS2C(hand, patterns, descs.getFirst(), descs.getSecond(), + new MsgOpenSpellGuiS2C(hand, patterns, vm.getImage().getStack(), ravenmind, 0)); // TODO: Fix! } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/armor/ItemRobes.java b/Common/src/main/java/at/petrak/hexcasting/common/items/armor/ItemRobes.java index 3ec73cbdc6..9ddef43531 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/armor/ItemRobes.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/armor/ItemRobes.java @@ -1,6 +1,7 @@ package at.petrak.hexcasting.common.items.armor; import at.petrak.hexcasting.api.HexAPI; +import net.minecraft.core.Holder; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.ArmorItem; @@ -13,7 +14,7 @@ public class ItemRobes extends ArmorItem { public final ArmorItem.Type type; public ItemRobes(ArmorItem.Type type, Properties properties) { - super(HexAPI.instance().robesMaterial(), type, properties); + super(Holder.direct(HexAPI.instance().robesMaterial()), type, properties); this.type = type; } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/DebugUnlockerHolder.java b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/DebugUnlockerHolder.java index 045a6eeb76..a3bc73ded4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/DebugUnlockerHolder.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/DebugUnlockerHolder.java @@ -1,6 +1,7 @@ package at.petrak.hexcasting.common.items.magic; import at.petrak.hexcasting.api.addldata.ADMediaHolder; +import at.petrak.hexcasting.common.lib.HexDataComponents; import net.minecraft.world.item.ItemStack; public record DebugUnlockerHolder(ItemStack creativeUnlocker) implements ADMediaHolder { @@ -41,14 +42,14 @@ public boolean canConstructBattery() { @Override public long withdrawMedia(long cost, boolean simulate) { - ItemCreativeUnlocker.addToLongArray(creativeUnlocker, ItemCreativeUnlocker.TAG_EXTRACTIONS, cost); + ItemCreativeUnlocker.addToLongArray(creativeUnlocker, HexDataComponents.MEDIA_EXTRACTIONS, cost); return cost < 0 ? getMedia() : cost; } @Override public long insertMedia(long amount, boolean simulate) { - ItemCreativeUnlocker.addToLongArray(creativeUnlocker, ItemCreativeUnlocker.TAG_INSERTIONS, amount); + ItemCreativeUnlocker.addToLongArray(creativeUnlocker, HexDataComponents.MEDIA_INSERTIONS, amount); return amount; } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemAncientCypher.java b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemAncientCypher.java new file mode 100644 index 0000000000..b6e8d2ef02 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemAncientCypher.java @@ -0,0 +1,59 @@ +package at.petrak.hexcasting.common.items.magic; + +import at.petrak.hexcasting.api.casting.iota.IotaType; +import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexDataComponents; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class ItemAncientCypher extends ItemCypher { + public static final String TAG_HEX_NAME = "hex_name"; + + public ItemAncientCypher(Properties pProperties) { + super(pProperties); + } + + @Override + public void clearHex(ItemStack stack) { + super.clearHex(stack); + stack.remove(HexDataComponents.HEX_NAME); + } + + @Override + public Component getName(ItemStack stack) { + var descID = this.getDescriptionId(stack); + var hexName = stack.get(HexDataComponents.HEX_NAME); + if (hexName != null) { + return Component.translatable(descID + ".preset", Component.translatable(hexName)); + } else { + return Component.translatable(descID); + } + } + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + // display media fullness as usual + super.appendHoverText(stack, context, tooltipComponents, tooltipFlag); + + var patterns = stack.get(HexDataComponents.PATTERNS); + + // also show contained spell + if(patterns != null) { + var storedHex = Component.translatable("hexcasting.tooltip.stored_hex"); + + for(var iota : patterns) { + storedHex.append(iota.display().plainCopy().withStyle(ChatFormatting.DARK_PURPLE)); + } + + tooltipComponents.add(storedHex); + } + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemCreativeUnlocker.java b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemCreativeUnlocker.java index 586f8b2c02..9d989c3af6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemCreativeUnlocker.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemCreativeUnlocker.java @@ -4,12 +4,16 @@ import at.petrak.hexcasting.api.item.MediaHolderItem; import at.petrak.hexcasting.api.misc.DiscoveryHandlers; import at.petrak.hexcasting.api.misc.MediaConstants; -import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.common.items.ItemLoreFragment; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.common.lib.HexSounds; import net.minecraft.ChatFormatting; -import net.minecraft.advancements.Advancement; +import net.minecraft.Util; +import net.minecraft.advancements.AdvancementNode; +import net.minecraft.client.Minecraft; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; import net.minecraft.locale.Language; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -27,7 +31,6 @@ import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; -import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Arrays; @@ -70,7 +73,7 @@ public static boolean isDebug(ItemStack stack) { } public static boolean isDebug(ItemStack stack, String flag) { - if (!stack.is(HexItems.CREATIVE_UNLOCKER) || !stack.hasCustomHoverName()) { + if (!stack.is(HexItems.CREATIVE_UNLOCKER) || !stack.has(DataComponents.CUSTOM_NAME)) { return false; } var keywords = Arrays.asList(stack.getHoverName().getString().toLowerCase(Locale.ROOT).split(" ")); @@ -81,6 +84,7 @@ public static boolean isDebug(ItemStack stack, String flag) { } public static Component infiniteMedia(Level level) { + String prefix = "item.hexcasting.creative_unlocker."; String emphasis = Language.getInstance().getOrDefault(prefix + "for_emphasis"); @@ -124,31 +128,17 @@ public boolean canRecharge(ItemStack stack) { return true; } - public static void addToIntArray(ItemStack stack, String tag, int n) { - int[] arr = NBTHelper.getIntArray(stack, tag); - if (arr == null) { - arr = new int[0]; - } - int[] newArr = Arrays.copyOf(arr, arr.length + 1); - newArr[newArr.length - 1] = n; - NBTHelper.putIntArray(stack, tag, newArr); - } - - public static void addToLongArray(ItemStack stack, String tag, long n) { - long[] arr = NBTHelper.getLongArray(stack, tag); - if (arr == null) { - arr = new long[0]; - } - long[] newArr = Arrays.copyOf(arr, arr.length + 1); - newArr[newArr.length - 1] = n; - NBTHelper.putLongArray(stack, tag, newArr); + public static void addToLongArray(ItemStack stack, DataComponentType> type, long n) { + var list = stack.getOrDefault(type, new ArrayList()); + list.add(n); + stack.set(type, list); } @Override public long withdrawMedia(ItemStack stack, long cost, boolean simulate) { // In case it's withdrawn through other means if (!simulate && isDebug(stack, DISPLAY_MEDIA)) { - addToLongArray(stack, TAG_EXTRACTIONS, cost); + addToLongArray(stack, HexDataComponents.MEDIA_EXTRACTIONS, cost); } return cost < 0 ? getMedia(stack) : cost; @@ -158,7 +148,7 @@ public long withdrawMedia(ItemStack stack, long cost, boolean simulate) { public long insertMedia(ItemStack stack, long amount, boolean simulate) { // In case it's inserted through other means if (!simulate && isDebug(stack, DISPLAY_MEDIA)) { - addToLongArray(stack, TAG_INSERTIONS, amount); + addToLongArray(stack, HexDataComponents.MEDIA_INSERTIONS, amount); } return amount < 0 ? getMaxMedia(stack) : amount; @@ -172,16 +162,16 @@ public boolean isFoil(ItemStack stack) { @Override public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) { if (isDebug(stack, DISPLAY_MEDIA) && !level.isClientSide) { - debugDisplay(stack, TAG_EXTRACTIONS, "withdrawn", "all_media", entity); - debugDisplay(stack, TAG_INSERTIONS, "inserted", "infinite_media", entity); + debugDisplay(stack, HexDataComponents.MEDIA_EXTRACTIONS, "withdrawn", "all_media", entity); + debugDisplay(stack, HexDataComponents.MEDIA_INSERTIONS, "inserted", "infinite_media", entity); } } - private void debugDisplay(ItemStack stack, String tag, String langKey, String allKey, Entity entity) { - long[] arr = NBTHelper.getLongArray(stack, tag); - if (arr != null) { - NBTHelper.remove(stack, tag); - for (long i : arr) { + private void debugDisplay(ItemStack stack, DataComponentType> type, String langKey, String allKey, Entity entity) { + var list = stack.get(type); + if (list != null) { + stack.remove(type); + for (long i : list) { if (i < 0) { entity.sendSystemMessage(Component.translatable("hexcasting.debug.media_" + langKey, stack.getDisplayName(), @@ -217,19 +207,21 @@ public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity cons var names = new ArrayList<>(ItemLoreFragment.NAMES); names.add(0, modLoc("root")); for (var name : names) { - var rootAdv = slevel.getServer().getAdvancements().getAdvancement(name); + var rootAdv = slevel.getServer().getAdvancements().tree().get(name); if (rootAdv != null) { - var children = new ArrayList(); + var children = new ArrayList(); children.add(rootAdv); - addChildren(rootAdv, children); + collectChildrenRecursively(rootAdv, children); var adman = player.getAdvancements(); + + for (var kid : children) { - var progress = adman.getOrStartProgress(kid); + var progress = adman.getOrStartProgress(kid.holder()); if (!progress.isDone()) { for (String crit : progress.getRemainingCriteria()) { - adman.award(kid, crit); + adman.award(kid.holder(), crit); } } } @@ -244,7 +236,8 @@ public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity cons private static MutableComponent rainbow(MutableComponent component, int shift, Level level) { if (level == null) { - return component.withStyle(ChatFormatting.WHITE); + return component.withStyle((s) -> s.withColor( + TextColor.fromRgb(Mth.hsvToRgb((((float) Util.getMillis() / 50) + shift) * 2 % 360 / 360F, 1F, 1F)))); } return component.withStyle((s) -> s.withColor( @@ -252,9 +245,9 @@ private static MutableComponent rainbow(MutableComponent component, int shift, L } @Override - public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltipComponents, + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag isAdvanced) { - Component emphasized = infiniteMedia(level); + Component emphasized = infiniteMedia(null); MutableComponent modName = Component.translatable("item.hexcasting.creative_unlocker.mod_name").withStyle( (s) -> s.withColor(ItemMediaHolder.HEX_COLOR)); @@ -264,10 +257,10 @@ public void appendHoverText(ItemStack stack, @Nullable Level level, List out) { - for (Advancement kiddo : root.getChildren()) { + private static void collectChildrenRecursively(AdvancementNode root, List out) { + for (AdvancementNode kiddo : root.children()) { out.add(kiddo); - addChildren(kiddo, out); + collectChildrenRecursively(kiddo, out); } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemMediaHolder.java b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemMediaHolder.java index 5bc736a2fa..8603d61e98 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemMediaHolder.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemMediaHolder.java @@ -5,6 +5,7 @@ import at.petrak.hexcasting.api.utils.MathUtils; import at.petrak.hexcasting.api.utils.MediaHelper; import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexDataComponents; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextColor; import net.minecraft.util.Mth; @@ -39,8 +40,8 @@ public ItemMediaHolder(Properties pProperties) { public static ItemStack withMedia(ItemStack stack, long media, long maxMedia) { Item item = stack.getItem(); if (item instanceof ItemMediaHolder) { - NBTHelper.putLong(stack, TAG_MEDIA, media); - NBTHelper.putLong(stack, TAG_MAX_MEDIA, maxMedia); + stack.set(HexDataComponents.MEDIA, media); + stack.set(HexDataComponents.MEDIA_MAX, media); } return stack; @@ -48,23 +49,19 @@ public static ItemStack withMedia(ItemStack stack, long media, long maxMedia) { @Override public long getMedia(ItemStack stack) { - if (NBTHelper.hasInt(stack, TAG_MEDIA)) - return NBTHelper.getInt(stack, TAG_MEDIA); - - return NBTHelper.getLong(stack, TAG_MEDIA); + var media = stack.get(HexDataComponents.MEDIA); + return media != null ? media : 0L; } @Override public long getMaxMedia(ItemStack stack) { - if (NBTHelper.hasInt(stack, TAG_MAX_MEDIA)) - return NBTHelper.getInt(stack, TAG_MAX_MEDIA); - - return NBTHelper.getLong(stack, TAG_MAX_MEDIA); + var maxMedia = stack.get(HexDataComponents.MEDIA_MAX); + return maxMedia != null ? maxMedia : 0L; } @Override public void setMedia(ItemStack stack, long media) { - NBTHelper.putLong(stack, TAG_MEDIA, MathUtils.clamp(media, 0, getMaxMedia(stack))); + stack.set(HexDataComponents.MEDIA, MathUtils.clamp(media, 0, getMaxMedia(stack))); } @Override @@ -86,18 +83,18 @@ public int getBarWidth(ItemStack pStack) { return MediaHelper.mediaBarWidth(media, maxMedia); } - @Override + // TODO port: where did it came from? + /*@Override public boolean canBeDepleted() { return false; - } + }*/ @Override - public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List pTooltipComponents, - TooltipFlag pIsAdvanced) { - var maxMedia = getMaxMedia(pStack); + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + var maxMedia = getMaxMedia(stack); if (maxMedia > 0) { - var media = getMedia(pStack); - var fullness = getMediaFullness(pStack); + var media = getMedia(stack); + var fullness = getMediaFullness(stack); var color = TextColor.fromRgb(MediaHelper.mediaBarColor(media, maxMedia)); @@ -109,11 +106,11 @@ public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List style.withColor(HEX_COLOR)); percentFull.withStyle(style -> style.withColor(color)); - pTooltipComponents.add( + tooltipComponents.add( Component.translatable("hexcasting.tooltip.media_amount.advanced", mediamount, maxCapacity, percentFull)); } - super.appendHoverText(pStack, pLevel, pTooltipComponents, pIsAdvanced); + super.appendHoverText(stack, context, tooltipComponents, tooltipFlag); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemPackagedHex.java b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemPackagedHex.java index a189fd0703..5f976f86d8 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemPackagedHex.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/magic/ItemPackagedHex.java @@ -9,6 +9,7 @@ import at.petrak.hexcasting.api.item.HexHolderItem; import at.petrak.hexcasting.api.pigment.FrozenPigment; import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.msgs.MsgNewSpiralPatternsS2C; import at.petrak.hexcasting.xplat.IXplatAbstractions; import net.minecraft.nbt.CompoundTag; @@ -22,6 +23,7 @@ import net.minecraft.stats.Stats; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.UseAnim; @@ -62,53 +64,34 @@ public boolean canProvideMedia(ItemStack stack) { @Override public boolean hasHex(ItemStack stack) { - return NBTHelper.hasList(stack, TAG_PROGRAM, Tag.TAG_COMPOUND); + return stack.has(HexDataComponents.PATTERNS); } @Override public @Nullable List getHex(ItemStack stack, ServerLevel level) { - var patsTag = NBTHelper.getList(stack, TAG_PROGRAM, Tag.TAG_COMPOUND); - - if (patsTag == null) { - return null; - } - - var out = new ArrayList(); - for (var patTag : patsTag) { - CompoundTag tag = NBTHelper.getAsCompound(patTag); - out.add(IotaType.deserialize(tag, level)); - } - return out; + return stack.get(HexDataComponents.PATTERNS); } @Override public void writeHex(ItemStack stack, List program, @Nullable FrozenPigment pigment, long media) { - ListTag patsTag = new ListTag(); - for (Iota pat : program) { - patsTag.add(IotaType.serialize(pat)); - } - - NBTHelper.putList(stack, TAG_PROGRAM, patsTag); + stack.set(HexDataComponents.PATTERNS, program); if (pigment != null) - NBTHelper.putCompound(stack, TAG_PIGMENT, pigment.serializeToNBT()); + stack.set(HexDataComponents.PIGMENT, pigment); withMedia(stack, media, media); } @Override public void clearHex(ItemStack stack) { - NBTHelper.remove(stack, TAG_PROGRAM); - NBTHelper.remove(stack, TAG_PIGMENT); - NBTHelper.remove(stack, TAG_MEDIA); - NBTHelper.remove(stack, TAG_MAX_MEDIA); + stack.remove(HexDataComponents.PATTERNS); + stack.remove(HexDataComponents.PIGMENT); + stack.remove(HexDataComponents.MEDIA); + stack.remove(HexDataComponents.MEDIA_MAX); } @Override public @Nullable FrozenPigment getPigment(ItemStack stack) { - var ctag = NBTHelper.getCompound(stack, TAG_PIGMENT); - if (ctag == null) - return null; - return FrozenPigment.fromNBT(ctag); + return stack.get(HexDataComponents.PIGMENT); } @Override @@ -128,8 +111,8 @@ public InteractionResultHolder use(Level world, Player player, Intera } var sPlayer = (ServerPlayer) player; var ctx = new PackagedItemCastEnv(sPlayer, usedHand); - var harness = CastingVM.empty(ctx); - var clientView = harness.queueExecuteAndWrapIotas(instrs, sPlayer.serverLevel()); + var vm = CastingVM.empty(ctx); + var clientView = vm.queueExecuteAndWrapIotas(instrs, sPlayer.serverLevel()); var patterns = instrs.stream() .filter(i -> i instanceof PatternIota) @@ -167,7 +150,7 @@ public InteractionResultHolder use(Level world, Player player, Intera if (broken) { stack.shrink(1); - player.broadcastBreakEvent(usedHand); + sPlayer.onEquippedItemBroken(stack.getItem(), usedHand == InteractionHand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND); return InteractionResultHolder.consume(stack); } else { return InteractionResultHolder.success(stack); diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemUUIDPigment.java b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemUUIDPigment.java index c895177f47..6ce75671e9 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemUUIDPigment.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/pigment/ItemUUIDPigment.java @@ -4,6 +4,7 @@ import at.petrak.hexcasting.api.item.PigmentItem; import at.petrak.hexcasting.api.pigment.ColorProvider; import at.petrak.paucal.api.PaucalAPI; +import at.petrak.paucal.xplat.common.ContributorsManifest; import com.google.gson.JsonElement; import com.google.gson.JsonPrimitive; import net.minecraft.world.item.Item; @@ -28,7 +29,7 @@ protected static class MyColorProvider extends ColorProvider { private final int[] colors; MyColorProvider(UUID owner) { - var contributor = PaucalAPI.instance().getContributor(owner); + var contributor = ContributorsManifest.getContributor(owner); if (contributor != null) { var colorList = contributor.otherVals().getAsJsonArray("hexcasting:colorizer"); if (colorList != null) { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemAbacus.java b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemAbacus.java index ad8527581f..fc12ecb0f2 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemAbacus.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemAbacus.java @@ -5,7 +5,9 @@ import at.petrak.hexcasting.api.casting.iota.IotaType; import at.petrak.hexcasting.api.item.IotaHolderItem; import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexSounds; +import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; @@ -17,20 +19,18 @@ import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; +import javax.xml.crypto.Data; import java.util.List; public class ItemAbacus extends Item implements IotaHolderItem { - public static final String TAG_VALUE = "value"; public ItemAbacus(Properties pProperties) { super(pProperties); } @Override - public @Nullable - CompoundTag readIotaTag(ItemStack stack) { - var datum = new DoubleIota(NBTHelper.getDouble(stack, TAG_VALUE)); - return IotaType.serialize(datum); + public @Nullable Iota readIota(ItemStack stack) { + return new DoubleIota(stack.getOrDefault(HexDataComponents.ABACUS_VALUE, 0.0)); } @Override @@ -52,13 +52,13 @@ public void writeDatum(ItemStack stack, Iota datum) { public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { var stack = player.getItemInHand(hand); if (player.isShiftKeyDown()) { - double oldNum = NBTHelper.getDouble(stack, TAG_VALUE); - stack.removeTagKey(TAG_VALUE); + Double oldNum = stack.get(HexDataComponents.ABACUS_VALUE); + stack.remove(HexDataComponents.ABACUS_VALUE); player.playSound(HexSounds.ABACUS_SHAKE, 1f, 1f); var key = "hexcasting.tooltip.abacus.reset"; - if (oldNum == 69) { + if (oldNum != null && oldNum == 69) { key += ".nice"; } player.displayClientMessage(Component.translatable(key), true); @@ -70,8 +70,7 @@ public InteractionResultHolder use(Level world, Player player, Intera } @Override - public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List pTooltipComponents, - TooltipFlag pIsAdvanced) { - IotaHolderItem.appendHoverText(this, pStack, pTooltipComponents, pIsAdvanced); + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + IotaHolderItem.appendHoverText(this, stack, tooltipComponents, tooltipFlag); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemFocus.java b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemFocus.java index 8d08c9923f..e713477d43 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemFocus.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemFocus.java @@ -5,9 +5,11 @@ import at.petrak.hexcasting.api.item.IotaHolderItem; import at.petrak.hexcasting.api.item.VariantItem; import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexDataComponents; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Unit; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; @@ -26,21 +28,13 @@ public class ItemFocus extends Item implements IotaHolderItem, VariantItem { public static final ResourceLocation VARIANT_PRED = modLoc("variant"); public static final int NUM_VARIANTS = 8; - public static final String TAG_DATA = "data"; - public static final String TAG_SEALED = "sealed"; - public ItemFocus(Properties pProperties) { super(pProperties); } - @Override - public @Nullable CompoundTag readIotaTag(ItemStack stack) { - return NBTHelper.getCompound(stack, TAG_DATA); - } - @Override public String getDescriptionId(ItemStack stack) { - return super.getDescriptionId(stack) + (NBTHelper.getBoolean(stack, TAG_SEALED) ? ".sealed" : ""); + return super.getDescriptionId(stack) + (stack.has(HexDataComponents.SEALED) ? ".sealed" : ""); } @Override @@ -56,25 +50,24 @@ public boolean canWrite(ItemStack stack, Iota datum) { @Override public void writeDatum(ItemStack stack, Iota datum) { if (datum == null) { - stack.removeTagKey(TAG_DATA); - stack.removeTagKey(TAG_SEALED); + stack.remove(HexDataComponents.IOTA); + stack.remove(HexDataComponents.SEALED); } else if (!isSealed(stack)) { - NBTHelper.put(stack, TAG_DATA, IotaType.serialize(datum)); + stack.set(HexDataComponents.IOTA, datum); } } @Override - public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List pTooltipComponents, - TooltipFlag pIsAdvanced) { - IotaHolderItem.appendHoverText(this, pStack, pTooltipComponents, pIsAdvanced); + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + IotaHolderItem.appendHoverText(this, stack, tooltipComponents, tooltipFlag); } public static boolean isSealed(ItemStack stack) { - return NBTHelper.getBoolean(stack, TAG_SEALED); + return stack.has(HexDataComponents.SEALED); } public static void seal(ItemStack stack) { - NBTHelper.putBoolean(stack, TAG_SEALED, true); + stack.set(HexDataComponents.SEALED, Unit.INSTANCE); } @Override @@ -85,6 +78,6 @@ public int numVariants() { @Override public void setVariant(ItemStack stack, int variant) { if (!isSealed(stack)) - NBTHelper.putInt(stack, TAG_VARIANT, clampVariant(variant)); + VariantItem.super.setVariant(stack, variant); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemScroll.java b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemScroll.java index 036e5129b4..9ba2cb5aec 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemScroll.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemScroll.java @@ -1,46 +1,57 @@ package at.petrak.hexcasting.common.items.storage; +import at.petrak.hexcasting.api.casting.ActionRegistryEntry; import at.petrak.hexcasting.api.casting.iota.Iota; +import at.petrak.hexcasting.api.casting.iota.NullIota; import at.petrak.hexcasting.api.casting.iota.PatternIota; import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.api.item.IotaHolderItem; import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.client.gui.PatternTooltipComponent; import at.petrak.hexcasting.common.entities.EntityWallScroll; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; import at.petrak.hexcasting.common.misc.PatternTooltip; +import at.petrak.hexcasting.common.casting.PatternRegistryManifest; import at.petrak.hexcasting.interop.inline.InlinePatternData; +import at.petrak.hexcasting.xplat.IXplatAbstractions; +import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; +import java.util.Objects; import java.util.Optional; +import java.util.List; import static at.petrak.hexcasting.api.HexAPI.modLoc; /** - * TAG_OP_ID and TAG_PATTERN: "Ancient Scroll of %s" (Great Spells) + * TAG_OP_ID and TAG_PATTERN: "Ancient Scroll of %s" (per-world pattern preloaded) + *
+ * TAG_OP_ID: "Ancient Scroll of %s" (per-world pattern loaded on inv tick) *
* TAG_PATTERN: "Scroll" (custom) *
* (none): "Empty Scroll" - *
- * TAG_OP_ID: invalid */ public class ItemScroll extends Item implements IotaHolderItem { - public static final String TAG_OP_ID = "op_id"; - public static final String TAG_PATTERN = "pattern"; public static final ResourceLocation ANCIENT_PREDICATE = modLoc("ancient"); public final int blockSize; @@ -50,18 +61,14 @@ public ItemScroll(Properties pProperties, int blockSize) { this.blockSize = blockSize; } - @Override - public @Nullable - CompoundTag readIotaTag(ItemStack stack) { - CompoundTag pattern = NBTHelper.getCompound(stack, TAG_PATTERN); - if (pattern == null) { - return null; + // this produces a scroll that will load the correct pattern for your world once it ticks + public static ItemStack withPerWorldPattern(ItemStack stack, ResourceKey action) { + Item item = stack.getItem(); + if (item instanceof ItemScroll) { + stack.set(HexDataComponents.ACTION, action); } - // We store only the data part of the iota; pretend the rest of it's there - var out = new CompoundTag(); - out.putString(HexIotaTypes.KEY_TYPE, "hexcasting:pattern"); - out.put(HexIotaTypes.KEY_DATA, pattern); - return out; + + return stack; } @Override @@ -78,9 +85,9 @@ public boolean canWrite(ItemStack stack, Iota datum) { public void writeDatum(ItemStack stack, Iota datum) { if (this.canWrite(stack, datum)) { if (datum instanceof PatternIota pat) { - NBTHelper.putCompound(stack, TAG_PATTERN, pat.getPattern().serializeToNBT()); + stack.set(HexDataComponents.PATTERN, pat.getPattern()); } else if (datum == null) { - NBTHelper.remove(stack, TAG_PATTERN); + stack.remove(HexDataComponents.PATTERN); } } } @@ -101,9 +108,9 @@ public InteractionResult useOn(UseOnContext ctx) { var scrollEntity = new EntityWallScroll(level, posInFront, direction, scrollStack, false, this.blockSize); // i guess - var stackTag = itemstack.getTag(); - if (stackTag != null) { - EntityType.updateCustomEntityTag(level, player, scrollEntity, stackTag); + var customData = itemstack.get(DataComponents.CUSTOM_DATA); + if (customData != null) { + EntityType.updateCustomEntityTag(level, player, scrollEntity, customData); } if (scrollEntity.survives()) { @@ -128,15 +135,14 @@ protected boolean mayPlace(Player pPlayer, Direction pDirection, ItemStack pHang @Override public Component getName(ItemStack pStack) { var descID = this.getDescriptionId(pStack); - var ancientId = NBTHelper.getString(pStack, TAG_OP_ID); - if (ancientId != null) { + var ancientAction = pStack.get(HexDataComponents.ACTION); + if (ancientAction != null) { return Component.translatable(descID + ".of", - Component.translatable("hexcasting.action." + ResourceLocation.tryParse(ancientId))); - } else if (NBTHelper.hasCompound(pStack, TAG_PATTERN)) { - var compound = NBTHelper.getCompound(pStack, ItemScroll.TAG_PATTERN); + Component.translatable("hexcasting.action." + ancientAction.location())); + } else if (pStack.has(HexDataComponents.PATTERN)) { + var pattern = pStack.get(HexDataComponents.PATTERN); var patternLabel = Component.literal(""); - if (compound != null) { - var pattern = HexPattern.fromNBT(compound); + if (pattern != null) { patternLabel = Component.literal(": ").append(new InlinePatternData(pattern).asText(false)); } return Component.translatable(descID).append(patternLabel); @@ -145,20 +151,48 @@ public Component getName(ItemStack pStack) { } } - // purposely no hover text + @Override + public void inventoryTick(ItemStack pStack, Level pLevel, Entity pEntity, int pSlotId, boolean pIsSelected) { + // the needs_purchase tag is used so you can't see the pattern on scrolls sold by a wandering trader + // once you put the scroll into your inventory, this removes the tag to reveal the pattern + if(pStack.has(HexDataComponents.NEEDS_PURCHASE)) + pStack.remove(HexDataComponents.NEEDS_PURCHASE); + // if op_id is set but there's no stored pattern, attempt to load the pattern on inv tick + if (pStack.has(HexDataComponents.ACTION) && !pStack.has(HexDataComponents.PATTERN) && pEntity.getServer() != null) { + var action = pStack.get(HexDataComponents.ACTION); + var pat = PatternRegistryManifest.getCanonicalStrokesPerWorld(action, pEntity.getServer().overworld()); + pStack.set(HexDataComponents.PATTERN, pat); + } + } + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + if (stack.has(HexDataComponents.NEEDS_PURCHASE)) { + var needsPurchase = Component.translatable("hexcasting.tooltip.scroll.needs_purchase"); + tooltipComponents.add(needsPurchase.withStyle(ChatFormatting.GRAY)); + } else if (stack.has(HexDataComponents.ACTION) && !stack.has(HexDataComponents.PATTERN)) { + var notLoaded = Component.translatable("hexcasting.tooltip.scroll.pattern_not_loaded"); + tooltipComponents.add(notLoaded.withStyle(ChatFormatting.GRAY)); + } + } @Override public Optional getTooltipImage(ItemStack stack) { - var compound = NBTHelper.getCompound(stack, ItemScroll.TAG_PATTERN); - if (compound != null) { - var pattern = HexPattern.fromNBT(compound); + var pattern = stack.get(HexDataComponents.PATTERN); + if (pattern != null && !stack.has(HexDataComponents.NEEDS_PURCHASE)) { return Optional.of(new PatternTooltip( pattern, - NBTHelper.hasString(stack, ItemScroll.TAG_OP_ID) + stack.has(HexDataComponents.ACTION) ? PatternTooltipComponent.ANCIENT_BG : PatternTooltipComponent.PRISTINE_BG)); } return Optional.empty(); } + + @Override + public @Nullable Iota readIota(ItemStack stack) { + var pattern = stack.get(HexDataComponents.PATTERN); + return pattern != null ? new PatternIota(pattern) : null; + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemSlate.java b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemSlate.java index 98227d1eab..69d8a4078c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemSlate.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemSlate.java @@ -9,10 +9,13 @@ import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.client.gui.PatternTooltipComponent; import at.petrak.hexcasting.common.blocks.circles.BlockEntitySlate; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; import at.petrak.hexcasting.common.misc.PatternTooltip; import at.petrak.hexcasting.interop.inline.InlinePatternData; +import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -21,6 +24,7 @@ import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.CustomData; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import org.jetbrains.annotations.Nullable; @@ -46,16 +50,7 @@ public Component getName(ItemStack pStack) { } public static Optional getPattern(ItemStack stack){ - var bet = NBTHelper.getCompound(stack, "BlockEntityTag"); - - if (bet != null && bet.contains(BlockEntitySlate.TAG_PATTERN, Tag.TAG_COMPOUND)) { - var patTag = bet.getCompound(BlockEntitySlate.TAG_PATTERN); - if (!patTag.isEmpty()) { - var pattern = HexPattern.fromNBT(patTag); - return Optional.of(pattern); - } - } - return Optional.empty(); + return Optional.ofNullable(stack.get(HexDataComponents.PATTERN)); } public static boolean hasPattern(ItemStack stack) { @@ -65,7 +60,7 @@ public static boolean hasPattern(ItemStack stack) { @SoftImplement("IForgeItem") public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) { if (!hasPattern(stack)) { - NBTHelper.remove(stack, "BlockEntityTag"); + stack.remove(HexDataComponents.PATTERN); } return false; } @@ -73,27 +68,13 @@ public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) { @Override public void inventoryTick(ItemStack pStack, Level pLevel, Entity pEntity, int pSlotId, boolean pIsSelected) { if (!hasPattern(pStack)) { - NBTHelper.remove(pStack, "BlockEntityTag"); + pStack.remove(HexDataComponents.PATTERN); } } @Override - public @Nullable - CompoundTag readIotaTag(ItemStack stack) { - var bet = NBTHelper.getCompound(stack, "BlockEntityTag"); - - if (bet == null || !bet.contains(BlockEntitySlate.TAG_PATTERN, Tag.TAG_COMPOUND)) { - return null; - } - - var patTag = bet.getCompound(BlockEntitySlate.TAG_PATTERN); - if (patTag.isEmpty()) { - return null; - } - var out = new CompoundTag(); - out.putString(HexIotaTypes.KEY_TYPE, "hexcasting:pattern"); - out.put(HexIotaTypes.KEY_DATA, patTag); - return out; + public @Nullable Iota readIota(ItemStack stack) { + return getPattern(stack).map(PatternIota::new).orElse(null); } @Override @@ -108,16 +89,11 @@ public boolean canWrite(ItemStack stack, Iota datum) { @Override public void writeDatum(ItemStack stack, Iota datum) { - if (this.canWrite(stack, datum)) { + if(this.canWrite(stack, datum)) { if (datum == null) { - var beTag = NBTHelper.getOrCreateCompound(stack, "BlockEntityTag"); - beTag.remove(BlockEntitySlate.TAG_PATTERN); - if (beTag.isEmpty()) { - NBTHelper.remove(stack, "BlockEntityTag"); - } + stack.remove(HexDataComponents.PATTERN); } else if (datum instanceof PatternIota pat) { - var beTag = NBTHelper.getOrCreateCompound(stack, "BlockEntityTag"); - beTag.put(BlockEntitySlate.TAG_PATTERN, pat.getPattern().serializeToNBT()); + stack.set(HexDataComponents.PATTERN, pat.getPattern()); } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemSpellbook.java b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemSpellbook.java index b7521f7619..d2523eb875 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemSpellbook.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemSpellbook.java @@ -5,7 +5,9 @@ import at.petrak.hexcasting.api.item.IotaHolderItem; import at.petrak.hexcasting.api.item.VariantItem; import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexDataComponents; import net.minecraft.ChatFormatting; +import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; @@ -17,28 +19,15 @@ import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; +import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Stream; import static at.petrak.hexcasting.common.items.storage.ItemFocus.NUM_VARIANTS; public class ItemSpellbook extends Item implements IotaHolderItem, VariantItem { - public static String TAG_SELECTED_PAGE = "page_idx"; - // this is a CompoundTag of string numerical keys to SpellData - // it is 1-indexed, so that 0/0 can be the special case of "it is empty" - public static String TAG_PAGES = "pages"; - - // this stores the names of pages, to be restored when you scroll - // it is 1-indexed, and the 0-case for TAG_PAGES will be treated as 1 - public static String TAG_PAGE_NAMES = "page_names"; - - // this stores the sealed status of each page, to be restored when you scroll - // it is 1-indexed, and the 0-case for TAG_PAGES will be treated as 1 - public static String TAG_SEALED = "sealed_pages"; - - // this stores which variant of the spellbook should be rendered - public static final String TAG_VARIANT = "variant"; - public static final int MAX_PAGES = 64; public ItemSpellbook(Properties properties) { @@ -46,12 +35,11 @@ public ItemSpellbook(Properties properties) { } @Override - public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltip, - TooltipFlag isAdvanced) { + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag isAdvanced) { boolean sealed = isSealed(stack); boolean empty = false; - if (NBTHelper.hasNumber(stack, TAG_SELECTED_PAGE)) { - var pageIdx = NBTHelper.getInt(stack, TAG_SELECTED_PAGE); + if (stack.has(HexDataComponents.SELECTED_PAGE)) { + var pageIdx = stack.get(HexDataComponents.SELECTED_PAGE); int highest = highestPage(stack); if (highest != 0) { if (sealed) { @@ -74,7 +62,7 @@ public void appendHoverText(ItemStack stack, @Nullable Level level, List(savedNames); + mutNames.put(nameKey, customName); + stack.set(HexDataComponents.PAGE_NAMES, mutNames); + } + } else { + var mutNames = new HashMap(); + mutNames.put(nameKey, customName); + stack.set(HexDataComponents.PAGE_NAMES, mutNames); + } + } else if(savedNames != null) { + var mutNames = new HashMap<>(savedNames); + mutNames.remove(nameKey); + if(mutNames.isEmpty()) { + stack.remove(HexDataComponents.PAGE_NAMES); + } else { + stack.set(HexDataComponents.PAGE_NAMES, mutNames); + } } } public static boolean arePagesEmpty(ItemStack stack) { - CompoundTag tag = NBTHelper.getCompound(stack, TAG_PAGES); - return tag == null || tag.isEmpty(); + var pages = stack.get(HexDataComponents.PAGES); + return pages == null || pages.isEmpty(); } @Override - public @Nullable - CompoundTag readIotaTag(ItemStack stack) { + public @Nullable Iota readIota(ItemStack stack) { int idx = getPage(stack, 1); var key = String.valueOf(idx); - var tag = NBTHelper.getCompound(stack, TAG_PAGES); - if (tag != null && tag.contains(key, Tag.TAG_COMPOUND)) { - return tag.getCompound(key); + var pages = stack.get(HexDataComponents.PAGES); + if (pages != null && pages.containsKey(key)) { + return pages.get(key); } else { return null; } @@ -146,30 +152,61 @@ public void writeDatum(ItemStack stack, Iota datum) { int idx = getPage(stack, 1); var key = String.valueOf(idx); - CompoundTag pages = NBTHelper.getCompound(stack, TAG_PAGES); + + var pages = stack.get(HexDataComponents.PAGES); + if (pages != null) { + var pagesMut = new HashMap<>(pages); + if (datum == null) { - pages.remove(key); - NBTHelper.remove(NBTHelper.getCompound(stack, TAG_SEALED), key); + pagesMut.remove(key); + var seals = stack.get(HexDataComponents.PAGE_SEALS); + if(seals != null) { + var sealsMut = new HashMap<>(seals); + + sealsMut.remove(key); + + if(sealsMut.isEmpty()) { + stack.remove(HexDataComponents.PAGE_SEALS); + } else { + stack.set(HexDataComponents.PAGE_SEALS, sealsMut); + } + } } else { - pages.put(key, IotaType.serialize(datum)); + pagesMut.put(key, datum); } - if (pages.isEmpty()) { - NBTHelper.remove(stack, TAG_PAGES); + if (pagesMut.isEmpty()) { + stack.remove(HexDataComponents.PAGES); + } else { + stack.set(HexDataComponents.PAGES, pagesMut); } } else if (datum != null) { - NBTHelper.getOrCreateCompound(stack, TAG_PAGES).put(key, IotaType.serialize(datum)); + var map = new HashMap(); + map.put(key, datum); + stack.set(HexDataComponents.PAGES, map); } else { - NBTHelper.remove(NBTHelper.getCompound(stack, TAG_SEALED), key); + var seals = stack.get(HexDataComponents.PAGE_SEALS); + if(seals != null) { + var sealsMut = new HashMap<>(seals); + sealsMut.remove(key); + + if(sealsMut.isEmpty()) { + stack.remove(HexDataComponents.PAGE_SEALS); + } else { + stack.set(HexDataComponents.PAGE_SEALS, sealsMut); + } + } } } public static int getPage(ItemStack stack, int ifEmpty) { if (arePagesEmpty(stack)) { return ifEmpty; - } else if (NBTHelper.hasNumber(stack, TAG_SELECTED_PAGE)) { - int index = NBTHelper.getInt(stack, TAG_SELECTED_PAGE); + } else if (stack.has(HexDataComponents.SELECTED_PAGE)) { + var index = stack.get(HexDataComponents.SELECTED_PAGE); + if(index == null) + return 1; if (index == 0) { index = 1; } @@ -183,36 +220,41 @@ public static void setSealed(ItemStack stack, boolean sealed) { int index = getPage(stack, 1); String nameKey = String.valueOf(index); - CompoundTag names = NBTHelper.getOrCreateCompound(stack, TAG_SEALED); + + var seals = stack.get(HexDataComponents.PAGE_SEALS); + + var sealsMut = seals != null ? new HashMap<>(seals) : new HashMap(); if (!sealed) { - names.remove(nameKey); + sealsMut.remove(nameKey); } else { - names.putBoolean(nameKey, true); + sealsMut.put(nameKey, true); } - if (names.isEmpty()) { - NBTHelper.remove(stack, TAG_SEALED); + if (sealsMut.isEmpty()) { + stack.remove(HexDataComponents.PAGE_SEALS); } else { - NBTHelper.putCompound(stack, TAG_SEALED, names); + stack.set(HexDataComponents.PAGE_SEALS, sealsMut); } - } public static boolean isSealed(ItemStack stack) { int index = getPage(stack, 1); String nameKey = String.valueOf(index); - CompoundTag names = NBTHelper.getCompound(stack, TAG_SEALED); - return NBTHelper.getBoolean(names, nameKey); + var seals = stack.get(HexDataComponents.PAGE_SEALS); + if(seals == null) + return false; + var v = seals.get(nameKey); + return v != null && v; } public static int highestPage(ItemStack stack) { - CompoundTag tag = NBTHelper.getCompound(stack, TAG_PAGES); - if (tag == null) { + var pages = stack.get(HexDataComponents.PAGES); + if (pages == null) { return 0; } - return tag.getAllKeys().stream().flatMap(s -> { + return pages.keySet().stream().flatMap(s -> { try { return Stream.of(Integer.parseInt(s)); } catch (NumberFormatException e) { @@ -221,23 +263,23 @@ public static int highestPage(ItemStack stack) { }).max(Integer::compare).orElse(0); } - public static int rotatePageIdx(ItemStack stack, boolean increase) { + public static int rotatePageIdx(ItemStack stack, boolean increase, Level level) { int idx = getPage(stack, 0); if (idx != 0) { idx += increase ? 1 : -1; idx = Math.max(1, idx); } idx = Mth.clamp(idx, 0, MAX_PAGES); - NBTHelper.putInt(stack, TAG_SELECTED_PAGE, idx); + stack.set(HexDataComponents.SELECTED_PAGE, idx); - CompoundTag names = NBTHelper.getCompound(stack, TAG_PAGE_NAMES); + var names = stack.getOrDefault(HexDataComponents.PAGE_NAMES, Collections.emptyMap()); int shiftedIdx = Math.max(1, idx); String nameKey = String.valueOf(shiftedIdx); - String name = NBTHelper.getString(names, nameKey); + Component name = names.get(nameKey); if (name != null) { - stack.setHoverName(Component.Serializer.fromJson(name)); + stack.set(DataComponents.CUSTOM_NAME, name); } else { - stack.resetHoverName(); + stack.remove(DataComponents.CUSTOM_NAME); } return idx; @@ -251,6 +293,6 @@ public int numVariants() { @Override public void setVariant(ItemStack stack, int variant) { if (!isSealed(stack)) - NBTHelper.putInt(stack, TAG_VARIANT, clampVariant(variant)); + stack.set(HexDataComponents.VARIANT, clampVariant(variant)); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemThoughtKnot.java b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemThoughtKnot.java index 9e867cc250..2cc1ec3033 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemThoughtKnot.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/items/storage/ItemThoughtKnot.java @@ -4,6 +4,7 @@ import at.petrak.hexcasting.api.casting.iota.IotaType; import at.petrak.hexcasting.api.item.IotaHolderItem; import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexDataComponents; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -21,20 +22,13 @@ public class ItemThoughtKnot extends Item implements IotaHolderItem { public static final ResourceLocation WRITTEN_PRED = modLoc("written"); - public static final String TAG_DATA = "data"; - public ItemThoughtKnot(Properties properties) { super(properties); } - @Override - public @Nullable CompoundTag readIotaTag(ItemStack stack) { - return NBTHelper.getCompound(stack, TAG_DATA); - } - @Override public boolean writeable(ItemStack stack) { - return !NBTHelper.contains(stack, TAG_DATA); + return !stack.has(HexDataComponents.IOTA); } @Override @@ -45,12 +39,12 @@ public boolean canWrite(ItemStack stack, @Nullable Iota iota) { @Override public void writeDatum(ItemStack stack, @Nullable Iota iota) { if (iota != null) { - NBTHelper.putCompound(stack, TAG_DATA, IotaType.serialize(iota)); + stack.set(HexDataComponents.IOTA, iota); } } @Override - public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, + public void appendHoverText(ItemStack pStack, TooltipContext context, List pTooltipComponents, TooltipFlag pIsAdvanced) { IotaHolderItem.appendHoverText(this, pStack, pTooltipComponents, pIsAdvanced); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexAttributes.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexAttributes.java index 844ff55883..707ec6544c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexAttributes.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexAttributes.java @@ -1,45 +1,43 @@ package at.petrak.hexcasting.common.lib; -import at.petrak.hexcasting.api.HexAPI; -import net.minecraft.resources.ResourceLocation; +import at.petrak.hexcasting.api.casting.eval.env.PlayerBasedCastEnv; +import at.petrak.hexcasting.xplat.IXplatAbstractions; +import at.petrak.hexcasting.xplat.IXplatRegister; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.RangedAttribute; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.function.BiConsumer; +import static at.petrak.hexcasting.api.HexAPI.MOD_ID; -import static at.petrak.hexcasting.api.HexAPI.modLoc; - -/** - * On forge: these are setup in ForgeHexInit - * On fabric: it's a mixin - *

- * TODO how to do this in 1.21 - */ public class HexAttributes { - public static void register(BiConsumer r) { - for (var e : ATTRIBUTES.entrySet()) { - r.accept(e.getValue(), e.getKey()); - } - } + private static final IXplatRegister REGISTER = IXplatAbstractions.INSTANCE + .createRegistar(Registries.ATTRIBUTE); - private static final Map ATTRIBUTES = new LinkedHashMap<>(); + public static void register() { + REGISTER.registerAll(); + } - public static final Attribute GRID_ZOOM = make("grid_zoom", new RangedAttribute( - HexAPI.MOD_ID + ".attributes.grid_zoom", 1.0, 0.5, 4.0)).setSyncable(true); + public static final Holder GRID_ZOOM = REGISTER.registerHolder("grid_zoom", () -> new RangedAttribute( + MOD_ID + ".attributes.grid_zoom", 1.0, 0.5, 4.0).setSyncable(true)); /** * Whether you have the lens overlay when looking at something. 0 = no, > 0 = yes. */ - public static final Attribute SCRY_SIGHT = make("scry_sight", new RangedAttribute( - HexAPI.MOD_ID + ".attributes.scry_sight", 0.0, 0.0, 1.0)).setSyncable(true); - - private static T make(String id, T attr) { - var old = ATTRIBUTES.put(modLoc(id), attr); - if (old != null) { - throw new IllegalArgumentException("Typo? Duplicate id " + id); - } - return attr; - } + public static final Holder SCRY_SIGHT = REGISTER.registerHolder("scry_sight", () -> new RangedAttribute( + MOD_ID + ".attributes.scry_sight", 0.0, 0.0, 1.0).setSyncable(true)); + + //whether the player is allowed to use staffcasting and scrying lenses + public static final Holder FEEBLE_MIND = REGISTER.registerHolder("feeble_mind", () -> new RangedAttribute( + MOD_ID + ".attributes.feeble_mind", 0.0, 0.0, 1.0).setSyncable(true)); + + //a multiplier to adjust media consumption across the board + public static final Holder MEDIA_CONSUMPTION_MODIFIER = REGISTER.registerHolder("media_consumption", () -> new RangedAttribute( + MOD_ID + ".attributes.media_consumption", 1.0, 0.0, Double.MAX_VALUE).setSyncable(true)); + + public static final Holder AMBIT_RADIUS = REGISTER.registerHolder("ambit_radius", () -> new RangedAttribute( + MOD_ID + ".attributes.ambit_radius", PlayerBasedCastEnv.DEFAULT_AMBIT_RADIUS, 0.0, Double.MAX_VALUE).setSyncable(true)); + + public static final Holder SENTINEL_RADIUS = REGISTER.registerHolder("sentinel_radius", () -> new RangedAttribute( + MOD_ID + ".attributes.sentinel_radius", PlayerBasedCastEnv.DEFAULT_SENTINEL_RADIUS, 0.0, Double.MAX_VALUE).setSyncable(true)); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexBlockEntities.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexBlockEntities.java index 6e22920668..e29584155a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexBlockEntities.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexBlockEntities.java @@ -80,7 +80,7 @@ public static BlockEntityType typeForQuenchedAllay(Blo private static BlockEntityType register(String id, BiFunction func, Block... blocks) { var ret = IXplatAbstractions.INSTANCE.createBlockEntityType(func, blocks); - var old = BLOCK_ENTITIES.put(new ResourceLocation(HexAPI.MOD_ID, id), ret); + var old = BLOCK_ENTITIES.put(ResourceLocation.fromNamespaceAndPath(HexAPI.MOD_ID, id), ret); if (old != null) { throw new IllegalArgumentException("Duplicate id " + id); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexBlocks.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexBlocks.java index 97e58a75e4..b97c799ef6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexBlocks.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexBlocks.java @@ -19,11 +19,9 @@ import at.petrak.hexcasting.common.blocks.decoration.*; import com.mojang.datafixers.util.Pair; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.ColorRGBA; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.*; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.MapColor; @@ -65,7 +63,7 @@ public static void registerBlockCreativeTab(Consumer r, CreativeModeTab t private static BlockBehaviour.Properties slateish() { return BlockBehaviour.Properties - .copy(Blocks.DEEPSLATE_TILES) + .ofFullCopy(Blocks.DEEPSLATE_TILES) .strength(4f, 4f); } @@ -85,7 +83,7 @@ private static BlockBehaviour.Properties akashicWoodyHard() { private static BlockBehaviour.Properties woodyHard(MapColor color) { return BlockBehaviour.Properties - .copy(Blocks.OAK_LOG) + .ofFullCopy(Blocks.OAK_LOG) .mapColor(color) .sound(SoundType.WOOD) .strength(3f, 4f); @@ -97,7 +95,7 @@ private static BlockBehaviour.Properties edifiedWoody() { private static BlockBehaviour.Properties woody(MapColor color) { return BlockBehaviour.Properties - .copy(Blocks.OAK_LOG) + .ofFullCopy(Blocks.OAK_LOG) .mapColor(color) .sound(SoundType.WOOD) .strength(2f); @@ -105,7 +103,7 @@ private static BlockBehaviour.Properties woody(MapColor color) { private static BlockBehaviour.Properties leaves(MapColor color) { return BlockBehaviour.Properties - .copy(Blocks.OAK_LEAVES) + .ofFullCopy(Blocks.OAK_LEAVES) .strength(0.2F) .randomTicks() .sound(SoundType.GRASS) @@ -118,7 +116,7 @@ private static BlockBehaviour.Properties leaves(MapColor color) { // we have to make it emit light because otherwise it occludes itself and is always dark private static BlockBehaviour.Properties quenched() { return BlockBehaviour.Properties - .copy(Blocks.AMETHYST_BLOCK) + .ofFullCopy(Blocks.AMETHYST_BLOCK) .lightLevel($ -> 4) .noOcclusion(); } @@ -189,7 +187,7 @@ private static BlockBehaviour.Properties quenched() { public static final BlockAkashicBookshelf AKASHIC_BOOKSHELF = blockItem("akashic_bookshelf", new BlockAkashicBookshelf(akashicWoodyHard() .lightLevel(bs -> (bs.getValue(BlockAkashicBookshelf.HAS_BOOKS)) ? 4 : 0))); - public static final BlockAkashicLigature AKASHIC_LIGATURE = blockItem("akashic_connector", + public static final BlockAkashicLigature AKASHIC_LIGATURE = blockItem("akashic_ligature", new BlockAkashicLigature(akashicWoodyHard().lightLevel(bs -> 4))); public static final BlockQuenchedAllay QUENCHED_ALLAY = blockItem("quenched_allay", new BlockQuenchedAllay(quenched())); @@ -203,17 +201,17 @@ private static BlockBehaviour.Properties quenched() { public static final Block SLATE_BRICKS = blockItem("slate_bricks", new Block(slateish().strength(2f, 4f))); public static final Block SLATE_BRICKS_SMALL = blockItem("slate_bricks_small", new Block(slateish().strength(2f, 4f))); public static final RotatedPillarBlock SLATE_PILLAR = blockItem("slate_pillar", new RotatedPillarBlock(slateish().strength(2f, 4f))); - public static final SandBlock AMETHYST_DUST_BLOCK = blockItem("amethyst_dust_block", - new SandBlock(0xff_b38ef3, BlockBehaviour.Properties.copy(Blocks.SAND).mapColor(MapColor.COLOR_PURPLE) + public static final ColoredFallingBlock AMETHYST_DUST_BLOCK = blockItem("amethyst_dust_block", + new ColoredFallingBlock(new ColorRGBA(0xb38ef3_ff), BlockBehaviour.Properties.ofFullCopy(Blocks.SAND).mapColor(MapColor.COLOR_PURPLE) .strength(0.5f).sound(SoundType.SAND))); public static final AmethystBlock AMETHYST_TILES = blockItem("amethyst_tiles", - new AmethystBlock(BlockBehaviour.Properties.copy(Blocks.AMETHYST_BLOCK))); + new AmethystBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.AMETHYST_BLOCK))); public static final AmethystBlock AMETHYST_BRICKS = blockItem("amethyst_bricks", - new AmethystBlock(BlockBehaviour.Properties.copy(Blocks.AMETHYST_BLOCK))); + new AmethystBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.AMETHYST_BLOCK))); public static final AmethystBlock AMETHYST_BRICKS_SMALL = blockItem("amethyst_bricks_small", - new AmethystBlock(BlockBehaviour.Properties.copy(Blocks.AMETHYST_BLOCK))); + new AmethystBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.AMETHYST_BLOCK))); public static final BlockAmethystDirectional AMETHYST_PILLAR = blockItem("amethyst_pillar", - new BlockAmethystDirectional(BlockBehaviour.Properties.copy(Blocks.AMETHYST_BLOCK))); + new BlockAmethystDirectional(BlockBehaviour.Properties.ofFullCopy(Blocks.AMETHYST_BLOCK))); public static final Block SLATE_AMETHYST_TILES = blockItem("slate_amethyst_tiles", new Block(slateish().strength(2f, 4f))); public static final Block SLATE_AMETHYST_BRICKS = blockItem("slate_amethyst_bricks", new Block(slateish().strength(2f, 4f))); public static final Block SLATE_AMETHYST_BRICKS_SMALL = blockItem("slate_amethyst_bricks_small", new Block(slateish().strength(2f, 4f))); @@ -275,8 +273,7 @@ private static BlockBehaviour.Properties quenched() { public static final ButtonBlock EDIFIED_BUTTON = blockItem("edified_button", new BlockHexWoodButton(edifiedWoody().noOcclusion().noCollission())); public static final PressurePlateBlock EDIFIED_PRESSURE_PLATE = blockItem("edified_pressure_plate", - new BlockHexPressurePlate(PressurePlateBlock.Sensitivity.EVERYTHING, - edifiedWoody().noOcclusion().noCollission())); + new BlockHexPressurePlate(edifiedWoody().noOcclusion().noCollission())); public static final BlockAkashicLeaves AMETHYST_EDIFIED_LEAVES = blockItem("amethyst_edified_leaves", new BlockAkashicLeaves(leaves(MapColor.COLOR_PURPLE))); public static final BlockAkashicLeaves AVENTURINE_EDIFIED_LEAVES = blockItem("aventurine_edified_leaves", diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexConfiguredFeatures.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexConfiguredFeatures.java index 05f06de4e8..391b9cac1b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexConfiguredFeatures.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexConfiguredFeatures.java @@ -12,6 +12,6 @@ public class HexConfiguredFeatures { public static final ResourceKey> CITRINE_EDIFIED_TREE = createKey("citrine_edified_tree"); private static ResourceKey> createKey(String name) { - return ResourceKey.create(Registries.CONFIGURED_FEATURE, new ResourceLocation(HexAPI.MOD_ID, name)); + return ResourceKey.create(Registries.CONFIGURED_FEATURE, ResourceLocation.fromNamespaceAndPath(HexAPI.MOD_ID, name)); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexCreativeTabs.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexCreativeTabs.java index 93cfd63011..9feb903d56 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexCreativeTabs.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexCreativeTabs.java @@ -1,14 +1,18 @@ package at.petrak.hexcasting.common.lib; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; +import at.petrak.hexcasting.common.items.storage.ItemScroll; import java.util.LinkedHashMap; import java.util.Map; import java.util.function.BiConsumer; +import static at.petrak.hexcasting.api.HexAPI.MOD_ID; import static at.petrak.hexcasting.api.HexAPI.modLoc; public class HexCreativeTabs { @@ -20,11 +24,18 @@ public static void registerCreativeTabs(BiConsumer TABS = new LinkedHashMap<>(); - public static final CreativeModeTab HEX = register("hexcasting", CreativeModeTab.builder(CreativeModeTab.Row.TOP, 7) + public static final CreativeModeTab HEX = register("hexcasting", CreativeModeTab.builder(CreativeModeTab.Row.TOP, 0) .icon(() -> new ItemStack(HexItems.SPELLBOOK))); + public static final ResourceKey HEX_KEY = ResourceKey.create(BuiltInRegistries.CREATIVE_MODE_TAB.key(), modLoc("hexcasting")); + + public static final CreativeModeTab SCROLLS = register("scrolls", CreativeModeTab.builder(CreativeModeTab.Row.TOP, 0) + .icon(() -> new ItemStack(HexItems.SCROLL_LARGE))); + + public static final ResourceKey SCROLLS_KEY = ResourceKey.create(BuiltInRegistries.CREATIVE_MODE_TAB.key(), modLoc("scrolls")); + private static CreativeModeTab register(String name, CreativeModeTab.Builder tabBuilder) { - var tab = tabBuilder.title(Component.translatable("itemGroup." + name)).build(); + var tab = tabBuilder.title(Component.translatable("itemGroup.hexcasting." + name)).build(); var old = TABS.put(modLoc(name), tab); if (old != null) { throw new IllegalArgumentException("Typo? Duplicate id " + name); diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDamageTypes.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDamageTypes.java index 6eb7c8f1fa..6bd0f900fc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDamageTypes.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDamageTypes.java @@ -9,8 +9,7 @@ import static at.petrak.hexcasting.api.HexAPI.modLoc; public class HexDamageTypes { - public static final ResourceKey OVERCAST = ResourceKey.create(Registries.DAMAGE_TYPE, modLoc( - "overcast")); + public static final ResourceKey OVERCAST = ResourceKey.create(Registries.DAMAGE_TYPE, modLoc("overcast")); public static void bootstrap(BootstrapContext ctx) { ctx.register(OVERCAST, new DamageType( diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDataComponents.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDataComponents.java new file mode 100644 index 0000000000..9c81dff7c9 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDataComponents.java @@ -0,0 +1,165 @@ +package at.petrak.hexcasting.common.lib; + +import at.petrak.hexcasting.api.casting.ActionRegistryEntry; +import at.petrak.hexcasting.api.casting.iota.Iota; +import at.petrak.hexcasting.api.casting.iota.IotaType; +import at.petrak.hexcasting.api.casting.math.HexPattern; +import at.petrak.hexcasting.api.pigment.FrozenPigment; +import com.mojang.serialization.Codec; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.ComponentSerialization; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Unit; + +import java.util.*; +import java.util.function.BiConsumer; + +import static at.petrak.hexcasting.api.HexAPI.modLoc; + +public class HexDataComponents { + public static void registerDataComponents(BiConsumer, ResourceLocation> r) { + for (var e : DATA_COMPONENTS.entrySet()) { + r.accept(e.getValue(), e.getKey()); + } + } + + private static final Map> DATA_COMPONENTS = new LinkedHashMap<>(); + + public static final DataComponentType PATTERN = register("pattern", + DataComponentType.builder() + .persistent(HexPattern.CODEC) + .networkSynchronized(HexPattern.STREAM_CODEC) + .build()); + public static final DataComponentType> ACTION = register("op_id", + DataComponentType.>builder() + .persistent(ResourceKey.codec(HexRegistries.ACTION)) + .networkSynchronized(ResourceKey.streamCodec(HexRegistries.ACTION)) + .build()); + public static final DataComponentType NEEDS_PURCHASE = register("needs_purchase", + DataComponentType.builder() + .networkSynchronized(StreamCodec.unit(Unit.INSTANCE)) + .build()); + /** + * If this datacomponent is set on the item, we ignore the rest of the item and render this as if it were of the + * {@link at.petrak.hexcasting.api.casting.iota.IotaType IotaType} given by the resource location. + *

+ * This is not useful to the player at all. + */ + public static final DataComponentType>> VISUAL_OVERRIDE = register("visual_override", + DataComponentType.>>builder() + .networkSynchronized(ByteBufCodecs.optional(ByteBufCodecs.registry(HexRegistries.IOTA_TYPE))) + .build()); + public static final DataComponentType VARIANT = register("variant", + DataComponentType.builder() + .persistent(Codec.intRange(0, Integer.MAX_VALUE)) + .networkSynchronized(ByteBufCodecs.VAR_INT) + .build()); + public static final DataComponentType SEALED = register("sealed", + DataComponentType.builder() + .persistent(Codec.unit(Unit.INSTANCE)) + .networkSynchronized(StreamCodec.unit(Unit.INSTANCE)) + .build()); + // TODO port: Data components must implement equals and hashCode. Keep in mind they must also be immutable + public static final DataComponentType IOTA = register("iota", + DataComponentType.builder() + .persistent(IotaType.TYPED_CODEC) + .networkSynchronized(IotaType.TYPED_STREAM_CODEC) + .build()); + + public static final DataComponentType> PATTERNS = register("patterns", + DataComponentType.>builder() + .persistent(IotaType.TYPED_CODEC.listOf()) + .networkSynchronized(IotaType.TYPED_STREAM_CODEC.apply(ByteBufCodecs.list())) + .build()); + public static final DataComponentType MEDIA = register("media", + DataComponentType.builder() + .persistent(Codec.LONG) + .networkSynchronized(ByteBufCodecs.VAR_LONG) + .build()); + public static final DataComponentType MEDIA_MAX = register("start_media", + DataComponentType.builder() + .persistent(Codec.LONG) + .networkSynchronized(ByteBufCodecs.VAR_LONG) + .build()); + public static final DataComponentType HEX_NAME = register("hex_name", + DataComponentType.builder() + .persistent(Codec.STRING) + .networkSynchronized(ByteBufCodecs.STRING_UTF8) + .build()); + + public static final DataComponentType PIGMENT = register("pigment", + DataComponentType.builder() + .persistent(FrozenPigment.CODEC) + .networkSynchronized(FrozenPigment.STREAM_CODEC) + .build()); + + public static final DataComponentType ABACUS_VALUE = register("abacus_value", + DataComponentType.builder() + .persistent(Codec.DOUBLE) + .networkSynchronized(ByteBufCodecs.DOUBLE) + .build()); + + public static final DataComponentType SELECTED_PAGE = register("page_idx", + DataComponentType.builder() + .persistent(Codec.INT) + .networkSynchronized(ByteBufCodecs.INT) + .build()); + + public static final DataComponentType> PAGES = register("pages", + DataComponentType.>builder() + .persistent(Codec.unboundedMap(Codec.STRING, IotaType.TYPED_CODEC)) + .networkSynchronized(ByteBufCodecs.map( + HashMap::newHashMap, + ByteBufCodecs.STRING_UTF8, + IotaType.TYPED_STREAM_CODEC + )) + .build()); + + public static final DataComponentType> PAGE_NAMES = register("page_names", + DataComponentType.>builder() + .persistent(Codec.unboundedMap(Codec.STRING, ComponentSerialization.CODEC)) + .networkSynchronized(ByteBufCodecs.map( + HashMap::newHashMap, + ByteBufCodecs.STRING_UTF8, + ComponentSerialization.STREAM_CODEC + )) + .build()); + + public static final DataComponentType> PAGE_SEALS = register("sealed_pages", + DataComponentType.>builder() + .persistent(Codec.unboundedMap(Codec.STRING, Codec.BOOL)) + .networkSynchronized(ByteBufCodecs.map( + HashMap::newHashMap, + ByteBufCodecs.STRING_UTF8, + ByteBufCodecs.BOOL + )) + .build()); + + public static final DataComponentType> MEDIA_EXTRACTIONS = register("media_extractions", + DataComponentType.>builder() + .persistent(Codec.LONG.listOf()) + .networkSynchronized(ByteBufCodecs.VAR_LONG.apply(ByteBufCodecs.list())) + .build()); + + public static final DataComponentType> MEDIA_INSERTIONS = register("media_insertions", + DataComponentType.>builder() + .persistent(Codec.LONG.listOf()) + .networkSynchronized(ByteBufCodecs.VAR_LONG.apply(ByteBufCodecs.list())) + .build()); + + + private static DataComponentType register( + String id, + DataComponentType lift + ) { + var old = DATA_COMPONENTS.put(modLoc(id), lift); + if (old != null) { + throw new IllegalArgumentException("Typo? Duplicate id " + id); + } + return lift; + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItemComponents.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItemComponents.java new file mode 100644 index 0000000000..a12af3bc05 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItemComponents.java @@ -0,0 +1,4 @@ +package at.petrak.hexcasting.common.lib; + +public class HexItemComponents { +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItems.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItems.java index a85889e104..86922ba750 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItems.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexItems.java @@ -1,6 +1,9 @@ package at.petrak.hexcasting.common.lib; import at.petrak.hexcasting.api.misc.MediaConstants; +import at.petrak.hexcasting.api.utils.HexUtils; +import at.petrak.hexcasting.api.casting.ActionRegistryEntry; +import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.items.ItemJewelerHammer; import at.petrak.hexcasting.common.items.ItemLens; import at.petrak.hexcasting.common.items.ItemLoreFragment; @@ -14,10 +17,16 @@ import at.petrak.hexcasting.xplat.IXplatAbstractions; import com.google.common.base.Suppliers; import net.minecraft.Util; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.EquipmentSlotGroup; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.*; +import net.minecraft.world.item.component.ItemAttributeModifiers; import org.jetbrains.annotations.Nullable; import java.util.*; @@ -35,7 +44,9 @@ public static void registerItems(BiConsumer r) { } public static void registerItemCreativeTab(CreativeModeTab.Output r, CreativeModeTab tab) { - for (var item : ITEM_TABS.getOrDefault(tab, List.of())) { + if (tab == HexCreativeTabs.SCROLLS) + generateScrollEntries(r); + for (var item : ITEM_TABS.getOrDefault(tab, Collections.emptyList())) { item.register(r); } } @@ -66,20 +77,33 @@ public static void registerItemCreativeTab(CreativeModeTab.Output r, CreativeMod public static final ItemStaff STAFF_MINDSPLICE = make("staff/mindsplice", new ItemStaff(unstackable())); public static final ItemLens SCRYING_LENS = make("lens", new ItemLens( - IXplatAbstractions.INSTANCE.addEquipSlotFabric(EquipmentSlot.HEAD) - .stacksTo(1))); + IXplatAbstractions.INSTANCE.addEquipSlotFabric(EquipmentSlot.HEAD) + .stacksTo(1))); public static final ItemAbacus ABACUS = make("abacus", new ItemAbacus(unstackable())); public static final ItemThoughtKnot THOUGHT_KNOT = make("thought_knot", new ItemThoughtKnot(unstackable())); public static final ItemFocus FOCUS = make("focus", new ItemFocus(unstackable())); public static final ItemSpellbook SPELLBOOK = make("spellbook", new ItemSpellbook(unstackable())); + public static final ItemCypher ANCIENT_CYPHER = make("ancient_cypher", new ItemAncientCypher(unstackable())); public static final ItemCypher CYPHER = make("cypher", new ItemCypher(unstackable())); public static final ItemTrinket TRINKET = make("trinket", new ItemTrinket(unstackable().rarity(Rarity.UNCOMMON))); public static final ItemArtifact ARTIFACT = make("artifact", new ItemArtifact(unstackable().rarity(Rarity.RARE))); public static final ItemJewelerHammer JEWELER_HAMMER = make("jeweler_hammer", - new ItemJewelerHammer(Tiers.IRON, 0, -2.8F, props().stacksTo(1).defaultDurability(Tiers.DIAMOND.getUses()))); + new ItemJewelerHammer(Tiers.IRON, props() + .stacksTo(1) + .durability(Tiers.DIAMOND.getUses()) + .attributes(ItemAttributeModifiers.builder() + .add(Attributes.ATTACK_SPEED, new AttributeModifier( + modLoc("jeweler_hammer_speed"), + -2.8, + AttributeModifier.Operation.ADD_VALUE + ), EquipmentSlotGroup.ANY) + .build() + ) + ) + ); public static final ItemScroll SCROLL_SMOL = make("scroll_small", new ItemScroll(props(), 1)); public static final ItemScroll SCROLL_MEDIUM = make("scroll_medium", new ItemScroll(props(), 2)); @@ -88,7 +112,7 @@ public static void registerItemCreativeTab(CreativeModeTab.Output r, CreativeMod public static final ItemSlate SLATE = make("slate", new ItemSlate(HexBlocks.SLATE, props())); public static final ItemMediaBattery BATTERY = make("battery", - new ItemMediaBattery(unstackable()), null); + new ItemMediaBattery(unstackable()), null); public static final Supplier BATTERY_DUST_STACK = addToTab(() -> ItemMediaBattery.withMedia( new ItemStack(HexItems.BATTERY), @@ -106,7 +130,6 @@ public static void registerItemCreativeTab(CreativeModeTab.Output r, CreativeMod new ItemStack(HexItems.BATTERY), MediaConstants.QUENCHED_SHARD_UNIT * 64, MediaConstants.QUENCHED_SHARD_UNIT * 64), HexCreativeTabs.HEX); - public static final Supplier BATTERY_QUENCHED_BLOCK_STACK = addToTab(() -> ItemMediaBattery.withMedia( new ItemStack(HexItems.BATTERY), MediaConstants.QUENCHED_BLOCK_UNIT * 64, @@ -123,27 +146,27 @@ public static void registerItemCreativeTab(CreativeModeTab.Output r, CreativeMod var out = new EnumMap(ItemPridePigment.Type.class); for (var politicsInMyVidya : ItemPridePigment.Type.values()) { out.put(politicsInMyVidya, make("pride_colorizer_" + politicsInMyVidya.getName(), - new ItemPridePigment(politicsInMyVidya, unstackable()))); + new ItemPridePigment(politicsInMyVidya, unstackable()))); } return out; }); public static final Item UUID_PIGMENT = make("uuid_colorizer", new ItemUUIDPigment(unstackable())); public static final Item DEFAULT_PIGMENT = make("default_colorizer", - new ItemAmethystAndCopperPigment(unstackable())); + new ItemAmethystAndCopperPigment(unstackable())); // BUFF SANDVICH public static final Item SUBMARINE_SANDWICH = make("sub_sandwich", - new Item(props().food(new FoodProperties.Builder().nutrition(14).saturationMod(1.2f).build()))); + new Item(props().food(new FoodProperties.Builder().nutrition(14).saturationModifier(1.2f).build()))); public static final ItemLoreFragment LORE_FRAGMENT = make("lore_fragment", - new ItemLoreFragment(unstackable() - .rarity(Rarity.RARE))); + new ItemLoreFragment(unstackable() + .rarity(Rarity.RARE))); public static final ItemCreativeUnlocker CREATIVE_UNLOCKER = make("creative_unlocker", - new ItemCreativeUnlocker(unstackable() - .rarity(Rarity.EPIC) - .food(new FoodProperties.Builder().nutrition(20).saturationMod(1f).alwaysEat().build()))); + new ItemCreativeUnlocker(unstackable() + .rarity(Rarity.EPIC) + .food(new FoodProperties.Builder().nutrition(20).saturationModifier(1f).alwaysEdible().build()))); // @@ -155,6 +178,21 @@ public static Item.Properties unstackable() { return props().stacksTo(1); } + private static void generateScrollEntries(CreativeModeTab.Output r) { + var keyList = new ArrayList>(); + Registry regi = IXplatAbstractions.INSTANCE.getActionRegistry(); + for (var key : regi.registryKeySet()) + if (HexUtils.isOfTag(regi, key, HexTags.Actions.PER_WORLD_PATTERN)) + keyList.add(key); + keyList.sort(Comparator.comparing(ResourceKey::location)); + for (var key : keyList) { + r.accept(ItemScroll.withPerWorldPattern( + new ItemStack(HexItems.SCROLL_LARGE), + key + )); + } + } + private static T make(ResourceLocation id, T item, @Nullable CreativeModeTab tab) { var old = ITEMS.put(id, item); if (old != null) { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexLootFunctions.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexLootFunctions.java index bebc94ad42..a8b813d5ba 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexLootFunctions.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexLootFunctions.java @@ -1,8 +1,10 @@ package at.petrak.hexcasting.common.lib; import at.petrak.hexcasting.common.loot.AddPerWorldPatternToScrollFunc; +import at.petrak.hexcasting.common.loot.AddHexToAncientCypherFunc; import at.petrak.hexcasting.common.loot.AmethystReducerFunc; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; import java.util.LinkedHashMap; @@ -12,20 +14,25 @@ import static at.petrak.hexcasting.api.HexAPI.modLoc; public class HexLootFunctions { - public static void registerSerializers(BiConsumer r) { + public static void registerSerializers(BiConsumer, ResourceLocation> r) { for (var e : LOOT_FUNCS.entrySet()) { r.accept(e.getValue(), e.getKey()); } } - private static final Map LOOT_FUNCS = new LinkedHashMap<>(); + private static final Map> LOOT_FUNCS = new LinkedHashMap<>(); - public static final LootItemFunctionType PATTERN_SCROLL = register("pattern_scroll", - new LootItemFunctionType(new AddPerWorldPatternToScrollFunc.Serializer())); - public static final LootItemFunctionType AMETHYST_SHARD_REDUCER = register("amethyst_shard_reducer", - new LootItemFunctionType(new AmethystReducerFunc.Serializer())); + public static final LootItemFunctionType PATTERN_SCROLL = register("pattern_scroll", + new LootItemFunctionType<>(AddPerWorldPatternToScrollFunc.CODEC)); + public static final LootItemFunctionType HEX_CYPHER = register("hex_cypher", + new LootItemFunctionType<>(AddHexToAncientCypherFunc.CODEC)); + public static final LootItemFunctionType AMETHYST_SHARD_REDUCER = register("amethyst_shard_reducer", + new LootItemFunctionType<>(AmethystReducerFunc.CODEC)); - private static LootItemFunctionType register(String id, LootItemFunctionType lift) { + private static LootItemFunctionType register( + String id, + LootItemFunctionType lift + ) { var old = LOOT_FUNCS.put(modLoc(id), lift); if (old != null) { throw new IllegalArgumentException("Typo? Duplicate id " + id); diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexMobEffects.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexMobEffects.java index 6398bfea27..f6be2e2757 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexMobEffects.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexMobEffects.java @@ -1,6 +1,11 @@ package at.petrak.hexcasting.common.lib; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.common.misc.HexMobEffect; +import at.petrak.hexcasting.xplat.IXplatAbstractions; +import at.petrak.hexcasting.xplat.IXplatRegister; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffectCategory; @@ -13,29 +18,18 @@ import static at.petrak.hexcasting.api.HexAPI.modLoc; public class HexMobEffects { - public static void register(BiConsumer r) { - for (var e : EFFECTS.entrySet()) { - r.accept(e.getValue(), e.getKey()); - } - } - - private static final Map EFFECTS = new LinkedHashMap<>(); - public static final MobEffect ENLARGE_GRID = make("enlarge_grid", - new HexMobEffect(MobEffectCategory.BENEFICIAL, 0xc875ff)) - .addAttributeModifier(HexAttributes.GRID_ZOOM, "d4afaf0f-df37-4253-9fa7-029e8e4415d9", - 0.25, AttributeModifier.Operation.MULTIPLY_TOTAL); - public static final MobEffect SHRINK_GRID = make("shrink_grid", - new HexMobEffect(MobEffectCategory.HARMFUL, 0xc0e660)) - .addAttributeModifier(HexAttributes.GRID_ZOOM, "1ce492a9-8bf5-4091-a482-c6d9399e448a", - -0.2, AttributeModifier.Operation.MULTIPLY_TOTAL); + private static final IXplatRegister REGISTER = IXplatAbstractions.INSTANCE + .createRegistar(Registries.MOB_EFFECT); - - private static T make(String id, T effect) { - var old = EFFECTS.put(modLoc(id), effect); - if (old != null) { - throw new IllegalArgumentException("Typo? Duplicate id " + id); - } - return effect; + public static void register() { + REGISTER.registerAll(); } + + public static final Holder ENLARGE_GRID = REGISTER.registerHolder("enlarge_grid", + () -> new HexMobEffect(MobEffectCategory.BENEFICIAL, 0xc875ff).addAttributeModifier(HexAttributes.GRID_ZOOM, HexAPI.modLoc("enlarge_grid"), + 0.25, AttributeModifier.Operation.ADD_MULTIPLIED_TOTAL)); + public static final Holder SHRINK_GRID = REGISTER.registerHolder("shrink_grid", + () -> new HexMobEffect(MobEffectCategory.HARMFUL, 0xc0e660).addAttributeModifier(HexAttributes.GRID_ZOOM, HexAPI.modLoc("shrink_grid"), + -0.2, AttributeModifier.Operation.ADD_MULTIPLIED_TOTAL)); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexPotions.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexPotions.java index e86409e77c..e9cad03dd4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexPotions.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexPotions.java @@ -1,26 +1,22 @@ package at.petrak.hexcasting.common.lib; +import net.minecraft.core.Holder; +import net.minecraft.core.RegistryAccess; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.item.Items; import net.minecraft.world.item.alchemy.Potion; +import net.minecraft.world.item.alchemy.PotionBrewing; import net.minecraft.world.item.alchemy.Potions; -import net.minecraft.world.item.Items; import java.util.LinkedHashMap; import java.util.Map; import java.util.function.BiConsumer; import static at.petrak.hexcasting.api.HexAPI.modLoc; -import at.petrak.hexcasting.mixin.accessor.AccessorPotionBrewing; public class HexPotions { - public static void register(BiConsumer r) { - for (var e : POTIONS.entrySet()) { - r.accept(e.getValue(), e.getKey()); - } - HexPotions.addRecipes(); - } - private static final Map POTIONS = new LinkedHashMap<>(); public static final Potion ENLARGE_GRID = make("enlarge_grid", @@ -37,17 +33,25 @@ public static void register(BiConsumer r) { public static final Potion SHRINK_GRID_STRONG = make("shrink_grid_strong", new Potion("shrink_grid_strong", new MobEffectInstance(HexMobEffects.SHRINK_GRID, 1800, 1))); - public static void addRecipes() { - AccessorPotionBrewing.addMix(Potions.AWKWARD, HexItems.AMETHYST_DUST, ENLARGE_GRID); - AccessorPotionBrewing.addMix(ENLARGE_GRID, Items.REDSTONE, ENLARGE_GRID_LONG); - AccessorPotionBrewing.addMix(ENLARGE_GRID, Items.GLOWSTONE_DUST, ENLARGE_GRID_STRONG); + public static void registerPotions(BiConsumer r) { + for (var e : POTIONS.entrySet()) { + r.accept(e.getValue(), e.getKey()); + } + } + + public static void addRecipes(PotionBrewing.Builder builder, RegistryAccess registryAccess) { + var potionRegistry = registryAccess.registryOrThrow(Registries.POTION); + + builder.addMix(Potions.AWKWARD, HexItems.AMETHYST_DUST, potionRegistry.wrapAsHolder(ENLARGE_GRID)); + builder.addMix(potionRegistry.wrapAsHolder(ENLARGE_GRID), Items.REDSTONE, potionRegistry.wrapAsHolder(ENLARGE_GRID_LONG)); + builder.addMix(potionRegistry.wrapAsHolder(ENLARGE_GRID), Items.GLOWSTONE_DUST, potionRegistry.wrapAsHolder(ENLARGE_GRID_STRONG)); - AccessorPotionBrewing.addMix(ENLARGE_GRID, Items.FERMENTED_SPIDER_EYE, SHRINK_GRID); - AccessorPotionBrewing.addMix(ENLARGE_GRID_LONG, Items.FERMENTED_SPIDER_EYE, SHRINK_GRID_LONG); - AccessorPotionBrewing.addMix(ENLARGE_GRID_STRONG, Items.FERMENTED_SPIDER_EYE, SHRINK_GRID_STRONG); + builder.addMix(potionRegistry.wrapAsHolder(ENLARGE_GRID), Items.FERMENTED_SPIDER_EYE, potionRegistry.wrapAsHolder(SHRINK_GRID)); + builder.addMix(potionRegistry.wrapAsHolder(ENLARGE_GRID_LONG), Items.FERMENTED_SPIDER_EYE, potionRegistry.wrapAsHolder(SHRINK_GRID_LONG)); + builder.addMix(potionRegistry.wrapAsHolder(ENLARGE_GRID_STRONG), Items.FERMENTED_SPIDER_EYE, potionRegistry.wrapAsHolder(SHRINK_GRID_STRONG)); - AccessorPotionBrewing.addMix(SHRINK_GRID, Items.REDSTONE, SHRINK_GRID_LONG); - AccessorPotionBrewing.addMix(SHRINK_GRID, Items.GLOWSTONE_DUST, SHRINK_GRID_STRONG); + builder.addMix(potionRegistry.wrapAsHolder(SHRINK_GRID), Items.REDSTONE, potionRegistry.wrapAsHolder(SHRINK_GRID_LONG)); + builder.addMix(potionRegistry.wrapAsHolder(SHRINK_GRID), Items.GLOWSTONE_DUST, potionRegistry.wrapAsHolder(SHRINK_GRID_STRONG)); } private static T make(String id, T potion) { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexRegistries.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexRegistries.java index e529e9b889..9ea3f26bec 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexRegistries.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexRegistries.java @@ -6,6 +6,8 @@ import at.petrak.hexcasting.api.casting.eval.sideeffects.EvalSound; import at.petrak.hexcasting.api.casting.eval.vm.ContinuationFrame; import at.petrak.hexcasting.api.casting.iota.IotaType; +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredientType; +import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredientType; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; @@ -18,4 +20,6 @@ public class HexRegistries { public static final ResourceKey> ARITHMETIC = ResourceKey.createRegistryKey(modLoc("arithmetic")); public static final ResourceKey>> CONTINUATION_TYPE = ResourceKey.createRegistryKey(modLoc("continuation_type")); public static final ResourceKey> EVAL_SOUND = ResourceKey.createRegistryKey(modLoc("eval_sound")); + public static final ResourceKey>> STATE_INGREDIENT = ResourceKey.createRegistryKey(modLoc("state_ingredient")); + public static final ResourceKey>> BRAINSWEEPEE_INGREDIENT = ResourceKey.createRegistryKey(modLoc("brainsweepee_ingredient")); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexActions.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexActions.java index dc57ed4997..634a0b4ef5 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexActions.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexActions.java @@ -275,16 +275,16 @@ public class HexActions { new ActionRegistryEntry(HexPattern.fromAngles("adaa", HexDir.WEST), OpBeep.INSTANCE)); public static final ActionRegistryEntry CRAFT$CYPHER = make("craft/cypher", new ActionRegistryEntry( - HexPattern.fromAngles("waqqqqq", HexDir.EAST), new OpMakePackagedSpell<>(HexItems.CYPHER, - MediaConstants.CRYSTAL_UNIT) + HexPattern.fromAngles("waqqqqq", HexDir.EAST), + new OpMakePackagedSpell(s -> (s.is(HexItems.CYPHER)||s.is(HexItems.ANCIENT_CYPHER)), HexItems.CYPHER.getDescription(), MediaConstants.CRYSTAL_UNIT) )); public static final ActionRegistryEntry CRAFT$TRINKET = make("craft/trinket", new ActionRegistryEntry( - HexPattern.fromAngles( - "wwaqqqqqeaqeaeqqqeaeq", HexDir.EAST), new OpMakePackagedSpell<>(HexItems.TRINKET, - 5 * MediaConstants.CRYSTAL_UNIT))); + HexPattern.fromAngles("wwaqqqqqeaqeaeqqqeaeq", HexDir.EAST), + new OpMakePackagedSpell(HexItems.TRINKET, 5 * MediaConstants.CRYSTAL_UNIT) + )); public static final ActionRegistryEntry CRAFT$ARTIFACT = make("craft/artifact", new ActionRegistryEntry( HexPattern.fromAngles("wwaqqqqqeawqwqwqwqwqwwqqeadaeqqeqqeadaeqq", HexDir.EAST), - new OpMakePackagedSpell<>(HexItems.ARTIFACT, 10 * MediaConstants.CRYSTAL_UNIT) + new OpMakePackagedSpell(HexItems.ARTIFACT, 10 * MediaConstants.CRYSTAL_UNIT) )); public static final ActionRegistryEntry CRAFT$BATTERY = make("craft/battery", new ActionRegistryEntry( HexPattern.fromAngles("aqqqaqwwaqqqqqeqaqqqawwqwqwqwqwqw", HexDir.SOUTH_WEST), OpMakeBattery.INSTANCE)); @@ -423,7 +423,7 @@ public class HexActions { // == Consts == public static final ActionRegistryEntry CONST$NULL = make("const/null", - new ActionRegistryEntry(HexPattern.fromAngles("d", HexDir.EAST), Action.makeConstantOp(new NullIota()))); + new ActionRegistryEntry(HexPattern.fromAngles("d", HexDir.EAST), Action.makeConstantOp(NullIota.INSTANCE))); public static final ActionRegistryEntry CONST$TRUE = make("const/true", new ActionRegistryEntry(HexPattern.fromAngles("aqae", diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexIotaTypes.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexIotaTypes.java index 0526e9ac56..e103d7720e 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexIotaTypes.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexIotaTypes.java @@ -19,18 +19,9 @@ @ParametersAreNonnullByDefault public class HexIotaTypes { public static final Registry> REGISTRY = IXplatAbstractions.INSTANCE.getIotaTypeRegistry(); - public static final String - KEY_TYPE = HexAPI.MOD_ID + ":type", - KEY_DATA = HexAPI.MOD_ID + ":data"; public static final int MAX_SERIALIZATION_DEPTH = 256; public static final int MAX_SERIALIZATION_TOTAL = 1024; - public static void registerTypes(BiConsumer, ResourceLocation> r) { - for (var e : TYPES.entrySet()) { - r.accept(e.getValue(), e.getKey()); - } - } - private static final Map> TYPES = new LinkedHashMap<>(); public static final IotaType NULL = type("null", NullIota.TYPE); @@ -43,6 +34,12 @@ public static void registerTypes(BiConsumer, ResourceLocation> r) { public static final IotaType VEC3 = type("vec3", Vec3Iota.TYPE); public static final IotaType CONTINUATION = type("continuation", ContinuationIota.TYPE); + public static void registerTypes(BiConsumer, ResourceLocation> r) { + for (var e : TYPES.entrySet()) { + r.accept(e.getValue(), e.getKey()); + } + } + private static > T type(String name, T type) { var old = TYPES.put(modLoc(name), type); diff --git a/Common/src/main/java/at/petrak/hexcasting/common/loot/AddHexToAncientCypherFunc.java b/Common/src/main/java/at/petrak/hexcasting/common/loot/AddHexToAncientCypherFunc.java new file mode 100644 index 0000000000..a82f688389 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/loot/AddHexToAncientCypherFunc.java @@ -0,0 +1,93 @@ +package at.petrak.hexcasting.common.loot; + +import at.petrak.hexcasting.api.casting.iota.PatternIota; +import at.petrak.hexcasting.api.casting.iota.IotaType; +import at.petrak.hexcasting.api.casting.math.HexDir; +import at.petrak.hexcasting.api.casting.math.HexPattern; +import at.petrak.hexcasting.api.item.VariantItem; +import at.petrak.hexcasting.api.misc.MediaConstants; +import at.petrak.hexcasting.common.items.magic.ItemAncientCypher; +import at.petrak.hexcasting.common.lib.HexDataComponents; +import at.petrak.hexcasting.common.lib.HexLootFunctions; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.util.RandomSource; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; +import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import com.mojang.datafixers.util.Pair; + +/** + * Add a random preset hex to the ancient cypher, and select a random variant. + *

+ * The function itself is only used on Fabric but the behavior {@link AddHexToAncientCypherFunc#doStatic} + * is used on both sides + */ +public class AddHexToAncientCypherFunc extends LootItemConditionalFunction { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + p_344674_ -> commonFields(p_344674_) + .apply(p_344674_, AddHexToAncientCypherFunc::new) + ); + + public AddHexToAncientCypherFunc(List lootItemConditions) { + super(lootItemConditions); + } + + /** + * This doesn't actually have any params so extract behaviour out for the benefit of forge + */ + public static ItemStack doStatic(ItemStack stack, RandomSource rand) { + var hex = LOOT_HEXES.get(rand.nextInt(LOOT_HEXES.size())); + + stack.set(HexDataComponents.HEX_NAME, hex.getFirst()); + stack.set(HexDataComponents.MEDIA, 32 * MediaConstants.SHARD_UNIT); + stack.set(HexDataComponents.MEDIA_MAX, 32 * MediaConstants.SHARD_UNIT); + stack.set(HexDataComponents.VARIANT, rand.nextInt(8)); + stack.set(HexDataComponents.PATTERNS, Arrays.stream(hex.getSecond()).map(el -> { + var pieces = el.split(" "); + return new PatternIota(HexPattern.fromAngles(pieces[1],HexDir.fromString(pieces[0]))); + }).collect(Collectors.toList())); + + return stack; + } + + @Override + protected ItemStack run(ItemStack stack, LootContext ctx) { + return doStatic(stack, ctx.getRandom()); + } + + @Override + public LootItemFunctionType getType() { + return HexLootFunctions.HEX_CYPHER; + } + + // TODO: make this datapackable + private static final List> LOOT_HEXES = List.of( + new Pair<>("hexcasting.loot_hex.shatter", new String[] {"NORTH_EAST qaq","EAST aa","NORTH_EAST qaq","NORTH_EAST wa","EAST wqaawdd","EAST qaqqqqq"}), + new Pair<>("hexcasting.loot_hex.kindle", new String[] {"NORTH_EAST qaq","EAST aa","NORTH_EAST qaq","NORTH_EAST wa","EAST wqaawdd","SOUTH_EAST aaqawawa"}), + new Pair<>("hexcasting.loot_hex.illuminate", new String[] {"NORTH_EAST qaq","EAST aa","NORTH_EAST qaq","NORTH_EAST wa","EAST aadadaaw","EAST wqaawdd","NORTH_EAST ddqdd","EAST weddwaa","NORTH_EAST waaw","NORTH_EAST qqd"}), + new Pair<>("hexcasting.loot_hex.growth", new String[] {"NORTH_EAST qaq","EAST aa","NORTH_EAST qaq","NORTH_EAST wa","EAST aadadaaw","EAST wqaawdd","NORTH_EAST ddqdd","EAST weddwaa","NORTH_EAST waaw","SOUTH_EAST aqaaedwd","EAST aadaadaa","NORTH_EAST wqaqwawqaqw","NORTH_EAST wqaqwawqaqw","NORTH_EAST wqaqwawqaqw"}), + new Pair<>("hexcasting.loot_hex.lunge", new String[] {"NORTH_EAST qaq","EAST aadaa","NORTH_EAST wa","SOUTH_EAST aqaawa","SOUTH_EAST waqaw","SOUTH_WEST awqqqwaqw"}), + new Pair<>("hexcasting.loot_hex.sidestep", new String[] {"NORTH_EAST qaq","EAST aadaa","NORTH_EAST wa","NORTH_WEST eqqq","SOUTH_EAST aqaawd","SOUTH_EAST e","NORTH_WEST qqqqqew","SOUTH_WEST eeeeeqw","SOUTH_EAST awdd","NORTH_EAST wdedw","SOUTH_WEST awqqqwaqw"}), + new Pair<>("hexcasting.loot_hex.ascend", new String[] {"NORTH_EAST qaq","SOUTH_EAST aqaae","WEST qqqqqawwawawd"}), + new Pair<>("hexcasting.loot_hex.blink", new String[] {"NORTH_EAST qaq","EAST aadaa","EAST aa","NORTH_EAST qaq","NORTH_EAST wa","EAST wqaawdd","NORTH_EAST qaq","EAST aa","NORTH_WEST wddw","NORTH_EAST wqaqw","SOUTH_EAST aqaaw","NORTH_WEST wddw","SOUTH_WEST awqqqwaq"}), + new Pair<>("hexcasting.loot_hex.blastoff", new String[] {"NORTH_EAST qaq","NORTH_WEST qqqqqew","SOUTH_EAST aqaawaa","SOUTH_EAST waqaw","SOUTH_WEST awqqqwaqw"}), + new Pair<>("hexcasting.loot_hex.radar", new String[] {"WEST qqq","EAST aadaa","EAST aa","SOUTH_EAST aqaawa","SOUTH_WEST ewdqdwe","NORTH_EAST de","EAST eee","NORTH_EAST qaq","EAST aa","SOUTH_EAST aqaaeaqq","SOUTH_EAST qqqqqwdeddwd","NORTH_EAST dadad"}), + new Pair<>("hexcasting.loot_hex.beckon", new String[] {"NORTH_EAST qaq","EAST aa","NORTH_EAST qaq","NORTH_EAST wa","EAST weaqa","EAST aadaa","EAST dd","NORTH_EAST qaq","EAST aa","EAST aawdd","NORTH_WEST wddw","EAST aadaa","NORTH_EAST wqaqw","NORTH_EAST wdedw","SOUTH_EAST aqaawa","SOUTH_EAST waqaw","SOUTH_WEST awqqqwaqw"}), + new Pair<>("hexcasting.loot_hex.detonate", new String[] {"NORTH_EAST qaq","EAST aa","SOUTH_EAST aqaaedwd","EAST ddwddwdd"}), + new Pair<>("hexcasting.loot_hex.shockwave", new String[] {"NORTH_EAST qaq","EAST aa","SOUTH_EAST aqaawaa","EAST aadaadaa","SOUTH_EAST aqawqadaq","SOUTH_EAST aqaaedwd","EAST aawaawaa","NORTH_EAST qqa","EAST qaqqqqq"}), + new Pair<>("hexcasting.loot_hex.heat_wave", new String[] {"WEST qqq","SOUTH_EAST aaqawawa","EAST eee","NORTH_EAST qaq","EAST aa","SOUTH_EAST aqaae","SOUTH_EAST qqqqqwded","SOUTH_WEST aaqwqaa","SOUTH_EAST a","NORTH_EAST dadad"}), + new Pair<>("hexcasting.loot_hex.wither_wave", new String[] {"WEST qqq","SOUTH_EAST aqaae","SOUTH_EAST aqaaw","SOUTH_WEST qqqqqaewawawe","EAST eee","NORTH_EAST qaq","EAST aa","SOUTH_EAST aqaae","SOUTH_EAST qqqqqwdeddwd","SOUTH_WEST aaqwqaa","SOUTH_EAST a","NORTH_EAST dadad"}), + new Pair<>("hexcasting.loot_hex.flight_zone", new String[] {"NORTH_EAST qaq","SOUTH_EAST aqaaq","SOUTH_WEST awawaawq"}) + ); +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/loot/AddPerWorldPatternToScrollFunc.java b/Common/src/main/java/at/petrak/hexcasting/common/loot/AddPerWorldPatternToScrollFunc.java index 30c9f97370..870714dd87 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/loot/AddPerWorldPatternToScrollFunc.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/loot/AddPerWorldPatternToScrollFunc.java @@ -3,23 +3,28 @@ import at.petrak.hexcasting.api.casting.ActionRegistryEntry; import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.api.utils.HexUtils; +import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.common.casting.PatternRegistryManifest; import at.petrak.hexcasting.common.items.storage.ItemScroll; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexLootFunctions; import at.petrak.hexcasting.xplat.IXplatAbstractions; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.util.RandomSource; import net.minecraft.core.Registry; -import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount; import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; import java.util.ArrayList; +import java.util.List; /** * Slap a random per-world pattern on the scroll. @@ -28,15 +33,19 @@ * is used on both sides */ public class AddPerWorldPatternToScrollFunc extends LootItemConditionalFunction { - public AddPerWorldPatternToScrollFunc(LootItemCondition[] lootItemConditions) { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + p_344674_ -> commonFields(p_344674_) + .apply(p_344674_, AddPerWorldPatternToScrollFunc::new) + ); + + public AddPerWorldPatternToScrollFunc(List lootItemConditions) { super(lootItemConditions); } /** * This doesn't actually have any params so extract behaviour out for the benefit of forge */ - public static ItemStack doStatic(ItemStack stack, LootContext ctx) { - var rand = ctx.getRandom(); + public static ItemStack doStatic(ItemStack stack, RandomSource rand, ServerLevel overworld) { var perWorldKeys = new ArrayList>(); Registry regi = IXplatAbstractions.INSTANCE.getActionRegistry(); for (var key : regi.registryKeySet()) { @@ -44,38 +53,20 @@ public static ItemStack doStatic(ItemStack stack, LootContext ctx) { perWorldKeys.add(key); } } - var key = perWorldKeys.get(rand.nextInt(perWorldKeys.size())); - - var pat = PatternRegistryManifest.getCanonicalStrokesPerWorld(key, ctx.getLevel().getServer().overworld()); - var tag = new CompoundTag(); - tag.putString(ItemScroll.TAG_OP_ID, key.location().toString()); - tag.put(ItemScroll.TAG_PATTERN, pat.serializeToNBT()); - - stack.getOrCreateTag().merge(tag); - + var patternKey = perWorldKeys.get(rand.nextInt(perWorldKeys.size())); + var pat = PatternRegistryManifest.getCanonicalStrokesPerWorld(patternKey, overworld); + stack.set(HexDataComponents.ACTION, patternKey); + stack.set(HexDataComponents.PATTERN, pat); return stack; } @Override protected ItemStack run(ItemStack stack, LootContext ctx) { - return doStatic(stack, ctx); + return doStatic(stack, ctx.getRandom(), ctx.getLevel().getServer().overworld()); } @Override - public LootItemFunctionType getType() { + public LootItemFunctionType getType() { return HexLootFunctions.PATTERN_SCROLL; } - - public static class Serializer extends LootItemConditionalFunction.Serializer { - @Override - public void serialize(JsonObject json, AddPerWorldPatternToScrollFunc value, JsonSerializationContext ctx) { - super.serialize(json, value, ctx); - } - - @Override - public AddPerWorldPatternToScrollFunc deserialize(JsonObject object, JsonDeserializationContext ctx, - LootItemCondition[] conditions) { - return new AddPerWorldPatternToScrollFunc(conditions); - } - } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/loot/AmethystReducerFunc.java b/Common/src/main/java/at/petrak/hexcasting/common/loot/AmethystReducerFunc.java index cee38be6dd..26c9be0992 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/loot/AmethystReducerFunc.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/loot/AmethystReducerFunc.java @@ -1,10 +1,9 @@ package at.petrak.hexcasting.common.loot; import at.petrak.hexcasting.common.lib.HexLootFunctions; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import net.minecraft.util.GsonHelper; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.storage.loot.LootContext; @@ -12,14 +11,28 @@ import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; +import java.util.List; + public class AmethystReducerFunc extends LootItemConditionalFunction { - public final double delta; + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + p_344674_ -> commonFields(p_344674_) + .and( + Codec.DOUBLE.fieldOf("delta").forGetter(AmethystReducerFunc::getDelta) + ) + .apply(p_344674_, AmethystReducerFunc::new) + ); + + private final double delta; - public AmethystReducerFunc(LootItemCondition[] lootItemConditions, double delta) { + public AmethystReducerFunc(List lootItemConditions, double delta) { super(lootItemConditions); this.delta = delta; } + public double getDelta() { + return delta; + } + public static ItemStack doStatic(ItemStack stack, LootContext ctx, double amount) { if (stack.is(Items.AMETHYST_SHARD)) { stack.setCount((int) (stack.getCount() * (1 + amount))); @@ -33,22 +46,7 @@ protected ItemStack run(ItemStack stack, LootContext ctx) { } @Override - public LootItemFunctionType getType() { + public LootItemFunctionType getType() { return HexLootFunctions.AMETHYST_SHARD_REDUCER; } - - public static class Serializer extends LootItemConditionalFunction.Serializer { - @Override - public void serialize(JsonObject json, AmethystReducerFunc value, JsonSerializationContext ctx) { - super.serialize(json, value, ctx); - json.addProperty("delta", value.delta); - } - - @Override - public AmethystReducerFunc deserialize(JsonObject object, JsonDeserializationContext ctx, - LootItemCondition[] conditions) { - var delta = GsonHelper.getAsDouble(object, "delta"); - return new AmethystReducerFunc(conditions, delta); - } - } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/loot/HexLootHandler.java b/Common/src/main/java/at/petrak/hexcasting/common/loot/HexLootHandler.java index e0788d5446..a8d8679f15 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/loot/HexLootHandler.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/loot/HexLootHandler.java @@ -1,19 +1,22 @@ package at.petrak.hexcasting.common.loot; import com.google.common.collect.ImmutableList; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.RandomSource; +import net.minecraft.world.level.storage.loot.LootTable; import static at.petrak.hexcasting.api.HexAPI.modLoc; // https://github.com/VazkiiMods/Botania/blob/1.18.x/Xplat/src/main/java/vazkii/botania/common/loot/LootHandler.java // We need to inject dungeon loot (scrolls and lore), make amethyst drop fewer shards, and the extra dust stuff. // On forge: -// - Scrolls and lore are done with a loot mod +// - Scrolls, lore, and cyphers are done with a loot mod // - Amethyst drop fiddling is done with another loot mod; the shard delta is in the loot mod data and the rest of // the stuff is loaded from TABLE_INJECT_AMETHYST_CLUSTER // On fabric: -// - Scrolls and lore are done with a lootLoad listener and the amounts are loaded from config +// - Scrolls, lore, and cyphers are done with a lootLoad listener and the amounts are loaded from config // - Amethyst shard reduction is done with a loot function mixed in to always be on amethyst clusters, god, cause I // don't think it's facile to use the loot pool api to try to figure out which pool is for the amethyst and reduce it // - Amethyst dust and crystals are done by adding the loot table Forge uses in directly via listener @@ -24,41 +27,51 @@ public class HexLootHandler { // In places where it doesn't really make sense to have them lore-wise just put them rarely anyways // to make it less of a PITA for new players - new ScrollInjection(new ResourceLocation("minecraft", "chests/simple_dungeon"), 1), - new ScrollInjection(new ResourceLocation("minecraft", "chests/abandoned_mineshaft"), 1), - new ScrollInjection(new ResourceLocation("minecraft", "chests/bastion_other"), 1), - new ScrollInjection(new ResourceLocation("minecraft", "chests/nether_bridge"), 1), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/simple_dungeon"), 1), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/abandoned_mineshaft"), 1), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/bastion_other"), 1), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/nether_bridge"), 1), - new ScrollInjection(new ResourceLocation("minecraft", "chests/jungle_temple"), 2), - new ScrollInjection(new ResourceLocation("minecraft", "chests/desert_pyramid"), 2), - new ScrollInjection(new ResourceLocation("minecraft", "chests/village/village_cartographer"), 2), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/jungle_temple"), 2), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/desert_pyramid"), 2), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/village/village_cartographer"), 2), - new ScrollInjection(new ResourceLocation("minecraft", "chests/shipwreck_map"), 3), - new ScrollInjection(new ResourceLocation("minecraft", "chests/bastion_treasure"), 3), - new ScrollInjection(new ResourceLocation("minecraft", "chests/end_city_treasure"), 3), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/shipwreck_map"), 3), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/bastion_treasure"), 3), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/end_city_treasure"), 3), // ancient city chests have amethyst in them, thinking emoji - new ScrollInjection(new ResourceLocation("minecraft", "chests/ancient_city"), 4), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/ancient_city"), 4), // wonder what those pillagers are up to with those scrolls - new ScrollInjection(new ResourceLocation("minecraft", "chests/pillager_outpost"), 4), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/pillager_outpost"), 4), // if you manage to find one of these things you deserve a lot of scrolls - new ScrollInjection(new ResourceLocation("minecraft", "chests/woodland_mansion"), 5), - new ScrollInjection(new ResourceLocation("minecraft", "chests/stronghold_library"), 5) + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/woodland_mansion"), 5), + new ScrollInjection(ResourceLocation.fromNamespaceAndPath("minecraft", "chests/stronghold_library"), 5) ); public static final ImmutableList DEFAULT_LORE_INJECTS = ImmutableList.of( - new ResourceLocation("minecraft", "chests/simple_dungeon"), - new ResourceLocation("minecraft", "chests/abandoned_mineshaft"), - new ResourceLocation("minecraft", "chests/pillager_outpost"), - new ResourceLocation("minecraft", "chests/woodland_mansion"), - new ResourceLocation("minecraft", "chests/stronghold_library"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/simple_dungeon"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/abandoned_mineshaft"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/pillager_outpost"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/woodland_mansion"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/stronghold_library"), // >:) - new ResourceLocation("minecraft", "chests/village/village_desert_house"), - new ResourceLocation("minecraft", "chests/village/village_plains_house"), - new ResourceLocation("minecraft", "chests/village/village_savanna_house"), - new ResourceLocation("minecraft", "chests/village/village_snowy_house"), - new ResourceLocation("minecraft", "chests/village/village_taiga_house") + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/village/village_desert_house"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/village/village_plains_house"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/village/village_savanna_house"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/village/village_snowy_house"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/village/village_taiga_house") + ); + + public static final ImmutableList DEFAULT_CYPHER_INJECTS = ImmutableList.of( + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/simple_dungeon"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/abandoned_mineshaft"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/stronghold_corridor"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/jungle_temple"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/desert_pyramid"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/ancient_city"), + ResourceLocation.fromNamespaceAndPath("minecraft", "chests/nether_bridge") ); public static int getScrollCount(int range, RandomSource random) { @@ -67,8 +80,9 @@ public static int getScrollCount(int range, RandomSource random) { public static final double DEFAULT_SHARD_MODIFICATION = -0.5; public static final double DEFAULT_LORE_CHANCE = 0.4; + public static final double DEFAULT_CYPHER_CHANCE = 0.4; - public static final ResourceLocation TABLE_INJECT_AMETHYST_CLUSTER = modLoc("inject/amethyst_cluster"); + public static final ResourceKey TABLE_INJECT_AMETHYST_CLUSTER = ResourceKey.create(Registries.LOOT_TABLE, modLoc("inject/amethyst_cluster")); public record ScrollInjection(ResourceLocation injectee, int countRange) { } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/misc/AkashicTreeGrower.java b/Common/src/main/java/at/petrak/hexcasting/common/misc/AkashicTreeGrower.java index d346979600..5be55e7b94 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/misc/AkashicTreeGrower.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/misc/AkashicTreeGrower.java @@ -2,15 +2,23 @@ import at.petrak.hexcasting.common.lib.HexConfiguredFeatures; import com.google.common.collect.Lists; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.tags.BlockTags; import net.minecraft.util.RandomSource; -import net.minecraft.world.level.block.grower.AbstractTreeGrower; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import java.util.List; -// TODO they fucking changed the trees AGAIN -public class AkashicTreeGrower extends AbstractTreeGrower { +public class AkashicTreeGrower { public static final AkashicTreeGrower INSTANCE = new AkashicTreeGrower(); public static final List>> GROWERS = Lists.newArrayList(); @@ -21,8 +29,32 @@ public static void init() { GROWERS.add(HexConfiguredFeatures.CITRINE_EDIFIED_TREE); } - @Override - protected ResourceKey> getConfiguredFeature(RandomSource pRandom, boolean pLargeHive) { + private ResourceKey> getConfiguredFeature(RandomSource pRandom, boolean pLargeHive) { return GROWERS.get(pRandom.nextInt(GROWERS.size())); } + + public boolean growTree(ServerLevel level, ChunkGenerator chunkGenerator, BlockPos pos, BlockState state, RandomSource random) { + ResourceKey> treeFeatureKey = getConfiguredFeature(random, hasFlowers(level, pos)); + if (treeFeatureKey == null) { + return false; + } + Holder> holder1 = level.registryAccess() + .registryOrThrow(Registries.CONFIGURED_FEATURE) + .getHolder(treeFeatureKey) + .orElse(null); + level.setBlock(pos, Blocks.AIR.defaultBlockState(), Block.UPDATE_ALL); + + ConfiguredFeature configuredFeature = holder1.value(); + return configuredFeature.place(level, level.getChunkSource().getGenerator(), level.random, pos); + } + + private boolean hasFlowers(LevelAccessor level, BlockPos pos) { + for (BlockPos blockpos : BlockPos.MutableBlockPos.betweenClosed(pos.below().north(2).west(2), pos.above().south(2).east(2))) { + if (level.getBlockState(blockpos).is(BlockTags.FLOWERS)) { + return true; + } + } + + return false; + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/misc/ContainerInput.kt b/Common/src/main/java/at/petrak/hexcasting/common/misc/ContainerInput.kt new file mode 100644 index 0000000000..015f7d4985 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/misc/ContainerInput.kt @@ -0,0 +1,21 @@ +package at.petrak.hexcasting.common.misc + +import net.minecraft.core.RegistryAccess +import net.minecraft.world.Container +import net.minecraft.world.inventory.CraftingContainer +import net.minecraft.world.item.ItemStack +import net.minecraft.world.item.crafting.RecipeInput + +abstract class ContainerInput(val container: Container) : RecipeInput { + + + override fun getItem(i: Int): ItemStack? { + return container.getItem(i) + } + + abstract fun assemble(inv: CraftingContainer, access: RegistryAccess): ItemStack + + override fun size(): Int { + return container.containerSize + } +} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgBeepS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgBeepS2C.java index 852fc675af..da658ebf5d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgBeepS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgBeepS2C.java @@ -1,57 +1,55 @@ package at.petrak.hexcasting.common.msgs; -import io.netty.buffer.ByteBuf; +import at.petrak.hexcasting.api.HexAPI; +import at.petrak.paucal.api.PaucalCodecs; import net.minecraft.client.Minecraft; import net.minecraft.core.particles.ParticleTypes; -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.sounds.SoundSource; import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; import net.minecraft.world.phys.Vec3; -import static at.petrak.hexcasting.api.HexAPI.modLoc; +public record MsgBeepS2C(Vec3 target, int note, NoteBlockInstrument instrument) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("beep")); -public record MsgBeepS2C(Vec3 target, int note, NoteBlockInstrument instrument) implements IMessage { - public static final ResourceLocation ID = modLoc("beep"); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + PaucalCodecs.VEC3, MsgBeepS2C::target, + ByteBufCodecs.VAR_INT, MsgBeepS2C::note, + ByteBufCodecs.idMapper( + (num) -> NoteBlockInstrument.values()[num], + NoteBlockInstrument::ordinal + ), MsgBeepS2C::instrument, + MsgBeepS2C::new + ); @Override - public ResourceLocation getFabricId() { - return ID; + public CustomPacketPayload.Type type() { + return TYPE; } - public static MsgBeepS2C deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - var x = buf.readDouble(); - var y = buf.readDouble(); - var z = buf.readDouble(); - var note = buf.readInt(); - var instrument = buf.readEnum(NoteBlockInstrument.class); - return new MsgBeepS2C(new Vec3(x, y, z), note, instrument); + public void handle() { + Handler.handle(this); } - @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeDouble(this.target.x); - buf.writeDouble(this.target.y); - buf.writeDouble(this.target.z); - buf.writeInt(this.note); - buf.writeEnum(instrument); - } + public static final class Handler { - public static void handle(MsgBeepS2C msg) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static void handle(MsgBeepS2C msg) { + Minecraft.getInstance().execute(() -> { var minecraft = Minecraft.getInstance(); var world = minecraft.level; if (world != null) { float pitch = (float) Math.pow(2, (msg.note() - 12) / 12.0); world.playLocalSound(msg.target().x, msg.target().y, msg.target().z, - msg.instrument().getSoundEvent().value(), SoundSource.PLAYERS, 3, pitch, false); + msg.instrument().getSoundEvent().value(), SoundSource.PLAYERS, 3, pitch, false); world.addParticle(ParticleTypes.NOTE, msg.target().x, msg.target().y + 0.2, msg.target().z, - msg.note() / 24.0, 0, 0); + msg.note() / 24.0, 0, 0); } - } - }); + }); + } } + + } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgBlinkS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgBlinkS2C.java index ab75bc20ed..5d08f8483b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgBlinkS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgBlinkS2C.java @@ -1,8 +1,15 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; +import at.petrak.hexcasting.api.casting.eval.ExecutionClientView; +import at.petrak.paucal.api.PaucalCodecs; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; 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.phys.Vec3; @@ -11,36 +18,32 @@ /** * Sent server->client to synchronize OpBlink when the target is a player. */ -public record MsgBlinkS2C(Vec3 addedPosition) implements IMessage { - public static final ResourceLocation ID = modLoc("blink"); +public record MsgBlinkS2C(Vec3 addedPosition) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("blink")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + PaucalCodecs.VEC3, MsgBlinkS2C::addedPosition, + MsgBlinkS2C::new + ); @Override - public ResourceLocation getFabricId() { - return ID; + public CustomPacketPayload.Type type() { + return TYPE; } - public static MsgBlinkS2C deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - var x = buf.readDouble(); - var y = buf.readDouble(); - var z = buf.readDouble(); - return new MsgBlinkS2C(new Vec3(x, y, z)); + public void handle() { + Handler.handle(this); } - @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeDouble(this.addedPosition.x); - buf.writeDouble(this.addedPosition.y); - buf.writeDouble(this.addedPosition.z); - } + public static final class Handler { - public static void handle(MsgBlinkS2C self) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static void handle(MsgBlinkS2C self) { + Minecraft.getInstance().execute(() -> { var player = Minecraft.getInstance().player; player.setPos(player.position().add(self.addedPosition())); - } - }); + }); + } } + + } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgCastParticleS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgCastParticleS2C.java index 9ec659b8b6..a84ac38e63 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgCastParticleS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgCastParticleS2C.java @@ -1,5 +1,6 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.casting.ParticleSpray; import at.petrak.hexcasting.api.pigment.FrozenPigment; import at.petrak.hexcasting.client.ClientTickCounter; @@ -7,6 +8,9 @@ import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; 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.util.Mth; import net.minecraft.world.phys.Vec3; @@ -18,47 +22,20 @@ /** * Sent server->client to spray particles everywhere. */ -public record MsgCastParticleS2C(ParticleSpray spray, FrozenPigment colorizer) implements IMessage { - public static final ResourceLocation ID = modLoc("cprtcl"); +public record MsgCastParticleS2C(ParticleSpray spray, FrozenPigment colorizer) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("cprtcl")); - @Override - public ResourceLocation getFabricId() { - return ID; - } - - public static MsgCastParticleS2C deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - var posX = buf.readDouble(); - var posY = buf.readDouble(); - var posZ = buf.readDouble(); - var velX = buf.readDouble(); - var velY = buf.readDouble(); - var velZ = buf.readDouble(); - var fuzziness = buf.readDouble(); - var spread = buf.readDouble(); - var count = buf.readInt(); - var tag = buf.readAnySizeNbt(); - var colorizer = FrozenPigment.fromNBT(tag); - return new MsgCastParticleS2C( - new ParticleSpray(new Vec3(posX, posY, posZ), new Vec3(velX, velY, velZ), fuzziness, spread, count), - colorizer); - } + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ParticleSpray.getSTREAM_CODEC(), MsgCastParticleS2C::spray, + FrozenPigment.STREAM_CODEC, MsgCastParticleS2C::colorizer, + MsgCastParticleS2C::new + ); @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeDouble(this.spray.getPos().x); - buf.writeDouble(this.spray.getPos().y); - buf.writeDouble(this.spray.getPos().z); - buf.writeDouble(this.spray.getVel().x); - buf.writeDouble(this.spray.getVel().y); - buf.writeDouble(this.spray.getVel().z); - buf.writeDouble(this.spray.getFuzziness()); - buf.writeDouble(this.spray.getSpread()); - buf.writeInt(this.spray.getCount()); - buf.writeNbt(this.colorizer.serializeToNBT()); + public Type type() { + return TYPE; } - private static final Random RANDOM = new Random(); // https://math.stackexchange.com/questions/44689/how-to-find-a-random-axis-or-unit-vector-in-3d @@ -68,16 +45,20 @@ private static Vec3 randomInCircle(double maxTh) { return new Vec3(Math.sqrt(1.0 - z * z) * Math.cos(th), Math.sqrt(1.0 - z * z) * Math.sin(th), z); } - public static void handle(MsgCastParticleS2C msg) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public void handle() { + Handler.handle(this); + } + + public static final class Handler { + + public static void handle(MsgCastParticleS2C msg) { + Minecraft.getInstance().execute(() -> { var colProvider = msg.colorizer().getColorProvider(); for (int i = 0; i < msg.spray().getCount(); i++) { // For the colors, pick any random time to get a mix of colors var offset = randomInCircle(Mth.TWO_PI).normalize() - .scale(RANDOM.nextFloat() * msg.spray().getFuzziness() / 2); + .scale(RANDOM.nextFloat() * msg.spray().getFuzziness() / 2); var pos = msg.spray().getPos().add(offset); var phi = Math.acos(1.0 - RANDOM.nextDouble() * (1.0 - Math.cos(msg.spray().getSpread()))); @@ -92,19 +73,19 @@ public void run() { k = v.cross(new Vec3(0.0, 0.0, 1.0)); } var velUnlen = v.scale(Math.cos(phi)) - .add(k.scale(Math.sin(phi) * Math.cos(theta))) - .add(v.cross(k).scale(Math.sin(phi) * Math.sin(theta))); + .add(k.scale(Math.sin(phi) * Math.cos(theta))) + .add(v.cross(k).scale(Math.sin(phi) * Math.sin(theta))); var vel = velUnlen.scale(msg.spray().getVel().length() / 20); var color = colProvider.getColor(ClientTickCounter.getTotal(), velUnlen); Minecraft.getInstance().level.addParticle( - new ConjureParticleOptions(color), - pos.x, pos.y, pos.z, - vel.x, vel.y, vel.z + new ConjureParticleOptions(color), + pos.x, pos.y, pos.z, + vel.x, vel.y, vel.z ); } - } - }); + }); + } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgClearSpiralPatternsS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgClearSpiralPatternsS2C.java index 1f454ba700..b0a74a52c4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgClearSpiralPatternsS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgClearSpiralPatternsS2C.java @@ -1,46 +1,49 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; +import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.xplat.IClientXplatAbstractions; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; +import net.minecraft.core.UUIDUtil; 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 java.util.UUID; import static at.petrak.hexcasting.api.HexAPI.modLoc; -public record MsgClearSpiralPatternsS2C(UUID playerUUID) implements IMessage { - public static final ResourceLocation ID = modLoc("clr_spi_pats_sc"); +public record MsgClearSpiralPatternsS2C(UUID playerUUID) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("clr_spi_pats_sc")); + + public static final StreamCodec STREAM_CODEC = UUIDUtil.STREAM_CODEC.map( + MsgClearSpiralPatternsS2C::new, + MsgClearSpiralPatternsS2C::playerUUID + ).mapStream(b -> b); @Override - public ResourceLocation getFabricId() { - return ID; + public CustomPacketPayload.Type type() { + return TYPE; } - public static MsgClearSpiralPatternsS2C deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - - var player = buf.readUUID(); - - return new MsgClearSpiralPatternsS2C(player); + public void handle() { + Handler.handle(this); } - @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeUUID(playerUUID); - } + public static final class Handler { - public static void handle(MsgClearSpiralPatternsS2C self) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static void handle(MsgClearSpiralPatternsS2C self) { + Minecraft.getInstance().execute(() -> { var mc = Minecraft.getInstance(); assert mc.level != null; var player = mc.level.getPlayerByUUID(self.playerUUID); var stack = IClientXplatAbstractions.INSTANCE.getClientCastingStack(player); stack.slowClear(); - } - }); + }); + } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpellPatternC2S.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpellPatternC2S.java index ce19d966b3..06440b01b6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpellPatternC2S.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpellPatternC2S.java @@ -1,11 +1,16 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.casting.eval.ResolvedPattern; import at.petrak.hexcasting.api.casting.eval.env.StaffCastEnv; import at.petrak.hexcasting.api.casting.math.HexPattern; +import at.petrak.hexcasting.api.pigment.FrozenPigment; import io.netty.buffer.ByteBuf; 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; @@ -13,43 +18,27 @@ import java.util.ArrayList; import java.util.List; -import static at.petrak.hexcasting.api.HexAPI.modLoc; - /** * Sent client->server when the player finishes drawing a pattern. * Server will send back a {@link MsgNewSpellPatternS2C} packet */ public record MsgNewSpellPatternC2S(InteractionHand handUsed, HexPattern pattern, - List resolvedPatterns) - implements IMessage { - public static final ResourceLocation ID = modLoc("pat_cs"); - - @Override - public ResourceLocation getFabricId() { - return ID; - } - - public static MsgNewSpellPatternC2S deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - var hand = buf.readEnum(InteractionHand.class); - var pattern = HexPattern.fromNBT(buf.readNbt()); - - var resolvedPatternsLen = buf.readInt(); - var resolvedPatterns = new ArrayList(resolvedPatternsLen); - for (int i = 0; i < resolvedPatternsLen; i++) { - resolvedPatterns.add(ResolvedPattern.fromNBT(buf.readNbt())); - } - return new MsgNewSpellPatternC2S(hand, pattern, resolvedPatterns); - } + List resolvedPatterns) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("pat_cs")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.BOOL.map( + isMain -> isMain ? InteractionHand.MAIN_HAND : InteractionHand.OFF_HAND, + hand -> hand == InteractionHand.MAIN_HAND + ), MsgNewSpellPatternC2S::handUsed, + HexPattern.STREAM_CODEC, MsgNewSpellPatternC2S::pattern, + ResolvedPattern.STREAM_CODEC.apply(ByteBufCodecs.list()), MsgNewSpellPatternC2S::resolvedPatterns, + MsgNewSpellPatternC2S::new + ); @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeEnum(handUsed); - buf.writeNbt(this.pattern.serializeToNBT()); - buf.writeInt(this.resolvedPatterns.size()); - for (var pat : this.resolvedPatterns) { - buf.writeNbt(pat.serializeToNBT()); - } + public Type type() { + return TYPE; } public void handle(MinecraftServer server, ServerPlayer sender) { diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpellPatternS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpellPatternS2C.java index cadf3dd100..1f4501e9eb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpellPatternS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpellPatternS2C.java @@ -1,13 +1,21 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.casting.eval.ExecutionClientView; +import at.petrak.hexcasting.api.casting.eval.ResolvedPattern; import at.petrak.hexcasting.api.casting.eval.ResolvedPatternType; +import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.client.gui.GuiSpellcasting; import at.petrak.hexcasting.common.lib.HexSounds; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; 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.InteractionHand; import java.util.Optional; @@ -16,43 +24,28 @@ /** * Sent server->client when the player finishes casting a spell. */ -public record MsgNewSpellPatternS2C(ExecutionClientView info, int index) implements IMessage { - public static final ResourceLocation ID = modLoc("pat_sc"); +public record MsgNewSpellPatternS2C(ExecutionClientView info, int index) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("pat_sc")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ExecutionClientView.getSTREAM_CODEC(), MsgNewSpellPatternS2C::info, + ByteBufCodecs.VAR_INT, MsgNewSpellPatternS2C::index, + MsgNewSpellPatternS2C::new + ); @Override - public ResourceLocation getFabricId() { - return ID; + public CustomPacketPayload.Type type() { + return TYPE; } - public static MsgNewSpellPatternS2C deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - - var isStackEmpty = buf.readBoolean(); - var resolutionType = buf.readEnum(ResolvedPatternType.class); - var index = buf.readInt(); - - var stack = buf.readList(FriendlyByteBuf::readNbt); - var raven = buf.readOptional(FriendlyByteBuf::readNbt).orElse(null); - - return new MsgNewSpellPatternS2C( - new ExecutionClientView(isStackEmpty, resolutionType, stack, raven), index - ); + public void handle() { + Handler.handle(this); } - @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeBoolean(this.info.isStackClear()); - buf.writeEnum(this.info.getResolutionType()); - buf.writeInt(this.index); - - buf.writeCollection(this.info.getStackDescs(), FriendlyByteBuf::writeNbt); - buf.writeOptional(Optional.ofNullable(this.info.getRavenmind()), FriendlyByteBuf::writeNbt); - } + public static final class Handler { - public static void handle(MsgNewSpellPatternS2C self) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static void handle(MsgNewSpellPatternS2C self) { + Minecraft.getInstance().execute(() -> { var mc = Minecraft.getInstance(); if (self.info().isStackClear()) { // don't pay attention to the screen, so it also stops when we die @@ -62,7 +55,7 @@ public void run() { if (screen instanceof GuiSpellcasting spellGui) { spellGui.recvServerUpdate(self.info(), self.index()); } - } - }); + }); + } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpiralPatternsS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpiralPatternsS2C.java index 9c5a02180c..0a24254e46 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpiralPatternsS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewSpiralPatternsS2C.java @@ -1,10 +1,16 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.xplat.IClientXplatAbstractions; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; +import net.minecraft.core.UUIDUtil; 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 java.util.ArrayList; @@ -13,36 +19,29 @@ import static at.petrak.hexcasting.api.HexAPI.modLoc; -public record MsgNewSpiralPatternsS2C(UUID playerUUID, List patterns, int lifetime) implements IMessage { - public static final ResourceLocation ID = modLoc("spi_pats_sc"); +public record MsgNewSpiralPatternsS2C(UUID playerUUID, List patterns, int lifetime) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("spi_pats_sc")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + UUIDUtil.STREAM_CODEC, MsgNewSpiralPatternsS2C::playerUUID, + HexPattern.STREAM_CODEC.apply(ByteBufCodecs.list()), MsgNewSpiralPatternsS2C::patterns, + ByteBufCodecs.VAR_INT, MsgNewSpiralPatternsS2C::lifetime, + MsgNewSpiralPatternsS2C::new + ); @Override - public ResourceLocation getFabricId() { - return ID; + public CustomPacketPayload.Type type() { + return TYPE; } - public static MsgNewSpiralPatternsS2C deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - - var player = buf.readUUID(); - var patterns = buf.readCollection(ArrayList::new, buff -> HexPattern.fromNBT(buf.readNbt())); - var lifetime = buf.readInt(); - - - return new MsgNewSpiralPatternsS2C(player, patterns, lifetime); + public void handle() { + Handler.handle(this); } - @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeUUID(playerUUID); - buf.writeCollection(patterns, (buff, pattern) -> buff.writeNbt(pattern.serializeToNBT())); - buf.writeInt(lifetime); - } + public static final class Handler { - public static void handle(MsgNewSpiralPatternsS2C self) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static void handle(MsgNewSpiralPatternsS2C self) { + Minecraft.getInstance().execute(() -> { var mc = Minecraft.getInstance(); assert mc.level != null; var player = mc.level.getPlayerByUUID(self.playerUUID); @@ -50,7 +49,7 @@ public void run() { for (var pattern : self.patterns) stack.addPattern(pattern, self.lifetime); - } - }); + }); + } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewWallScrollS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewWallScrollS2C.java index 67e77248cc..a87ffc304c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewWallScrollS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgNewWallScrollS2C.java @@ -1,61 +1,63 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.entities.EntityWallScroll; +import at.petrak.paucal.api.PaucalCodecs; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.registries.Registries; 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.network.protocol.game.ClientboundAddEntityPacket; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; import static at.petrak.hexcasting.api.HexAPI.modLoc; // https://github.com/VazkiiMods/Botania/blob/1.18.x/Xplat/src/main/java/vazkii/botania/network/clientbound/PacketSpawnDoppleganger.java public record MsgNewWallScrollS2C(ClientboundAddEntityPacket inner, BlockPos pos, Direction dir, ItemStack scrollItem, - boolean showsStrokeOrder, int blockSize) implements IMessage { - public static final ResourceLocation ID = modLoc("wallscr"); + boolean showsStrokeOrder, int blockSize) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("wallscr")); - @Override - public ResourceLocation getFabricId() { - return ID; - } + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ClientboundAddEntityPacket.STREAM_CODEC, MsgNewWallScrollS2C::inner, + BlockPos.STREAM_CODEC, MsgNewWallScrollS2C::pos, + Direction.STREAM_CODEC, MsgNewWallScrollS2C::dir, + ItemStack.STREAM_CODEC, MsgNewWallScrollS2C::scrollItem, + ByteBufCodecs.BOOL, MsgNewWallScrollS2C::showsStrokeOrder, + ByteBufCodecs.VAR_INT, MsgNewWallScrollS2C::blockSize, + MsgNewWallScrollS2C::new + ); @Override - public void serialize(FriendlyByteBuf buf) { - inner.write(buf); - buf.writeBlockPos(pos); - buf.writeByte(dir.ordinal()); - buf.writeItem(scrollItem); - buf.writeBoolean(showsStrokeOrder); - buf.writeVarInt(blockSize); + public CustomPacketPayload.Type type() { + return TYPE; } - public static MsgNewWallScrollS2C deserialize(FriendlyByteBuf buf) { - var inner = new ClientboundAddEntityPacket(buf); - var pos = buf.readBlockPos(); - var dir = HexUtils.getSafe(Direction.values(), buf.readByte()); - var scroll = buf.readItem(); - var strokeOrder = buf.readBoolean(); - var blockSize = buf.readVarInt(); - return new MsgNewWallScrollS2C(inner, pos, dir, scroll, strokeOrder, blockSize); + public void handle() { + Handler.handle(this); } - public static void handle(MsgNewWallScrollS2C self) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static final class Handler { + + public static void handle(MsgNewWallScrollS2C self) { + Minecraft.getInstance().execute(() -> { var player = Minecraft.getInstance().player; if (player != null) { player.connection.handleAddEntity(self.inner); var e = player.level().getEntity(self.inner.getId()); if (e instanceof EntityWallScroll scroll) { scroll.readSpawnData(self.pos, self.dir, self.scrollItem, self.showsStrokeOrder, - self.blockSize); + self.blockSize); } } - } - }); + }); + } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgOpenSpellGuiS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgOpenSpellGuiS2C.java index a06e608bdb..25d178cf28 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgOpenSpellGuiS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgOpenSpellGuiS2C.java @@ -1,15 +1,26 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.casting.eval.ResolvedPattern; +import at.petrak.hexcasting.api.casting.iota.Iota; +import at.petrak.hexcasting.api.casting.iota.IotaType; +import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.client.gui.GuiSpellcasting; import io.netty.buffer.ByteBuf; 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.util.ExtraCodecs; import net.minecraft.world.InteractionHand; +import org.jetbrains.annotations.Nullable; import java.util.List; +import java.util.Optional; import static at.petrak.hexcasting.api.HexAPI.modLoc; @@ -17,53 +28,47 @@ * Sent server->client when the player opens the spell gui to request the server provide the current stack. */ public record MsgOpenSpellGuiS2C(InteractionHand hand, List patterns, - List stack, + List stack, + @Nullable CompoundTag ravenmind, int parenCount ) - implements IMessage { - public static final ResourceLocation ID = modLoc("cgui"); + implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("cgui")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.BOOL.map( + isMain -> isMain ? InteractionHand.MAIN_HAND : InteractionHand.OFF_HAND, + hand -> hand == InteractionHand.MAIN_HAND + ), MsgOpenSpellGuiS2C::hand, + ResolvedPattern.STREAM_CODEC.apply(ByteBufCodecs.list()), MsgOpenSpellGuiS2C::patterns, + IotaType.TYPED_STREAM_CODEC.apply(ByteBufCodecs.list()), MsgOpenSpellGuiS2C::stack, + ByteBufCodecs.optional(ByteBufCodecs.COMPOUND_TAG).map( + opt -> opt.orElse(null), + Optional::ofNullable + ), MsgOpenSpellGuiS2C::ravenmind, + ByteBufCodecs.VAR_INT, MsgOpenSpellGuiS2C::parenCount, + MsgOpenSpellGuiS2C::new + ); @Override - public ResourceLocation getFabricId() { - return ID; + public Type type() { + return TYPE; } - public static MsgOpenSpellGuiS2C deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - - var hand = buf.readEnum(InteractionHand.class); - - var patterns = buf.readList(fbb -> ResolvedPattern.fromNBT(fbb.readAnySizeNbt())); - - var stack = buf.readList(FriendlyByteBuf::readNbt); - var raven = buf.readAnySizeNbt(); - - var parenCount = buf.readVarInt(); - - return new MsgOpenSpellGuiS2C(hand, patterns, stack, raven, parenCount); + public void handle() { + Handler.handle(this); } - public void serialize(FriendlyByteBuf buf) { - buf.writeEnum(this.hand); - - buf.writeCollection(this.patterns, (fbb, pat) -> fbb.writeNbt(pat.serializeToNBT())); - - buf.writeCollection(this.stack, FriendlyByteBuf::writeNbt); - buf.writeNbt(this.ravenmind); - - buf.writeVarInt(this.parenCount); - } + public static final class Handler { - public static void handle(MsgOpenSpellGuiS2C msg) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static void handle(MsgOpenSpellGuiS2C msg) { + Minecraft.getInstance().execute(() -> { var mc = Minecraft.getInstance(); mc.setScreen( - new GuiSpellcasting(msg.hand(), msg.patterns(), msg.stack, msg.ravenmind, - msg.parenCount)); - } - }); + new GuiSpellcasting(msg.hand(), msg.patterns(), msg.stack, msg.ravenmind, + msg.parenCount)); + }); + } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgRecalcWallScrollDisplayS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgRecalcWallScrollDisplayS2C.java index 137c97f534..7b1b8c4e50 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgRecalcWallScrollDisplayS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgRecalcWallScrollDisplayS2C.java @@ -1,48 +1,54 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.common.entities.EntityWallScroll; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; 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.network.protocol.game.ClientboundAddEntityPacket; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import static at.petrak.hexcasting.api.HexAPI.modLoc; /** * Sent S->C to have a wall scroll recalculate its pattern, to get readability offset. */ -public record MsgRecalcWallScrollDisplayS2C(int entityId, boolean showStrokeOrder) implements IMessage { - public static final ResourceLocation ID = modLoc("redoscroll"); - - public static MsgRecalcWallScrollDisplayS2C deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - var id = buf.readVarInt(); - var showStrokeOrder = buf.readBoolean(); - return new MsgRecalcWallScrollDisplayS2C(id, showStrokeOrder); - } +public record MsgRecalcWallScrollDisplayS2C(int entityId, boolean showStrokeOrder) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("redoscroll")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.VAR_INT, MsgRecalcWallScrollDisplayS2C::entityId, + ByteBufCodecs.BOOL, MsgRecalcWallScrollDisplayS2C::showStrokeOrder, + MsgRecalcWallScrollDisplayS2C::new + ); @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeVarInt(entityId); - buf.writeBoolean(showStrokeOrder); + public CustomPacketPayload.Type type() { + return TYPE; } - @Override - public ResourceLocation getFabricId() { - return ID; + public void handle() { + Handler.handle(this); } - public static void handle(MsgRecalcWallScrollDisplayS2C msg) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static final class Handler { + + public static void handle(MsgRecalcWallScrollDisplayS2C msg) { + Minecraft.getInstance().execute(() -> { var mc = Minecraft.getInstance(); var entity = mc.level.getEntity(msg.entityId); if (entity instanceof EntityWallScroll scroll - && scroll.getShowsStrokeOrder() != msg.showStrokeOrder) { + && scroll.getShowsStrokeOrder() != msg.showStrokeOrder) { scroll.recalculateDisplay(); } - } - }); + }); + } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgShiftScrollC2S.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgShiftScrollC2S.java index e1f4d354a6..a8fc568f3c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgShiftScrollC2S.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgShiftScrollC2S.java @@ -1,22 +1,34 @@ package at.petrak.hexcasting.common.msgs; +import at.petrak.hexcasting.api.HexAPI; +import at.petrak.hexcasting.api.casting.eval.ResolvedPattern; import at.petrak.hexcasting.api.casting.iota.IotaType; +import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.common.items.storage.ItemAbacus; import at.petrak.hexcasting.common.items.storage.ItemSpellbook; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.common.lib.HexSounds; import io.netty.buffer.ByteBuf; import net.minecraft.ChatFormatting; +import net.minecraft.core.component.DataComponents; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; +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.sounds.SoundSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.CustomData; + +import javax.xml.crypto.Data; import static at.petrak.hexcasting.api.HexAPI.modLoc; @@ -25,30 +37,21 @@ * or scrolls in the spellcasting UI. */ public record MsgShiftScrollC2S(double mainHandDelta, double offHandDelta, boolean isCtrl, boolean invertSpellbook, - boolean invertAbacus) implements IMessage { - public static final ResourceLocation ID = modLoc("scroll"); + boolean invertAbacus) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("scroll")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.DOUBLE, MsgShiftScrollC2S::mainHandDelta, + ByteBufCodecs.DOUBLE, MsgShiftScrollC2S::offHandDelta, + ByteBufCodecs.BOOL, MsgShiftScrollC2S::isCtrl, + ByteBufCodecs.BOOL, MsgShiftScrollC2S::invertSpellbook, + ByteBufCodecs.BOOL, MsgShiftScrollC2S::invertAbacus, + MsgShiftScrollC2S::new + ); @Override - public ResourceLocation getFabricId() { - return ID; - } - - public static MsgShiftScrollC2S deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - var mainHandDelta = buf.readDouble(); - var offHandDelta = buf.readDouble(); - var isCtrl = buf.readBoolean(); - var invertSpellbook = buf.readBoolean(); - var invertAbacus = buf.readBoolean(); - return new MsgShiftScrollC2S(mainHandDelta, offHandDelta, isCtrl, invertSpellbook, invertAbacus); - } - - public void serialize(FriendlyByteBuf buf) { - buf.writeDouble(this.mainHandDelta); - buf.writeDouble(this.offHandDelta); - buf.writeBoolean(this.isCtrl); - buf.writeBoolean(this.invertSpellbook); - buf.writeBoolean(this.invertAbacus); + public Type type() { + return TYPE; } public void handle(MinecraftServer server, ServerPlayer sender) { @@ -75,26 +78,26 @@ private void spellbook(ServerPlayer sender, InteractionHand hand, ItemStack stac delta = -delta; } - var newIdx = ItemSpellbook.rotatePageIdx(stack, delta < 0.0); + var newIdx = ItemSpellbook.rotatePageIdx(stack, delta < 0.0, sender.level()); var len = ItemSpellbook.highestPage(stack); var sealed = ItemSpellbook.isSealed(stack); MutableComponent component; - if (hand == InteractionHand.OFF_HAND && stack.hasCustomHoverName()) { + if (hand == InteractionHand.OFF_HAND && stack.has(DataComponents.CUSTOM_NAME)) { if (sealed) { component = Component.translatable("hexcasting.tooltip.spellbook.page_with_name.sealed", Component.literal(String.valueOf(newIdx)).withStyle(ChatFormatting.WHITE), Component.literal(String.valueOf(len)).withStyle(ChatFormatting.WHITE), - Component.literal("").withStyle(stack.getRarity().color, ChatFormatting.ITALIC) + Component.literal("").withStyle(stack.getRarity().color()).withStyle(ChatFormatting.ITALIC) .append(stack.getHoverName()), Component.translatable("hexcasting.tooltip.spellbook.sealed").withStyle(ChatFormatting.GOLD)); } else { component = Component.translatable("hexcasting.tooltip.spellbook.page_with_name", Component.literal(String.valueOf(newIdx)).withStyle(ChatFormatting.WHITE), Component.literal(String.valueOf(len)).withStyle(ChatFormatting.WHITE), - Component.literal("").withStyle(stack.getRarity().color, ChatFormatting.ITALIC) + Component.literal("").withStyle(stack.getRarity().color()).withStyle(ChatFormatting.ITALIC) .append(stack.getHoverName())); } @@ -120,7 +123,9 @@ private void abacus(ServerPlayer sender, InteractionHand hand, ItemStack stack, } var increase = delta < 0; - double num = NBTHelper.getDouble(stack, ItemAbacus.TAG_VALUE); + Double num = stack.get(HexDataComponents.ABACUS_VALUE); + if(num == null) + num = 0.0; double shiftDelta; float pitch; @@ -135,16 +140,16 @@ private void abacus(ServerPlayer sender, InteractionHand hand, ItemStack stack, int scale = Math.max((int) Math.floor(Math.abs(delta)), 1); num += scale * shiftDelta * (increase ? 1 : -1); - NBTHelper.putDouble(stack, ItemAbacus.TAG_VALUE, num); + stack.set(HexDataComponents.ABACUS_VALUE, num); pitch *= (increase ? 1.05f : 0.95f); pitch += (Math.random() - 0.5) * 0.1; sender.level().playSound(null, sender.getX(), sender.getY(), sender.getZ(), HexSounds.ABACUS, SoundSource.PLAYERS, 0.5f, pitch); - var datumTag = HexItems.ABACUS.readIotaTag(stack); - if (datumTag != null) { - var popup = IotaType.getDisplay(datumTag); + var datum = HexItems.ABACUS.readIota(stack); + if (datum != null) { + var popup = datum.display(); sender.displayClientMessage( Component.translatable("hexcasting.tooltip.abacus", popup).withStyle(ChatFormatting.GREEN), true); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/particles/ConjureParticleOptions.java b/Common/src/main/java/at/petrak/hexcasting/common/particles/ConjureParticleOptions.java index 79df382994..f5696edbe4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/particles/ConjureParticleOptions.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/particles/ConjureParticleOptions.java @@ -4,10 +4,14 @@ 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.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import java.util.Locale; @@ -17,50 +21,32 @@ public ParticleType getType() { return HexParticles.CONJURE_PARTICLE; } - @Override - public void writeToNetwork(FriendlyByteBuf buf) { - buf.writeInt(this.color); - } - - @Override - public String writeToString() { - return String.format(Locale.ROOT, "%s %s", this.color); - } - - public static final Deserializer DESERIALIZER = new Deserializer<>() { - @Override - public ConjureParticleOptions fromCommand(ParticleType type, - StringReader reader) throws CommandSyntaxException { - - reader.expect(' '); - var color = reader.readInt(); - return new ConjureParticleOptions(color); - } - - @Override - public ConjureParticleOptions fromNetwork(ParticleType type, - FriendlyByteBuf buf) { - var col = buf.readInt(); - return new ConjureParticleOptions(col); - } - }; - public static class Type extends ParticleType { public Type(boolean pOverrideLimiter) { - super(pOverrideLimiter, DESERIALIZER); + super(pOverrideLimiter); } - public static final Codec CODEC = RecordCodecBuilder.create( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( instance -> instance.group( Codec.INT.fieldOf("color") .forGetter((ConjureParticleOptions o) -> o.color) ) .apply(instance, ConjureParticleOptions::new) ); + public static final StreamCodec STREAM_CODEC = + StreamCodec.composite( + ByteBufCodecs.VAR_INT, ConjureParticleOptions::color, + ConjureParticleOptions::new + ); @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } + + @Override + public StreamCodec streamCodec() { + return STREAM_CODEC; + } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/BrainsweepRecipe.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/BrainsweepRecipe.java index 8f6db1efb0..676539fc43 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/BrainsweepRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/BrainsweepRecipe.java @@ -1,18 +1,21 @@ package at.petrak.hexcasting.common.recipe; -import at.petrak.hexcasting.common.recipe.ingredient.StateIngredient; -import at.petrak.hexcasting.common.recipe.ingredient.StateIngredientHelper; +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredient; +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredients; import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredient; -import com.google.gson.JsonObject; -import net.minecraft.core.RegistryAccess; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredients; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.HolderLookup; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.GsonHelper; -import net.minecraft.world.Container; import net.minecraft.world.entity.Entity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeInput; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; @@ -23,21 +26,15 @@ // God I am a horrible person public record BrainsweepRecipe( - ResourceLocation id, StateIngredient blockIn, BrainsweepeeIngredient entityIn, long mediaCost, BlockState result -) implements Recipe { +) implements Recipe { public boolean matches(BlockState blockIn, Entity victim, ServerLevel level) { return this.blockIn.test(blockIn) && this.entityIn.test(victim, level); } - @Override - public ResourceLocation getId() { - return id; - } - @Override public RecipeType getType() { return HexRecipeStuffRegistry.BRAINSWEEP_TYPE; @@ -51,22 +48,22 @@ public RecipeSerializer getSerializer() { // in order to get this to be a "Recipe" we need to do a lot of bending-over-backwards // to get the implementation to be satisfied even though we never use it @Override - public boolean matches(Container pContainer, Level pLevel) { + public boolean matches(RecipeInput input, Level level) { return false; } @Override - public ItemStack assemble(Container pContainer, RegistryAccess access) { + public ItemStack assemble(RecipeInput input, HolderLookup.Provider registries) { return ItemStack.EMPTY; } - @Override + @Override public boolean canCraftInDimensions(int pWidth, int pHeight) { return false; } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { + public ItemStack getResultItem(HolderLookup.Provider registries) { return ItemStack.EMPTY.copy(); } @@ -84,30 +81,31 @@ public static BlockState copyProperties(BlockState original, BlockState copyTo) } public static class Serializer extends RecipeSerializerBase { - @Override - public @NotNull BrainsweepRecipe fromJson(ResourceLocation recipeID, JsonObject json) { - var blockIn = StateIngredientHelper.deserialize(GsonHelper.getAsJsonObject(json, "blockIn")); - var villagerIn = BrainsweepeeIngredient.deserialize(GsonHelper.getAsJsonObject(json, "entityIn")); - var cost = GsonHelper.getAsInt(json, "cost"); - var result = StateIngredientHelper.readBlockState(GsonHelper.getAsJsonObject(json, "result")); - return new BrainsweepRecipe(recipeID, blockIn, villagerIn, cost, result); - } + public static MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> + inst.group( + StateIngredients.TYPED_CODEC.fieldOf("blockIn").forGetter(BrainsweepRecipe::blockIn), + BrainsweepeeIngredients.TYPED_CODEC.fieldOf("entityIn").forGetter(BrainsweepRecipe::entityIn), + Codec.LONG.fieldOf("cost").forGetter(BrainsweepRecipe::mediaCost), + BlockState.CODEC.fieldOf("result").forGetter(BrainsweepRecipe::result) + ).apply(inst, BrainsweepRecipe::new) + ); + public static StreamCodec STREAM_CODEC = StreamCodec.composite( + StateIngredients.TYPED_STREAM_CODEC, BrainsweepRecipe::blockIn, + BrainsweepeeIngredients.TYPED_STREAM_CODEC, BrainsweepRecipe::entityIn, + ByteBufCodecs.VAR_LONG, BrainsweepRecipe::mediaCost, + ByteBufCodecs.VAR_INT, (recipe) -> Block.getId(recipe.result), + (state, ent, cost, stateId) -> + new BrainsweepRecipe(state, ent, cost, Block.stateById(stateId)) + ); @Override - public void toNetwork(FriendlyByteBuf buf, BrainsweepRecipe recipe) { - recipe.blockIn.write(buf); - recipe.entityIn.wrapWrite(buf); - buf.writeVarLong(recipe.mediaCost); - buf.writeVarInt(Block.getId(recipe.result)); + public @NotNull MapCodec codec() { + return CODEC; } @Override - public @NotNull BrainsweepRecipe fromNetwork(ResourceLocation recipeID, FriendlyByteBuf buf) { - var blockIn = StateIngredientHelper.read(buf); - var brainsweepeeIn = BrainsweepeeIngredient.read(buf); - var cost = buf.readVarLong(); - var result = Block.stateById(buf.readVarInt()); - return new BrainsweepRecipe(recipeID, blockIn, brainsweepeeIn, cost, result); + public @NotNull StreamCodec streamCodec() { + return STREAM_CODEC; } - } + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/SealSpellbookRecipe.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/SealSpellbookRecipe.java index 570d6631be..52797baf6c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/SealSpellbookRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/SealSpellbookRecipe.java @@ -1,19 +1,18 @@ package at.petrak.hexcasting.common.recipe; -import at.petrak.hexcasting.api.item.IotaHolderItem; -import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.common.items.storage.ItemSpellbook; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.xplat.IXplatAbstractions; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.*; import org.jetbrains.annotations.NotNull; +import java.util.Optional; + public class SealSpellbookRecipe extends ShapelessRecipe { public static final SimpleCraftingRecipeSerializer SERIALIZER = new SimpleCraftingRecipeSerializer<>(SealSpellbookRecipe::new); @@ -21,7 +20,7 @@ public class SealSpellbookRecipe extends ShapelessRecipe { private static ItemStack getSealedStack() { ItemStack output = new ItemStack(HexItems.SPELLBOOK); ItemSpellbook.setSealed(output, true); - NBTHelper.putString(output, IotaHolderItem.TAG_OVERRIDE_VISUALLY, "any"); + output.set(HexDataComponents.VISUAL_OVERRIDE, Optional.empty()); return output; } @@ -32,15 +31,15 @@ private static NonNullList createIngredients() { return ingredients; } - public SealSpellbookRecipe(ResourceLocation id, CraftingBookCategory category) { - super(id, "", category, getSealedStack(), createIngredients()); + public SealSpellbookRecipe(CraftingBookCategory category) { + super("", category, getSealedStack(), createIngredients()); } @Override - public @NotNull ItemStack assemble(CraftingContainer inv, RegistryAccess access) { + public @NotNull ItemStack assemble(CraftingInput inv, HolderLookup.RegistryLookup.@NotNull Provider registryProvider) { ItemStack out = ItemStack.EMPTY; - for (int i = 0; i < inv.getContainerSize(); i++) { + for (int i = 0; i < inv.size(); i++) { var stack = inv.getItem(i); if (stack.is(HexItems.SPELLBOOK)) { out = stack.copy(); diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/SealThingsRecipe.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/SealThingsRecipe.java index 365d68fe59..0da1e86001 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/SealThingsRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/SealThingsRecipe.java @@ -3,16 +3,15 @@ import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.items.storage.ItemFocus; import at.petrak.hexcasting.common.items.storage.ItemSpellbook; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexItems; +import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistryAccess; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.StringRepresentable; import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.CraftingBookCategory; -import net.minecraft.world.item.crafting.CustomRecipe; -import net.minecraft.world.item.crafting.RecipeSerializer; -import net.minecraft.world.item.crafting.SimpleCraftingRecipeSerializer; +import net.minecraft.world.item.crafting.*; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; @@ -26,8 +25,8 @@ public class SealThingsRecipe extends CustomRecipe { public static final SimpleCraftingRecipeSerializer SPELLBOOK_SERIALIZER = new SimpleCraftingRecipeSerializer<>(SealThingsRecipe::spellbook); - public SealThingsRecipe(ResourceLocation id, CraftingBookCategory category, Sealee sealee) { - super(id, category); + public SealThingsRecipe(CraftingBookCategory category, Sealee sealee) { + super(category); this.sealee = sealee; } @@ -38,11 +37,11 @@ public boolean canCraftInDimensions(int width, int height) { } @Override - public boolean matches(CraftingContainer container, Level level) { + public boolean matches(CraftingInput container, Level level) { boolean foundComb = false; boolean foundSealee = false; - for (int i = 0; i < container.getContainerSize(); i++) { + for (int i = 0; i < container.size(); i++) { var stack = container.getItem(i); if (this.sealee.isCorrectSealee(stack)) { if (foundSealee) return false; @@ -57,10 +56,10 @@ public boolean matches(CraftingContainer container, Level level) { } @Override - public ItemStack assemble(CraftingContainer inv, RegistryAccess registryAccess) { + public @NotNull ItemStack assemble(CraftingInput inv, HolderLookup.RegistryLookup.@NotNull Provider registryProvider) { ItemStack sealee = ItemStack.EMPTY; - for (int i = 0; i < inv.getContainerSize(); i++) { + for (int i = 0; i < inv.size(); i++) { var stack = inv.getItem(i); if (this.sealee.isCorrectSealee(stack)) { sealee = stack.copy(); @@ -84,12 +83,12 @@ public ItemStack assemble(CraftingContainer inv, RegistryAccess registryAccess) }; } - public static SealThingsRecipe focus(ResourceLocation id, CraftingBookCategory category) { - return new SealThingsRecipe(id, category, Sealee.FOCUS); + public static SealThingsRecipe focus(CraftingBookCategory category) { + return new SealThingsRecipe(category, Sealee.FOCUS); } - public static SealThingsRecipe spellbook(ResourceLocation id, CraftingBookCategory category) { - return new SealThingsRecipe(id, category, Sealee.SPELLBOOK); + public static SealThingsRecipe spellbook(CraftingBookCategory category) { + return new SealThingsRecipe(category, Sealee.SPELLBOOK); } public enum Sealee implements StringRepresentable { @@ -104,10 +103,10 @@ public String getSerializedName() { public boolean isCorrectSealee(ItemStack stack) { return switch (this) { case FOCUS -> stack.is(HexItems.FOCUS) - && HexItems.FOCUS.readIotaTag(stack) != null + && stack.has(HexDataComponents.IOTA) && !ItemFocus.isSealed(stack); case SPELLBOOK -> stack.is(HexItems.SPELLBOOK) - && HexItems.SPELLBOOK.readIotaTag(stack) != null + && HexItems.SPELLBOOK.readIota(stack) != null && !ItemSpellbook.isSealed(stack); }; } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlock.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlock.java deleted file mode 100644 index ac9febaf7f..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlock.java +++ /dev/null @@ -1,84 +0,0 @@ -package at.petrak.hexcasting.common.recipe.ingredient; - -import com.google.gson.JsonObject; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; - -import java.util.Collections; -import java.util.List; -import java.util.Random; - -public class StateIngredientBlock implements StateIngredient { - private final Block block; - - public StateIngredientBlock(Block block) { - this.block = block; - } - - @Override - public boolean test(BlockState blockState) { - return block == blockState.getBlock(); - } - - @Override - public BlockState pick(Random random) { - return block.defaultBlockState(); - } - - @Override - public JsonObject serialize() { - JsonObject object = new JsonObject(); - object.addProperty("type", "block"); - object.addProperty("block", BuiltInRegistries.BLOCK.getKey(block).toString()); - return object; - } - - @Override - public void write(FriendlyByteBuf buffer) { - buffer.writeVarInt(1); - buffer.writeVarInt(BuiltInRegistries.BLOCK.getId(block)); - } - - @Override - public List getDisplayedStacks() { - if (block.asItem() == Items.AIR) { - return Collections.emptyList(); - } - return Collections.singletonList(new ItemStack(block)); - } - - @Override - public List getDisplayed() { - return Collections.singletonList(block.defaultBlockState()); - } - - public Block getBlock() { - return block; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - return block == ((StateIngredientBlock) o).block; - } - - @Override - public int hashCode() { - return block.hashCode(); - } - - @Override - public String toString() { - return "StateIngredientBlock{" + block + "}"; - } -} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlockState.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlockState.java deleted file mode 100644 index c1018f47df..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlockState.java +++ /dev/null @@ -1,103 +0,0 @@ -package at.petrak.hexcasting.common.recipe.ingredient; - -import com.google.common.collect.ImmutableMap; -import com.google.gson.JsonObject; -import net.minecraft.ChatFormatting; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.Property; - -import javax.annotation.Nullable; -import java.util.*; - -public class StateIngredientBlockState implements StateIngredient { - private final BlockState state; - - public StateIngredientBlockState(BlockState state) { - this.state = state; - } - - @Override - public boolean test(BlockState blockState) { - return this.state == blockState; - } - - @Override - public BlockState pick(Random random) { - return state; - } - - @Override - public JsonObject serialize() { - JsonObject object = StateIngredientHelper.serializeBlockState(state); - object.addProperty("type", "state"); - return object; - } - - @Override - public void write(FriendlyByteBuf buffer) { - buffer.writeVarInt(2); - buffer.writeVarInt(Block.getId(state)); - } - - @Override - public List getDisplayedStacks() { - Block block = state.getBlock(); - if (block.asItem() == Items.AIR) { - return Collections.emptyList(); - } - return Collections.singletonList(new ItemStack(block)); - } - - @Nullable - @Override - public List descriptionTooltip() { - ImmutableMap, Comparable> map = state.getValues(); - if (map.isEmpty()) { - return StateIngredient.super.descriptionTooltip(); - } - List tooltip = new ArrayList<>(map.size()); - for (Map.Entry, Comparable> entry : map.entrySet()) { - Property key = entry.getKey(); - @SuppressWarnings({"unchecked", "rawtypes"}) - String name = ((Property) key).getName(entry.getValue()); - - tooltip.add(Component.literal(key.getName() + " = " + name).withStyle(ChatFormatting.GRAY)); - } - return tooltip; - } - - @Override - public List getDisplayed() { - return Collections.singletonList(state); - } - - public BlockState getState() { - return state; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - return state == ((StateIngredientBlockState) o).state; - } - - @Override - public int hashCode() { - return state.hashCode(); - } - - @Override - public String toString() { - return "StateIngredientBlockState{" + state + "}"; - } -} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlocks.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlocks.java deleted file mode 100644 index eb0291709f..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlocks.java +++ /dev/null @@ -1,98 +0,0 @@ -package at.petrak.hexcasting.common.recipe.ingredient; - -import com.google.common.collect.ImmutableSet; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; - -import javax.annotation.Nonnull; -import java.util.Collection; -import java.util.List; -import java.util.Objects; -import java.util.Random; -import java.util.stream.Collectors; - -public class StateIngredientBlocks implements StateIngredient { - protected final ImmutableSet blocks; - - public StateIngredientBlocks(Collection blocks) { - this.blocks = ImmutableSet.copyOf(blocks); - } - - @Override - public boolean test(BlockState state) { - return blocks.contains(state.getBlock()); - } - - @Override - public BlockState pick(Random random) { - return blocks.asList().get(random.nextInt(blocks.size())).defaultBlockState(); - } - - @Override - public JsonObject serialize() { - JsonObject object = new JsonObject(); - object.addProperty("type", "blocks"); - JsonArray array = new JsonArray(); - for (Block block : blocks) { - array.add(BuiltInRegistries.BLOCK.getKey(block).toString()); - } - object.add("blocks", array); - return object; - } - - @Override - public void write(FriendlyByteBuf buffer) { - List blocks = getBlocks(); - buffer.writeVarInt(0); - buffer.writeVarInt(blocks.size()); - for (Block block : blocks) { - buffer.writeVarInt(BuiltInRegistries.BLOCK.getId(block)); - } - } - - @Override - public List getDisplayedStacks() { - return blocks.stream() - .filter(b -> b.asItem() != Items.AIR) - .map(ItemStack::new) - .collect(Collectors.toList()); - } - - @Override - public List getDisplayed() { - return blocks.stream().map(Block::defaultBlockState).collect(Collectors.toList()); - } - - @Nonnull - protected List getBlocks() { - return blocks.asList(); - } - - @Override - public String toString() { - return "StateIngredientBlocks{" + blocks.toString() + "}"; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - return blocks.equals(((StateIngredientBlocks) o).blocks); - } - - @Override - public int hashCode() { - return Objects.hash(blocks); - } -} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientHelper.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientHelper.java deleted file mode 100644 index 97e09d9d36..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientHelper.java +++ /dev/null @@ -1,167 +0,0 @@ -package at.petrak.hexcasting.common.recipe.ingredient; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.mojang.serialization.Dynamic; -import com.mojang.serialization.JsonOps; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtOps; -import net.minecraft.nbt.NbtUtils; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.TagKey; -import net.minecraft.util.GsonHelper; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.*; - -public class StateIngredientHelper { - public static StateIngredient of(Block block) { - return new StateIngredientBlock(block); - } - - public static StateIngredient of(BlockState state) { - return new StateIngredientBlockState(state); - } - - public static StateIngredient of(TagKey tag) { - return of(tag.location()); - } - - public static StateIngredient of(ResourceLocation id) { - return new StateIngredientTag(id); - } - - public static StateIngredient of(Collection blocks) { - return new StateIngredientBlocks(blocks); - } - - public static StateIngredient tagExcluding(TagKey tag, StateIngredient... excluded) { - return new StateIngredientTagExcluding(tag.location(), List.of(excluded)); - } - - public static StateIngredient deserialize(JsonObject object) { - switch (GsonHelper.getAsString(object, "type")) { - case "tag": - return new StateIngredientTag(new ResourceLocation(GsonHelper.getAsString(object, "tag"))); - case "block": - return new StateIngredientBlock( - BuiltInRegistries.BLOCK.get(new ResourceLocation(GsonHelper.getAsString(object, "block")))); - case "state": - return new StateIngredientBlockState(readBlockState(object)); - case "blocks": - List blocks = new ArrayList<>(); - for (JsonElement element : GsonHelper.getAsJsonArray(object, "blocks")) { - blocks.add(BuiltInRegistries.BLOCK.get(new ResourceLocation(element.getAsString()))); - } - return new StateIngredientBlocks(blocks); - case "tag_excluding": - ResourceLocation tag = new ResourceLocation(GsonHelper.getAsString(object, "tag")); - List ingr = new ArrayList<>(); - for (JsonElement element : GsonHelper.getAsJsonArray(object, "exclude")) { - ingr.add(deserialize(GsonHelper.convertToJsonObject(element, "exclude entry"))); - } - return new StateIngredientTagExcluding(tag, ingr); - default: - throw new JsonParseException("Unknown type!"); - } - } - - /** - * Deserializes a state ingredient, but removes air from its data, - * and returns null if the ingredient only matched air. - */ - @Nullable - public static StateIngredient tryDeserialize(JsonObject object) { - StateIngredient ingr = deserialize(object); - if (ingr instanceof StateIngredientTag sit) { - if (sit.resolve().findAny().isEmpty()) { - return null; - } - return ingr; - } - if (ingr instanceof StateIngredientBlock || ingr instanceof StateIngredientBlockState) { - if (ingr.test(Blocks.AIR.defaultBlockState())) { - return null; - } - } else if (ingr instanceof StateIngredientBlocks sib) { - Collection blocks = sib.blocks; - List list = new ArrayList<>(blocks); - if (list.removeIf(b -> b == Blocks.AIR)) { - if (list.size() == 0) { - return null; - } - return of(list); - } - } - return ingr; - } - - public static StateIngredient read(FriendlyByteBuf buffer) { - switch (buffer.readVarInt()) { - case 0: - int count = buffer.readVarInt(); - Set set = new HashSet<>(); - for (int i = 0; i < count; i++) { - int id = buffer.readVarInt(); - Block block = BuiltInRegistries.BLOCK.byId(id); - set.add(block); - } - return new StateIngredientBlocks(set); - case 1: - return new StateIngredientBlock(BuiltInRegistries.BLOCK.byId(buffer.readVarInt())); - case 2: - return new StateIngredientBlockState(Block.stateById(buffer.readVarInt())); - default: - throw new IllegalArgumentException("Unknown input discriminator!"); - } - } - - /** - * Writes data about the block state to the provided json object. - */ - public static JsonObject serializeBlockState(BlockState state) { - CompoundTag nbt = NbtUtils.writeBlockState(state); - renameTag(nbt, "Name", "name"); - renameTag(nbt, "Properties", "properties"); - Dynamic dyn = new Dynamic<>(NbtOps.INSTANCE, nbt); - return dyn.convert(JsonOps.INSTANCE).getValue().getAsJsonObject(); - } - - /** - * Reads the block state from the provided json object. - */ - public static BlockState readBlockState(JsonObject object) { - CompoundTag nbt = (CompoundTag) new Dynamic<>(JsonOps.INSTANCE, object).convert(NbtOps.INSTANCE).getValue(); - renameTag(nbt, "name", "Name"); - renameTag(nbt, "properties", "Properties"); - String name = nbt.getString("Name"); - ResourceLocation id = ResourceLocation.tryParse(name); - if (id == null || !BuiltInRegistries.BLOCK.getOptional(id).isPresent()) { - throw new IllegalArgumentException("Invalid or unknown block ID: " + name); - } - return NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(), nbt); - } - - @Deprecated - @Nonnull - public static List toStackList(StateIngredient input) { - return input.getDisplayedStacks(); - } - - private static void renameTag(CompoundTag tag, String from, String to) { - var t = tag.get(from); - if (t != null) { - tag.remove(from); - tag.put(to, t); - } - } -} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTag.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTag.java deleted file mode 100644 index 5850bd1bf2..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTag.java +++ /dev/null @@ -1,101 +0,0 @@ -package at.petrak.hexcasting.common.recipe.ingredient; - -import com.google.common.collect.ImmutableSet; -import com.google.gson.JsonObject; -import net.minecraft.core.Holder; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; - -import javax.annotation.Nonnull; -import java.util.List; -import java.util.Random; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -public class StateIngredientTag extends StateIngredientBlocks { - private final TagKey tag; - - public StateIngredientTag(ResourceLocation tag) { - super(ImmutableSet.of()); - this.tag = TagKey.create(Registries.BLOCK, tag); - } - - public Stream resolve() { - return StreamSupport.stream(BuiltInRegistries.BLOCK.getTagOrEmpty(tag).spliterator(), false) - .map(Holder::value); - } - - @Override - public boolean test(BlockState state) { - return state.is(tag); - } - - @Override - public BlockState pick(Random random) { - var values = resolve().toList(); - if (values.isEmpty()) { - return null; - } - return values.get(random.nextInt(values.size())).defaultBlockState(); - } - - @Override - public JsonObject serialize() { - JsonObject object = new JsonObject(); - object.addProperty("type", "tag"); - object.addProperty("tag", tag.location().toString()); - return object; - } - - @Override - public List getDisplayedStacks() { - return resolve() - .filter(b -> b.asItem() != Items.AIR) - .map(ItemStack::new) - .collect(Collectors.toList()); - } - - @Nonnull - @Override - protected List getBlocks() { - return resolve().toList(); - } - - @Override - public List getDisplayed() { - return resolve().map(Block::defaultBlockState).collect(Collectors.toList()); - } - - public ResourceLocation getTagId() { - return tag.location(); - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - return tag.equals(((StateIngredientTag) o).tag); - } - - @Override - public int hashCode() { - return tag.hashCode(); - } - - @Override - public String toString() { - return "StateIngredientTag{" + tag + "}"; - } -} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTagExcluding.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTagExcluding.java deleted file mode 100644 index b77dd7ddc3..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTagExcluding.java +++ /dev/null @@ -1,95 +0,0 @@ -package at.petrak.hexcasting.common.recipe.ingredient; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.List; -import java.util.Random; - -public class StateIngredientTagExcluding extends StateIngredientTag { - private final List excludes; - - public StateIngredientTagExcluding(ResourceLocation id, Collection excludes) { - super(id); - this.excludes = List.copyOf(excludes); - } - - @Override - public boolean test(BlockState state) { - if (!super.test(state)) { - return false; - } - return isNotExcluded(state); - } - - @Override - public BlockState pick(Random random) { - List blocks = getBlocks(); - if (blocks.isEmpty()) { - return null; - } - return blocks.get(random.nextInt(blocks.size())).defaultBlockState(); - } - - private boolean isNotExcluded(BlockState state) { - for (StateIngredient exclude : excludes) { - if (exclude.test(state)) { - return false; - } - } - return true; - } - - @Override - public boolean equals(Object o) { - return super.equals(o) && this.excludes.equals(((StateIngredientTagExcluding) o).excludes); - } - - @Override - public int hashCode() { - return super.hashCode(); - } - - @Override - public JsonObject serialize() { - JsonObject object = new JsonObject(); - object.addProperty("type", "tag_excluding"); - object.addProperty("tag", getTagId().toString()); - JsonArray array = new JsonArray(); - for (StateIngredient exclude : excludes) { - array.add(exclude.serialize()); - } - object.add("exclude", array); - return object; - } - - @Override - public List getDisplayedStacks() { - return getBlocks().stream() - .filter(b -> b.asItem() != Items.AIR) - .map(ItemStack::new) - .toList(); - } - - @NotNull - @Override - protected List getBlocks() { - return super.getBlocks().stream() - .filter(b -> isNotExcluded(b.defaultBlockState())) - .toList(); - } - - @Override - public List getDisplayed() { - return super.getDisplayed().stream() - .filter(this::isNotExcluded) - .toList(); - } -} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredient.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredient.java index 6e777cc2d0..950e18a03e 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredient.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredient.java @@ -21,20 +21,16 @@ // // .equals must make sense public abstract class BrainsweepeeIngredient { + + public abstract BrainsweepeeIngredientType getType(); + public abstract boolean test(Entity entity, ServerLevel level); public abstract Component getName(); public abstract List getTooltip(boolean advanced); - public abstract JsonObject serialize(); - - public void wrapWrite(FriendlyByteBuf buf) { - buf.writeEnum(this.ingrType()); - this.write(buf); - } - - public abstract void write(FriendlyByteBuf buf); + public abstract String getSomeKindOfReasonableIDForEmi(); /** * For the benefit of showing to the client, return an example of the entity. @@ -44,41 +40,6 @@ public void wrapWrite(FriendlyByteBuf buf) { @Nullable public abstract Entity exampleEntity(Level level); - public abstract Type ingrType(); - - public abstract String getSomeKindOfReasonableIDForEmi(); - - public static BrainsweepeeIngredient read(FriendlyByteBuf buf) { - var type = buf.readEnum(Type.class); - return switch (type) { - case VILLAGER -> VillagerIngredient.read(buf); - case ENTITY_TYPE -> EntityTypeIngredient.read(buf); - case ENTITY_TAG -> EntityTagIngredient.read(buf); - }; - } - - public static BrainsweepeeIngredient deserialize(JsonObject json) { - var typestr = GsonHelper.getAsString(json, "type"); - var type = Type.valueOf(typestr.toUpperCase(Locale.ROOT)); - return switch (type) { - case VILLAGER -> VillagerIngredient.deserialize(json); - case ENTITY_TYPE -> EntityTypeIngredient.deserialize(json); - case ENTITY_TAG -> EntityTagIngredient.deserialize(json); - }; - } - - // TODO: make this a registry? - public enum Type implements StringRepresentable { - VILLAGER, - ENTITY_TYPE, - ENTITY_TAG; - - @Override - public String getSerializedName() { - return this.name().toLowerCase(Locale.ROOT); - } - } - public static Component getModNameComponent(String namespace) { String mod = IXplatAbstractions.INSTANCE.getModName(namespace); return Component.literal(mod).withStyle(ChatFormatting.BLUE, ChatFormatting.ITALIC); diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredientType.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredientType.java new file mode 100644 index 0000000000..1b493d7141 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredientType.java @@ -0,0 +1,12 @@ +package at.petrak.hexcasting.common.recipe.ingredient.brainsweep; + +import com.mojang.serialization.MapCodec; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; + +public interface BrainsweepeeIngredientType { + + MapCodec codec(); + + StreamCodec streamCodec(); +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredients.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredients.java new file mode 100644 index 0000000000..054619ee7f --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/BrainsweepeeIngredients.java @@ -0,0 +1,105 @@ +package at.petrak.hexcasting.common.recipe.ingredient.brainsweep; + +import at.petrak.hexcasting.api.HexAPI; +import at.petrak.hexcasting.common.lib.HexRegistries; +import at.petrak.hexcasting.xplat.IXplatAbstractions; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +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.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.npc.VillagerType; +import net.minecraft.world.level.Level; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.function.BiConsumer; + +public class BrainsweepeeIngredients { + public static final Codec TYPED_CODEC = Codec.lazyInitialized(() -> IXplatAbstractions.INSTANCE + .getBrainsweepeeIngredientRegistry() + .byNameCodec() + .dispatch("type", BrainsweepeeIngredient::getType, BrainsweepeeIngredientType::codec)); + public static final StreamCodec TYPED_STREAM_CODEC = ByteBufCodecs + .registry(HexRegistries.BRAINSWEEPEE_INGREDIENT) + .dispatch(BrainsweepeeIngredient::getType, BrainsweepeeIngredientType::streamCodec); + + public static final BrainsweepeeIngredientType ENTITY_TYPE = new EntityTypeIngredient.Type(); + public static final BrainsweepeeIngredientType TAG = new EntityTagIngredient.Type(); + public static final BrainsweepeeIngredientType VILLAGER = new VillagerIngredient.Type(); + + public static final BrainsweepeeIngredientType NONE_TYPE = new BrainsweepeeIngredientType<>() { + @Override + public MapCodec codec() { + return MapCodec.unit(NONE); + } + + @Override + public StreamCodec streamCodec() { + return StreamCodec.unit(NONE); + } + }; + + public static final BrainsweepeeIngredient NONE = new BrainsweepeeIngredient() { + + @Override + public BrainsweepeeIngredientType getType() { + return NONE_TYPE; + } + + @Override + public boolean test(Entity entity, ServerLevel level) { + return false; + } + + @Override + public Component getName() { + return Component.literal("none"); + } + + @Override + public List getTooltip(boolean advanced) { + return List.of(); + } + + @Override + public String getSomeKindOfReasonableIDForEmi() { + return "none"; + } + + @Override + public @Nullable Entity exampleEntity(Level level) { + return null; + } + }; + + public static void register(BiConsumer, ResourceLocation> r) { + r.accept(NONE_TYPE, HexAPI.modLoc("none")); + r.accept(ENTITY_TYPE, HexAPI.modLoc("entity_type")); + r.accept(TAG, HexAPI.modLoc("entity_tag")); + r.accept(VILLAGER, HexAPI.modLoc("villager")); + } + + public static BrainsweepeeIngredient of(EntityType entityType) { + return new EntityTypeIngredient(entityType); + } + + public static BrainsweepeeIngredient of(TagKey> tagKey) { + return new EntityTagIngredient(tagKey); + } + + public static BrainsweepeeIngredient of( + @Nullable VillagerProfession profession, + @Nullable VillagerType biome, + int minLevel + ) { + return new VillagerIngredient(profession, biome, minLevel); + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTagIngredient.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTagIngredient.java index cb6b0a0912..841cb7466a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTagIngredient.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTagIngredient.java @@ -1,17 +1,17 @@ package at.petrak.hexcasting.common.recipe.ingredient.brainsweep; -import com.google.gson.JsonObject; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.ChatFormatting; import net.minecraft.client.resources.language.I18n; -import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.tags.TagKey; -import net.minecraft.util.GsonHelper; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; @@ -27,6 +27,15 @@ public EntityTagIngredient(TagKey> tag) { this.entityTypeTag = tag; } + @Override + public BrainsweepeeIngredientType getType() { + return BrainsweepeeIngredients.TAG; + } + + public TagKey> getTag() { + return entityTypeTag; + } + @Override public boolean test(Entity entity, ServerLevel level) { return entity.getType().is(this.entityTypeTag); @@ -68,6 +77,14 @@ public List getTooltip(boolean advanced) { return out; } + @Override + public String getSomeKindOfReasonableIDForEmi() { + var resloc = this.entityTypeTag.location(); + return resloc.getNamespace() + + "//" + + resloc.getPath(); + } + @Override public Entity exampleEntity(Level level) { var someEntityTys = BuiltInRegistries.ENTITY_TYPE.getTagOrEmpty(this.entityTypeTag).iterator(); @@ -79,49 +96,6 @@ public Entity exampleEntity(Level level) { } } - @Override - public JsonObject serialize() { - var obj = new JsonObject(); - obj.addProperty("type", Type.ENTITY_TAG.getSerializedName()); - - obj.addProperty("tag", this.entityTypeTag.location().toString()); - - return obj; - } - - @Override - public void write(FriendlyByteBuf buf) { - buf.writeResourceLocation(this.entityTypeTag.location()); - } - - public static EntityTagIngredient deserialize(JsonObject obj) { - var tagLoc = ResourceLocation.tryParse(GsonHelper.getAsString(obj, "tag")); - if (tagLoc == null) { - throw new IllegalArgumentException("unknown tag " + obj); - } - var type = TagKey.create(Registries.ENTITY_TYPE, tagLoc); - return new EntityTagIngredient(type); - } - - public static EntityTagIngredient read(FriendlyByteBuf buf) { - var typeLoc = buf.readResourceLocation(); - var type = TagKey.create(Registries.ENTITY_TYPE, typeLoc); - return new EntityTagIngredient(type); - } - - @Override - public Type ingrType() { - return Type.ENTITY_TAG; - } - - @Override - public String getSomeKindOfReasonableIDForEmi() { - var resloc = this.entityTypeTag.location(); - return resloc.getNamespace() - + "//" - + resloc.getPath(); - } - @Override public boolean equals(Object o) { if (this == o) return true; @@ -134,4 +108,25 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hashCode(this.entityTypeTag); } + + + public static class Type implements BrainsweepeeIngredientType { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + TagKey.hashedCodec(Registries.ENTITY_TYPE).fieldOf("tag").forGetter(EntityTagIngredient::getTag) + ).apply(instance, EntityTagIngredient::new)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ResourceLocation.STREAM_CODEC.map(id -> TagKey.create(Registries.ENTITY_TYPE, id), TagKey::location), EntityTagIngredient::getTag, + EntityTagIngredient::new + ); + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + public StreamCodec streamCodec() { + return STREAM_CODEC; + } + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTypeIngredient.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTypeIngredient.java index f510c17d2e..7ce69c45eb 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTypeIngredient.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/EntityTypeIngredient.java @@ -1,10 +1,15 @@ package at.petrak.hexcasting.common.recipe.ingredient.brainsweep; import com.google.gson.JsonObject; -import net.minecraft.core.Registry; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; 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.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.GsonHelper; @@ -22,6 +27,15 @@ public EntityTypeIngredient(EntityType entityType) { this.entityType = entityType; } + @Override + public BrainsweepeeIngredientType getType() { + return BrainsweepeeIngredients.ENTITY_TYPE; + } + + public EntityType getEntityType() { + return entityType; + } + @Override public boolean test(Entity entity, ServerLevel level) { // entity types are singletons @@ -41,49 +55,17 @@ public List getTooltip(boolean advanced) { ); } - @Override - public Entity exampleEntity(Level level) { - return this.entityType.create(level); - } - - @Override - public JsonObject serialize() { - var obj = new JsonObject(); - obj.addProperty("type", Type.ENTITY_TYPE.getSerializedName()); - obj.addProperty("entityType", BuiltInRegistries.ENTITY_TYPE.getKey(this.entityType).toString()); - - return obj; - } - - @Override - public void write(FriendlyByteBuf buf) { - buf.writeVarInt(BuiltInRegistries.ENTITY_TYPE.getId(this.entityType)); - } - - public static EntityTypeIngredient deserialize(JsonObject obj) { - var typeLoc = ResourceLocation.tryParse(GsonHelper.getAsString(obj, "entityType")); - if (typeLoc == null || !BuiltInRegistries.ENTITY_TYPE.containsKey(typeLoc)) { - throw new IllegalArgumentException("unknown entity type " + typeLoc); - } - return new EntityTypeIngredient(BuiltInRegistries.ENTITY_TYPE.get(typeLoc)); - } - - public static EntityTypeIngredient read(FriendlyByteBuf buf) { - var tyId = buf.readVarInt(); - return new EntityTypeIngredient(BuiltInRegistries.ENTITY_TYPE.byId(tyId)); - } - - @Override - public Type ingrType() { - return Type.ENTITY_TYPE; - } - @Override public String getSomeKindOfReasonableIDForEmi() { var resloc = BuiltInRegistries.ENTITY_TYPE.getKey(this.entityType); return resloc.getNamespace() - + "//" - + resloc.getPath(); + + "//" + + resloc.getPath(); + } + + @Override + public Entity exampleEntity(Level level) { + return this.entityType.create(level); } @Override @@ -98,4 +80,25 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash(entityType); } + + + public static class Type implements BrainsweepeeIngredientType { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + BuiltInRegistries.ENTITY_TYPE.byNameCodec().fieldOf("entityType").forGetter(EntityTypeIngredient::getEntityType) + ).apply(instance, EntityTypeIngredient::new)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.registry(Registries.ENTITY_TYPE), EntityTypeIngredient::getEntityType, + EntityTypeIngredient::new + ); + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + public StreamCodec streamCodec() { + return STREAM_CODEC; + } + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/VillagerIngredient.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/VillagerIngredient.java index d3cf2e63ef..506982407a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/VillagerIngredient.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/brainsweep/VillagerIngredient.java @@ -1,13 +1,20 @@ package at.petrak.hexcasting.common.recipe.ingredient.brainsweep; import com.google.gson.JsonObject; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.ChatFormatting; import net.minecraft.core.Registry; 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.chat.MutableComponent; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.GsonHelper; @@ -22,6 +29,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.Optional; /** * Special case for villagers so we can have biome/profession/level reqs @@ -41,6 +49,23 @@ public VillagerIngredient( this.minLevel = minLevel; } + @Override + public BrainsweepeeIngredientType getType() { + return BrainsweepeeIngredients.VILLAGER; + } + + public @Nullable VillagerProfession getProfession() { + return profession; + } + + public @Nullable VillagerType getBiome() { + return biome; + } + + public int getMinLevel() { + return minLevel; + } + @Override public boolean test(Entity entity, ServerLevel level) { if (!(entity instanceof Villager villager)) return false; @@ -105,6 +130,31 @@ public List getTooltip(boolean advanced) { return tooltip; } + @Override + public String getSomeKindOfReasonableIDForEmi() { + var bob = new StringBuilder(); + if (this.profession != null) { + var profLoc = BuiltInRegistries.VILLAGER_PROFESSION.getKey(this.profession); + bob.append(profLoc.getNamespace()) + .append("//") + .append(profLoc.getPath()); + } else { + bob.append("null"); + } + bob.append("_"); + if (this.biome != null) { + var biomeLoc = BuiltInRegistries.VILLAGER_TYPE.getKey(this.biome); + bob.append(biomeLoc.getNamespace()) + .append("//") + .append(biomeLoc.getPath()); + } else { + bob.append("null"); + } + + bob.append(this.minLevel); + return bob.toString(); + } + @Override public Component getName() { MutableComponent component = Component.literal(""); @@ -149,97 +199,6 @@ public Component getName() { return component; } - @Override - public JsonObject serialize() { - var obj = new JsonObject(); - obj.addProperty("type", Type.VILLAGER.getSerializedName()); - - if (this.profession != null) { - obj.addProperty("profession", this.profession.toString()); - } - if (this.biome != null) { - obj.addProperty("biome", this.biome.toString()); - } - obj.addProperty("minLevel", this.minLevel); - return obj; - } - - @Override - public void write(FriendlyByteBuf buf) { - if (this.profession != null) { - buf.writeVarInt(1); - buf.writeVarInt(BuiltInRegistries.VILLAGER_PROFESSION.getId(this.profession)); - } else { - buf.writeVarInt(0); - } - if (this.biome != null) { - buf.writeVarInt(1); - buf.writeVarInt(BuiltInRegistries.VILLAGER_TYPE.getId(this.biome)); - } else { - buf.writeVarInt(0); - } - buf.writeInt(this.minLevel); - } - - public static VillagerIngredient deserialize(JsonObject json) { - VillagerProfession profession = null; - if (json.has("profession") && !json.get("profession").isJsonNull()) { - profession = BuiltInRegistries.VILLAGER_PROFESSION.get(new ResourceLocation(GsonHelper.getAsString(json, - "profession"))); - } - VillagerType biome = null; - if (json.has("biome") && !json.get("biome").isJsonNull()) { - biome = BuiltInRegistries.VILLAGER_TYPE.get(new ResourceLocation(GsonHelper.getAsString(json, "biome"))); - } - int minLevel = GsonHelper.getAsInt(json, "minLevel"); - return new VillagerIngredient(profession, biome, minLevel); - } - - public static VillagerIngredient read(FriendlyByteBuf buf) { - VillagerProfession profession = null; - var hasProfession = buf.readVarInt(); - if (hasProfession != 0) { - profession = BuiltInRegistries.VILLAGER_PROFESSION.byId(buf.readVarInt()); - } - VillagerType biome = null; - var hasBiome = buf.readVarInt(); - if (hasBiome != 0) { - biome = BuiltInRegistries.VILLAGER_TYPE.byId(buf.readVarInt()); - } - int minLevel = buf.readInt(); - return new VillagerIngredient(profession, biome, minLevel); - } - - @Override - public Type ingrType() { - return Type.VILLAGER; - } - - @Override - public String getSomeKindOfReasonableIDForEmi() { - var bob = new StringBuilder(); - if (this.profession != null) { - var profLoc = BuiltInRegistries.VILLAGER_PROFESSION.getKey(this.profession); - bob.append(profLoc.getNamespace()) - .append("//") - .append(profLoc.getPath()); - } else { - bob.append("null"); - } - bob.append("_"); - if (this.biome != null) { - var biomeLoc = BuiltInRegistries.VILLAGER_TYPE.getKey(this.biome); - bob.append(biomeLoc.getNamespace()) - .append("//") - .append(biomeLoc.getPath()); - } else { - bob.append("null"); - } - - bob.append(this.minLevel); - return bob.toString(); - } - @Override public boolean equals(Object o) { if (this == o) return true; @@ -253,4 +212,29 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash(profession, biome, minLevel); } + + + public static class Type implements BrainsweepeeIngredientType { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + BuiltInRegistries.VILLAGER_PROFESSION.byNameCodec().optionalFieldOf("profession").forGetter(ing -> Optional.ofNullable(ing.getProfession())), + BuiltInRegistries.VILLAGER_TYPE.byNameCodec().optionalFieldOf("biome").forGetter(ing -> Optional.ofNullable(ing.getBiome())), + Codec.INT.fieldOf("minLevel").forGetter(VillagerIngredient::getMinLevel) + ).apply(instance, (a, b, c) -> new VillagerIngredient(a.orElse(null), b.orElse(null), c))); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.optional(ByteBufCodecs.registry(Registries.VILLAGER_PROFESSION)), ing -> Optional.ofNullable(ing.getProfession()), + ByteBufCodecs.optional(ByteBufCodecs.registry(Registries.VILLAGER_TYPE)), ing -> Optional.ofNullable(ing.getBiome()), + ByteBufCodecs.VAR_INT, VillagerIngredient::getMinLevel, + (a, b, c) -> new VillagerIngredient(a.orElse(null), b.orElse(null), c) + ); + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + public StreamCodec streamCodec() { + return STREAM_CODEC; + } + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredient.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredient.java similarity index 80% rename from Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredient.java rename to Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredient.java index cd2cca2268..464e703d09 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredient.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredient.java @@ -1,8 +1,6 @@ -package at.petrak.hexcasting.common.recipe.ingredient; +package at.petrak.hexcasting.common.recipe.ingredient.state; -import com.google.gson.JsonObject; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; @@ -15,15 +13,14 @@ // https://github.com/VazkiiMods/Botania/blob/1.18.x/Common/src/main/java/vazkii/botania/api/recipe/StateIngredient.java // good artists copy and all public interface StateIngredient extends Predicate { + + StateIngredientType getType(); + @Override boolean test(BlockState state); BlockState pick(Random random); - JsonObject serialize(); - - void write(FriendlyByteBuf buffer); - List getDisplayedStacks(); /** diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlock.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlock.java new file mode 100644 index 0000000000..cfb1209cd5 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlock.java @@ -0,0 +1,99 @@ +package at.petrak.hexcasting.common.recipe.ingredient.state; + +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +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.Items; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.Collections; +import java.util.List; +import java.util.Random; + +public class StateIngredientBlock implements StateIngredient { + private final Block block; + + public StateIngredientBlock(Block block) { + this.block = block; + } + + @Override + public StateIngredientType getType() { + return StateIngredients.BLOCK_TYPE; + } + + @Override + public boolean test(BlockState blockState) { + return block == blockState.getBlock(); + } + + @Override + public BlockState pick(Random random) { + return block.defaultBlockState(); + } + + @Override + public List getDisplayedStacks() { + if (block.asItem() == Items.AIR) { + return Collections.emptyList(); + } + return Collections.singletonList(new ItemStack(block)); + } + + @Override + public List getDisplayed() { + return Collections.singletonList(block.defaultBlockState()); + } + + public Block getBlock() { + return block; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + return block == ((StateIngredientBlock) o).block; + } + + @Override + public int hashCode() { + return block.hashCode(); + } + + @Override + public String toString() { + return "StateIngredientBlock{" + block + "}"; + } + + + public static class Type implements StateIngredientType { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + BuiltInRegistries.BLOCK.byNameCodec().fieldOf("block").forGetter(StateIngredientBlock::getBlock) + ).apply(instance, StateIngredientBlock::new)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.registry(Registries.BLOCK), StateIngredientBlock::getBlock, + StateIngredientBlock::new + ); + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + public StreamCodec streamCodec() { + return STREAM_CODEC; + } + } +} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlockState.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlockState.java new file mode 100644 index 0000000000..7a01d09e47 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlockState.java @@ -0,0 +1,118 @@ +package at.petrak.hexcasting.common.recipe.ingredient.state; + +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.ChatFormatting; +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.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.Property; + +import javax.annotation.Nullable; +import java.util.*; + +public class StateIngredientBlockState implements StateIngredient { + private final BlockState state; + + public StateIngredientBlockState(BlockState state) { + this.state = state; + } + + @Override + public StateIngredientType getType() { + return StateIngredients.BLOCK_STATE; + } + + @Override + public boolean test(BlockState blockState) { + return this.state == blockState; + } + + @Override + public BlockState pick(Random random) { + return state; + } + + @Override + public List getDisplayedStacks() { + Block block = state.getBlock(); + if (block.asItem() == Items.AIR) { + return Collections.emptyList(); + } + return Collections.singletonList(new ItemStack(block)); + } + + @Nullable + @Override + public List descriptionTooltip() { + Map, Comparable> map = state.getValues(); + if (map.isEmpty()) { + return StateIngredient.super.descriptionTooltip(); + } + List tooltip = new ArrayList<>(map.size()); + for (Map.Entry, Comparable> entry : map.entrySet()) { + Property key = entry.getKey(); + @SuppressWarnings({"unchecked", "rawtypes"}) + String name = ((Property) key).getName(entry.getValue()); + + tooltip.add(Component.literal(key.getName() + " = " + name).withStyle(ChatFormatting.GRAY)); + } + return tooltip; + } + + @Override + public List getDisplayed() { + return Collections.singletonList(state); + } + + public BlockState getState() { + return state; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + return state == ((StateIngredientBlockState) o).state; + } + + @Override + public int hashCode() { + return state.hashCode(); + } + + @Override + public String toString() { + return "StateIngredientBlockState{" + state + "}"; + } + + + public static class Type implements StateIngredientType { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + BlockState.CODEC.fieldOf("state").forGetter(StateIngredientBlockState::getState) + ).apply(instance, StateIngredientBlockState::new)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.VAR_INT.map(Block::stateById, Block::getId), StateIngredientBlockState::getState, + StateIngredientBlockState::new + ); + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + public StreamCodec streamCodec() { + return STREAM_CODEC; + } + } +} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlocks.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlocks.java new file mode 100644 index 0000000000..4f828e2f13 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlocks.java @@ -0,0 +1,104 @@ +package at.petrak.hexcasting.common.recipe.ingredient.state; + +import com.google.common.collect.ImmutableSet; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +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.Items; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nonnull; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.Random; +import java.util.stream.Collectors; + +public class StateIngredientBlocks implements StateIngredient { + protected final ImmutableSet blocks; + + public StateIngredientBlocks(Collection blocks) { + this.blocks = ImmutableSet.copyOf(blocks); + } + + @Override + public StateIngredientType getType() { + return StateIngredients.BLOCKS; + } + + @Override + public boolean test(BlockState state) { + return blocks.contains(state.getBlock()); + } + + @Override + public BlockState pick(Random random) { + return blocks.asList().get(random.nextInt(blocks.size())).defaultBlockState(); + } + + @Override + public List getDisplayedStacks() { + return blocks.stream() + .filter(b -> b.asItem() != Items.AIR) + .map(ItemStack::new) + .collect(Collectors.toList()); + } + + @Override + public List getDisplayed() { + return blocks.stream().map(Block::defaultBlockState).collect(Collectors.toList()); + } + + @Nonnull + protected List getBlocks() { + return blocks.asList(); + } + + @Override + public String toString() { + return "StateIngredientBlocks{" + blocks.toString() + "}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + return blocks.equals(((StateIngredientBlocks) o).blocks); + } + + @Override + public int hashCode() { + return Objects.hash(blocks); + } + + + public static class Type implements StateIngredientType { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + BuiltInRegistries.BLOCK.byNameCodec().listOf().fieldOf("block").forGetter(StateIngredientBlocks::getBlocks) + ).apply(instance, StateIngredientBlocks::new)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.registry(Registries.BLOCK).apply(ByteBufCodecs.list()), StateIngredientBlocks::getBlocks, + StateIngredientBlocks::new + ); + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + public StreamCodec streamCodec() { + return STREAM_CODEC; + } + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTag.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTag.java new file mode 100644 index 0000000000..dac2e84b3b --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTag.java @@ -0,0 +1,121 @@ +package at.petrak.hexcasting.common.recipe.ingredient.state; + +import com.google.common.collect.ImmutableSet; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nonnull; +import java.util.List; +import java.util.Random; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + +public class StateIngredientTag extends StateIngredientBlocks { + private final TagKey tag; + + public StateIngredientTag(TagKey tag) { + super(ImmutableSet.of()); + this.tag = tag; + } + + @Override + public StateIngredientType getType() { + return StateIngredients.TAG; + } + + public Stream resolve() { + return StreamSupport.stream(BuiltInRegistries.BLOCK.getTagOrEmpty(tag).spliterator(), false) + .map(Holder::value); + } + + @Override + public boolean test(BlockState state) { + return state.is(tag); + } + + @Override + public BlockState pick(Random random) { + var values = resolve().toList(); + if (values.isEmpty()) { + return null; + } + return values.get(random.nextInt(values.size())).defaultBlockState(); + } + + @Override + public List getDisplayedStacks() { + return resolve() + .filter(b -> b.asItem() != Items.AIR) + .map(ItemStack::new) + .collect(Collectors.toList()); + } + + @Nonnull + @Override + protected List getBlocks() { + return resolve().toList(); + } + + @Override + public List getDisplayed() { + return resolve().map(Block::defaultBlockState).collect(Collectors.toList()); + } + + public TagKey getTag() { + return tag; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + return tag.equals(((StateIngredientTag) o).tag); + } + + @Override + public int hashCode() { + return tag.hashCode(); + } + + @Override + public String toString() { + return "StateIngredientTag{" + tag + "}"; + } + + + public static class Type implements StateIngredientType { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + TagKey.hashedCodec(Registries.BLOCK).fieldOf("tag").forGetter(StateIngredientTag::getTag) + ).apply(instance, StateIngredientTag::new)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ResourceLocation.STREAM_CODEC.map(id -> TagKey.create(Registries.BLOCK, id), TagKey::location), StateIngredientTag::getTag, + StateIngredientTag::new + ); + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + public StreamCodec streamCodec() { + return STREAM_CODEC; + } + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTagExcluding.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTagExcluding.java new file mode 100644 index 0000000000..2a08f605be --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTagExcluding.java @@ -0,0 +1,118 @@ +package at.petrak.hexcasting.common.recipe.ingredient.state; + +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.registries.Registries; +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.TagKey; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.List; +import java.util.Random; + +public class StateIngredientTagExcluding extends StateIngredientTag { + private final List excludes; + + public StateIngredientTagExcluding(TagKey tag, Collection excludes) { + super(tag); + this.excludes = List.copyOf(excludes); + } + + @Override + public StateIngredientType getType() { + return StateIngredients.TAG_EXCLUDING; + } + + @Override + public boolean test(BlockState state) { + if (!super.test(state)) { + return false; + } + return isNotExcluded(state); + } + + @Override + public BlockState pick(Random random) { + List blocks = getBlocks(); + if (blocks.isEmpty()) { + return null; + } + return blocks.get(random.nextInt(blocks.size())).defaultBlockState(); + } + + private boolean isNotExcluded(BlockState state) { + for (StateIngredient exclude : excludes) { + if (exclude.test(state)) { + return false; + } + } + return true; + } + + @Override + public boolean equals(Object o) { + return super.equals(o) && this.excludes.equals(((StateIngredientTagExcluding) o).excludes); + } + + @Override + public int hashCode() { + return super.hashCode(); + } + + @Override + public List getDisplayedStacks() { + return getBlocks().stream() + .filter(b -> b.asItem() != Items.AIR) + .map(ItemStack::new) + .toList(); + } + + @NotNull + @Override + protected List getBlocks() { + return super.getBlocks().stream() + .filter(b -> isNotExcluded(b.defaultBlockState())) + .toList(); + } + + @Override + public List getDisplayed() { + return super.getDisplayed().stream() + .filter(this::isNotExcluded) + .toList(); + } + + public List getExcludes() { + return excludes; + } + + public static class Type implements StateIngredientType { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + TagKey.hashedCodec(Registries.BLOCK).fieldOf("tag").forGetter(StateIngredientTagExcluding::getTag), + StateIngredients.TYPED_CODEC.listOf().fieldOf("excludes").forGetter(StateIngredientTagExcluding::getExcludes) + ).apply(instance, StateIngredientTagExcluding::new)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ResourceLocation.STREAM_CODEC.map(id -> TagKey.create(Registries.BLOCK, id), TagKey::location), StateIngredientTagExcluding::getTag, + StateIngredients.TYPED_STREAM_CODEC.apply(ByteBufCodecs.list()), StateIngredientTagExcluding::getExcludes, + StateIngredientTagExcluding::new + ); + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + public StreamCodec streamCodec() { + return STREAM_CODEC; + } + } +} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientType.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientType.java new file mode 100644 index 0000000000..da8a3ed7b7 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientType.java @@ -0,0 +1,12 @@ +package at.petrak.hexcasting.common.recipe.ingredient.state; + +import com.mojang.serialization.MapCodec; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; + +public interface StateIngredientType { + + MapCodec codec(); + + StreamCodec streamCodec(); +} diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredients.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredients.java new file mode 100644 index 0000000000..9c7ed400de --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredients.java @@ -0,0 +1,95 @@ +package at.petrak.hexcasting.common.recipe.ingredient.state; + +import at.petrak.hexcasting.api.HexAPI; +import at.petrak.hexcasting.common.lib.HexRegistries; +import at.petrak.hexcasting.xplat.IXplatAbstractions; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +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.TagKey; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.List; +import java.util.Random; +import java.util.function.BiConsumer; + +public class StateIngredients { + public static final Codec TYPED_CODEC = Codec.lazyInitialized(() -> IXplatAbstractions.INSTANCE + .getStateIngredientRegistry() + .byNameCodec() + .dispatch("type", StateIngredient::getType, StateIngredientType::codec)); + public static final StreamCodec TYPED_STREAM_CODEC = ByteBufCodecs + .registry(HexRegistries.STATE_INGREDIENT) + .dispatch(StateIngredient::getType, StateIngredientType::streamCodec); + + public static final StateIngredientType BLOCK_TYPE = new StateIngredientBlock.Type(); + public static final StateIngredientType BLOCK_STATE = new StateIngredientBlockState.Type(); + public static final StateIngredientType BLOCKS = new StateIngredientBlocks.Type(); + public static final StateIngredientType TAG = new StateIngredientTag.Type(); + public static final StateIngredientType TAG_EXCLUDING = new StateIngredientTagExcluding.Type(); + + public static final StateIngredientType NONE_TYPE = new StateIngredientType<>() { + @Override + public MapCodec codec() { + return MapCodec.unit(NONE); + } + + @Override + public StreamCodec streamCodec() { + return StreamCodec.unit(NONE); + } + }; + + public static final StateIngredient NONE = new StateIngredient() { + @Override + public boolean test(BlockState state) { + return true; + } + + @Override + public BlockState pick(Random random) { + throw new UnsupportedOperationException("Should never try to pick from NONE state ingredient"); + } + + @Override + public StateIngredientType getType() { + return NONE_TYPE; + } + + @Override + public List getDisplayedStacks() { + return List.of(); + } + + @Override + public List getDisplayed() { + return List.of(); + } + }; + + public static void register(BiConsumer, ResourceLocation> r) { + r.accept(NONE_TYPE, HexAPI.modLoc("none")); + r.accept(BLOCK_TYPE, HexAPI.modLoc("block")); + r.accept(BLOCK_STATE, HexAPI.modLoc("state")); + r.accept(BLOCKS, HexAPI.modLoc("blocks")); + r.accept(TAG, HexAPI.modLoc("tag")); + r.accept(TAG_EXCLUDING, HexAPI.modLoc("tag_excluding")); + } + + public static StateIngredient of(Block block) { + return new StateIngredientBlock(block); + } + + public static StateIngredient of(BlockState state) { + return new StateIngredientBlockState(state); + } + + public static StateIngredient of(TagKey tag) { + return new StateIngredientTag(tag); + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/HexAdvancements.java b/Common/src/main/java/at/petrak/hexcasting/datagen/HexAdvancements.java index d095b06044..e2c39f5ffa 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/HexAdvancements.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/HexAdvancements.java @@ -1,53 +1,51 @@ package at.petrak.hexcasting.datagen; import at.petrak.hexcasting.api.HexAPI; -import at.petrak.hexcasting.api.advancements.FailToCastGreatSpellTrigger; -import at.petrak.hexcasting.api.advancements.MinMaxLongs; -import at.petrak.hexcasting.api.advancements.OvercastTrigger; -import at.petrak.hexcasting.api.advancements.SpendMediaTrigger; +import at.petrak.hexcasting.api.advancements.*; import at.petrak.hexcasting.api.misc.MediaConstants; import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.items.ItemLoreFragment; import at.petrak.hexcasting.common.lib.HexBlocks; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.paucal.api.datagen.PaucalAdvancementSubProvider; -import net.minecraft.advancements.Advancement; -import net.minecraft.advancements.DisplayInfo; -import net.minecraft.advancements.FrameType; +import net.minecraft.advancements.*; import net.minecraft.advancements.critereon.*; import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; +import java.util.Optional; import java.util.function.Consumer; public class HexAdvancements extends PaucalAdvancementSubProvider { public static final OvercastTrigger.Instance ENLIGHTEN = - new OvercastTrigger.Instance(ContextAwarePredicate.ANY, + new OvercastTrigger.Instance(Optional.empty(), MinMaxBounds.Ints.ANY, // add a little bit of slop here. use 80% or more health ... MinMaxBounds.Doubles.atLeast(0.8), // and be left with under 1 healthpoint (half a heart) // TODO this means if 80% of your health is less than half a heart, so if you have 2.5 hearts or // less, you can't become enlightened. - MinMaxBounds.Doubles.between(Double.MIN_NORMAL, 1.0)); + MinMaxBounds.Doubles.between(Double.MIN_NORMAL, 1.0) + ); public HexAdvancements() { super(HexAPI.MOD_ID); } @Override - public void generate(HolderLookup.Provider provider, Consumer consumer) { + public void generate(HolderLookup.Provider provider, Consumer consumer) { var root = Advancement.Builder.advancement() // what an ergonomic design decision // i am so happy that data generators are the future .display(new DisplayInfo(new ItemStack(Items.BUDDING_AMETHYST), Component.translatable("advancement.hexcasting:root"), Component.translatable("advancement.hexcasting:root.desc"), - new ResourceLocation("minecraft", "textures/block/calcite.png"), - FrameType.TASK, true, true, true)) + Optional.of(ResourceLocation.withDefaultNamespace("textures/block/calcite.png")), + AdvancementType.TASK, true, true, true)) // the only thing making this vaguely tolerable is the knowledge the json files are worse somehow .addCriterion("has_charged_amethyst", InventoryChangeTrigger.TriggerInstance.hasItems( ItemPredicate.Builder.item().of(HexTags.Items.GRANTS_ROOT_ADVANCEMENT).build())) @@ -58,8 +56,8 @@ public void generate(HolderLookup.Provider provider, Consumer consu .display(new DisplayInfo(new ItemStack(HexItems.CREATIVE_UNLOCKER), Component.translatable("advancement.hexcasting:creative_unlocker"), Component.translatable("advancement.hexcasting:creative_unlocker.desc"), - new ResourceLocation("minecraft", "textures/block/calcite.png"), - FrameType.TASK, true, false, true)) + Optional.of(ResourceLocation.withDefaultNamespace("textures/block/calcite.png")), + AdvancementType.TASK, true, false, true)) .parent(root) .addCriterion("has_creative_unlocker", InventoryChangeTrigger.TriggerInstance.hasItems( ItemPredicate.Builder.item().of(HexItems.CREATIVE_UNLOCKER).build())) @@ -67,62 +65,72 @@ public void generate(HolderLookup.Provider provider, Consumer consu // weird names so we have alphabetical parity Advancement.Builder.advancement() - .display(simpleDisplay(Items.GLISTERING_MELON_SLICE, "wasteful_cast", FrameType.TASK)) + .display(simpleDisplay(Items.GLISTERING_MELON_SLICE, "wasteful_cast", AdvancementType.TASK)) .parent(root) - .addCriterion("waste_amt", new SpendMediaTrigger.Instance(ContextAwarePredicate.ANY, - MinMaxLongs.ANY, - MinMaxLongs.atLeast(89 * MediaConstants.DUST_UNIT / 10))) + .addCriterion("waste_amt", new Criterion<>( + HexAdvancementTriggers.SPEND_MEDIA_TRIGGER, + new SpendMediaTrigger.Instance(Optional.empty(), + MinMaxLongs.ANY, + MinMaxLongs.atLeast(89 * MediaConstants.DUST_UNIT / 10)) + )) .save(consumer, prefix("aaa_wasteful_cast")); Advancement.Builder.advancement() - .display(simpleDisplay(HexItems.CHARGED_AMETHYST, "big_cast", FrameType.TASK)) + .display(simpleDisplay(HexItems.CHARGED_AMETHYST, "big_cast", AdvancementType.TASK)) .parent(root) - .addCriterion("cast_amt", new SpendMediaTrigger.Instance(ContextAwarePredicate.ANY, - MinMaxLongs.atLeast(64 * MediaConstants.CRYSTAL_UNIT), - MinMaxLongs.ANY)) + .addCriterion("cast_amt", new Criterion<>( + HexAdvancementTriggers.SPEND_MEDIA_TRIGGER, + new SpendMediaTrigger.Instance(Optional.empty(), + MinMaxLongs.atLeast(64 * MediaConstants.CRYSTAL_UNIT), + MinMaxLongs.ANY) + )) .save(consumer, prefix("aab_big_cast")); var impotence = Advancement.Builder.advancement() - .display(simpleDisplay(Items.BLAZE_POWDER, "y_u_no_cast_angy", FrameType.TASK)) + .display(simpleDisplay(Items.BLAZE_POWDER, "y_u_no_cast_angy", AdvancementType.TASK)) .parent(root) .addCriterion("did_the_thing", - new FailToCastGreatSpellTrigger.Instance(ContextAwarePredicate.ANY)) + new Criterion<>(HexAdvancementTriggers.FAIL_GREAT_SPELL_TRIGGER, + new FailToCastGreatSpellTrigger.Instance(Optional.empty()))) .save(consumer, prefix("y_u_no_cast_angy")); var opened_eyes = Advancement.Builder.advancement() - .display(simpleDisplay(Items.ENDER_EYE, "opened_eyes", FrameType.TASK)) + .display(simpleDisplay(Items.ENDER_EYE, "opened_eyes", AdvancementType.TASK)) .parent(impotence) .addCriterion("health_used", - new OvercastTrigger.Instance(ContextAwarePredicate.ANY, - MinMaxBounds.Ints.ANY, - MinMaxBounds.Doubles.ANY, - // you can't just kill yourself - MinMaxBounds.Doubles.atLeast(0.0))) + new Criterion<>( + HexAdvancementTriggers.OVERCAST_TRIGGER, + new OvercastTrigger.Instance(Optional.empty(), + MinMaxBounds.Ints.ANY, + MinMaxBounds.Doubles.ANY, + // you can't just kill yourself + MinMaxBounds.Doubles.atLeast(0.0))) + ) .save(consumer, prefix("opened_eyes")); Advancement.Builder.advancement() .display(new DisplayInfo(new ItemStack(Items.MUSIC_DISC_11), Component.translatable("advancement.hexcasting:enlightenment"), Component.translatable("advancement.hexcasting:enlightenment.desc"), - null, - FrameType.CHALLENGE, true, true, true)) + Optional.empty(), + AdvancementType.CHALLENGE, true, true, true)) .parent(opened_eyes) - .addCriterion("health_used", ENLIGHTEN) + .addCriterion("health_used", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, ENLIGHTEN)) .save(consumer, prefix("enlightenment")); var loreRoot = Advancement.Builder.advancement() - .display(simpleDisplayWithBackground(HexBlocks.AKASHIC_LIGATURE, "lore", FrameType.GOAL, - modLoc("textures/block/slate.png"))) - .addCriterion("used_item", new ConsumeItemTrigger.TriggerInstance(ContextAwarePredicate.ANY, - ItemPredicate.Builder.item().of(HexItems.LORE_FRAGMENT).build())) + .display(simpleDisplayWithBackground(HexBlocks.AKASHIC_LIGATURE, "lore", AdvancementType.GOAL, + modLoc("textures/block/slate_block.png"))) + .addCriterion("used_item", new Criterion<>(CriteriaTriggers.CONSUME_ITEM, new ConsumeItemTrigger.TriggerInstance(Optional.empty(), + Optional.of(ItemPredicate.Builder.item().of(HexItems.LORE_FRAGMENT).build())))) .save(consumer, prefix("lore")); for (var advId : ItemLoreFragment.NAMES) { Advancement.Builder.advancement() .display(new DisplayInfo(new ItemStack(HexItems.LORE_FRAGMENT), Component.translatable("advancement." + advId), Component.empty(), - null, FrameType.TASK, true, true, true)) + Optional.empty(), AdvancementType.TASK, true, true, true)) .parent(loreRoot) - .addCriterion(ItemLoreFragment.CRITEREON_KEY, new ImpossibleTrigger.TriggerInstance()) + .addCriterion(ItemLoreFragment.CRITEREON_KEY, new Criterion<>(CriteriaTriggers.IMPOSSIBLE, new ImpossibleTrigger.TriggerInstance())) .save(consumer, advId.toString()); } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/HexLootTables.java b/Common/src/main/java/at/petrak/hexcasting/datagen/HexLootTables.java index 386320703c..7def1328b6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/HexLootTables.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/HexLootTables.java @@ -3,17 +3,21 @@ import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.common.blocks.circles.BlockEntitySlate; import at.petrak.hexcasting.common.lib.HexBlocks; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.common.loot.HexLootHandler; import at.petrak.hexcasting.xplat.IXplatAbstractions; import at.petrak.paucal.api.datagen.PaucalLootTableSubProvider; -import net.minecraft.advancements.critereon.EnchantmentPredicate; -import net.minecraft.advancements.critereon.ItemPredicate; -import net.minecraft.advancements.critereon.MinMaxBounds; -import net.minecraft.advancements.critereon.StatePropertiesPredicate; +import net.minecraft.advancements.critereon.*; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentPredicate; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.Registries; import net.minecraft.data.DataProvider; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; +import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.DoorBlock; @@ -26,23 +30,27 @@ import net.minecraft.world.level.storage.loot.entries.LootItem; import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount; import net.minecraft.world.level.storage.loot.functions.ApplyExplosionDecay; -import net.minecraft.world.level.storage.loot.functions.CopyNbtFunction; +import net.minecraft.world.level.storage.loot.functions.CopyComponentsFunction; import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction; import net.minecraft.world.level.storage.loot.predicates.*; import net.minecraft.world.level.storage.loot.providers.nbt.ContextNbtProvider; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; +import java.util.List; import java.util.Map; public class HexLootTables extends PaucalLootTableSubProvider { - public HexLootTables() { + private final HolderLookup.Provider registries; + + public HexLootTables(HolderLookup.Provider registries) { super(HexAPI.MOD_ID); + this.registries = registries; } @Override protected void makeLootTables(Map blockTables, - Map lootTables) { + Map, LootTable.Builder> lootTables) { dropSelf(blockTables, HexBlocks.IMPETUS_EMPTY, HexBlocks.IMPETUS_RIGHTCLICK, HexBlocks.IMPETUS_LOOK, HexBlocks.IMPETUS_REDSTONE, HexBlocks.EMPTY_DIRECTRIX, HexBlocks.DIRECTRIX_REDSTONE, HexBlocks.DIRECTRIX_BOOLEAN, @@ -61,17 +69,20 @@ protected void makeLootTables(Map blockTables, HexBlocks.EDIFIED_TRAPDOOR, HexBlocks.EDIFIED_STAIRS, HexBlocks.EDIFIED_FENCE, HexBlocks.EDIFIED_FENCE_GATE, HexBlocks.EDIFIED_PRESSURE_PLATE, HexBlocks.EDIFIED_BUTTON); + HolderLookup.RegistryLookup enchRegistryLookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT); + makeSlabTable(blockTables, HexBlocks.EDIFIED_SLAB); - makeLeafTable(blockTables, HexBlocks.AMETHYST_EDIFIED_LEAVES); - makeLeafTable(blockTables, HexBlocks.AVENTURINE_EDIFIED_LEAVES); - makeLeafTable(blockTables, HexBlocks.CITRINE_EDIFIED_LEAVES); + makeLeafTable(blockTables, HexBlocks.AMETHYST_EDIFIED_LEAVES, enchRegistryLookup); + makeLeafTable(blockTables, HexBlocks.AVENTURINE_EDIFIED_LEAVES, enchRegistryLookup); + makeLeafTable(blockTables, HexBlocks.CITRINE_EDIFIED_LEAVES, enchRegistryLookup); var slatePool = LootPool.lootPool() .setRolls(ConstantValue.exactly(1)) .add(LootItem.lootTableItem(HexBlocks.SLATE) - .apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY) - .copy(BlockEntitySlate.TAG_PATTERN, "BlockEntityTag." + BlockEntitySlate.TAG_PATTERN))); + .apply(CopyComponentsFunction.copyComponents(CopyComponentsFunction.Source.BLOCK_ENTITY) + .include(HexDataComponents.PATTERN) + )); blockTables.put(HexBlocks.SLATE, LootTable.lootTable().withPool(slatePool)); var doorPool = dropThisPool(HexBlocks.EDIFIED_DOOR, 1) @@ -80,10 +91,13 @@ protected void makeLootTables(Map blockTables, )); blockTables.put(HexBlocks.EDIFIED_DOOR, LootTable.lootTable().withPool(doorPool)); - var silkTouchCond = MatchTool.toolMatches( - ItemPredicate.Builder.item().hasEnchantment( - new EnchantmentPredicate(Enchantments.SILK_TOUCH, MinMaxBounds.Ints.ANY))); + ItemPredicate.Builder.item().withSubPredicate( + ItemSubPredicates.ENCHANTMENTS, + ItemEnchantmentsPredicate.enchantments( + List.of(new EnchantmentPredicate(enchRegistryLookup.getOrThrow(Enchantments.SILK_TOUCH), MinMaxBounds.Ints.atLeast(1))) + ) + )); var noSilkTouchCond = silkTouchCond.invert(); var goodAtAmethystingCond = MatchTool.toolMatches( ItemPredicate.Builder.item().of(ItemTags.CLUSTER_MAX_HARVESTABLES) @@ -92,7 +106,7 @@ protected void makeLootTables(Map blockTables, var dustPoolWhenGood = LootPool.lootPool() .add(LootItem.lootTableItem(HexItems.AMETHYST_DUST)) .apply(SetItemCountFunction.setCount(UniformGenerator.between(1, 4))) - .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)) + .apply(ApplyBonusCount.addOreBonusCount(enchRegistryLookup.getOrThrow(Enchantments.FORTUNE))) .when(noSilkTouchCond).when(goodAtAmethystingCond); var dustPoolWhenBad = LootPool.lootPool() @@ -104,7 +118,7 @@ protected void makeLootTables(Map blockTables, .add(LootItem.lootTableItem(HexItems.CHARGED_AMETHYST)) .apply(SetItemCountFunction.setCount(ConstantValue.exactly(1))) .when(noSilkTouchCond).when(goodAtAmethystingCond) - .when(BonusLevelTableCondition.bonusLevelFlatChance(Enchantments.BLOCK_FORTUNE, + .when(BonusLevelTableCondition.bonusLevelFlatChance(enchRegistryLookup.getOrThrow(Enchantments.FORTUNE), 0.25f, 0.35f, 0.5f, 0.75f, 1.0f)); var isThatAnMFingBadBrandonSandersonReference = LootPool.lootPool() @@ -113,12 +127,16 @@ protected void makeLootTables(Map blockTables, .when(noSilkTouchCond).when(goodAtAmethystingCond.invert()) .when(LootItemRandomChanceCondition.randomChance(0.125f)); + HexAPI.LOGGER.info("Doing amethyst cluster injection shit"); + lootTables.put(HexLootHandler.TABLE_INJECT_AMETHYST_CLUSTER, LootTable.lootTable() .withPool(dustPoolWhenGood) .withPool(dustPoolWhenBad) .withPool(isThatAnMFingBrandonSandersonReference) .withPool(isThatAnMFingBadBrandonSandersonReference)); + HexAPI.LOGGER.info("Quenched bugged...?"); + // it looks like loot groups are bugged? // so instead we add some and then *increment* the amount, gated behind the cond var quenchedPool = LootPool.lootPool().add(AlternativesEntry.alternatives( @@ -126,19 +144,24 @@ protected void makeLootTables(Map blockTables, LootItem.lootTableItem(HexItems.QUENCHED_SHARD) .apply(SetItemCountFunction.setCount(UniformGenerator.between(2f, 4f))) .apply(SetItemCountFunction.setCount(ConstantValue.exactly(1), true) - .when(BonusLevelTableCondition.bonusLevelFlatChance(Enchantments.BLOCK_FORTUNE, + .when(BonusLevelTableCondition.bonusLevelFlatChance(enchRegistryLookup.getOrThrow(Enchantments.FORTUNE), 0.25f, 0.5f, 0.75f, 1.0f))) )); blockTables.put(HexBlocks.QUENCHED_ALLAY, LootTable.lootTable().withPool(quenchedPool)); } - private void makeLeafTable(Map lootTables, Block block) { + private void makeLeafTable(Map lootTables, Block block, HolderLookup.RegistryLookup enchRegistryLookup) { var leafPool = dropThisPool(block, 1) .when(AnyOfCondition.anyOf( IXplatAbstractions.INSTANCE.isShearsCondition(), MatchTool.toolMatches(ItemPredicate.Builder.item() - .hasEnchantment(new EnchantmentPredicate(Enchantments.SILK_TOUCH, MinMaxBounds.Ints.atLeast(1)))) - )); + .withSubPredicate( + ItemSubPredicates.ENCHANTMENTS, + ItemEnchantmentsPredicate.enchantments( + List.of(new EnchantmentPredicate(enchRegistryLookup.getOrThrow(Enchantments.SILK_TOUCH), MinMaxBounds.Ints.atLeast(1))) + ) + ) + ))); lootTables.put(block, LootTable.lootTable().withPool(leafPool)); } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java index 828c8ad92f..3e04446993 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/HexplatRecipes.java @@ -1,6 +1,7 @@ package at.petrak.hexcasting.datagen.recipe; import at.petrak.hexcasting.api.HexAPI; +import at.petrak.hexcasting.api.advancements.HexAdvancementTriggers; import at.petrak.hexcasting.api.misc.MediaConstants; import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.blocks.decoration.BlockAkashicLog; @@ -9,40 +10,44 @@ import at.petrak.hexcasting.common.lib.HexBlocks; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.common.recipe.SealThingsRecipe; -import at.petrak.hexcasting.common.recipe.ingredient.StateIngredientHelper; +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredients; import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.EntityTypeIngredient; import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.VillagerIngredient; import at.petrak.hexcasting.datagen.HexAdvancements; import at.petrak.hexcasting.datagen.IXplatConditionsBuilder; import at.petrak.hexcasting.datagen.IXplatIngredients; import at.petrak.hexcasting.datagen.recipe.builders.BrainsweepRecipeBuilder; -import at.petrak.hexcasting.datagen.recipe.builders.CompatIngredientValue; -import at.petrak.hexcasting.datagen.recipe.builders.CreateCrushingRecipeBuilder; -import at.petrak.hexcasting.datagen.recipe.builders.FarmersDelightCuttingRecipeBuilder; -import at.petrak.paucal.api.datagen.PaucalRecipeProvider; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.advancements.critereon.InventoryChangeTrigger; +import net.minecraft.advancements.critereon.ItemPredicate; +import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.PackOutput; import net.minecraft.data.recipes.*; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.sounds.SoundEvents; import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagKey; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.npc.VillagerProfession; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.DyeItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.item.crafting.SimpleCraftingRecipeSerializer; +import net.minecraft.world.item.crafting.*; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Blocks; +import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; -import java.util.function.Consumer; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; import java.util.function.Function; +import static at.petrak.hexcasting.api.HexAPI.modLoc; + // TODO: need to do a big refactor of this class cause it's giant and unwieldy, probably as part of #360 -public class HexplatRecipes extends PaucalRecipeProvider { +public class HexplatRecipes extends RecipeProvider { private final IXplatIngredients ingredients; private final Function conditions; @@ -61,17 +66,17 @@ public class HexplatRecipes extends PaucalRecipeProvider { Map.entry(HexBlocks.STRIPPED_EDIFIED_LOG, HexBlocks.STRIPPED_EDIFIED_WOOD) ); - public HexplatRecipes(PackOutput output, IXplatIngredients ingredients, + public HexplatRecipes(PackOutput output, CompletableFuture registries, IXplatIngredients ingredients, Function conditions) { - super(output, HexAPI.MOD_ID); + super(output, registries); this.ingredients = ingredients; this.conditions = conditions; } @Override - public void buildRecipes(Consumer recipes) { - specialRecipe(recipes, SealThingsRecipe.FOCUS_SERIALIZER); - specialRecipe(recipes, SealThingsRecipe.SPELLBOOK_SERIALIZER); + public void buildRecipes(RecipeOutput recipes) { + specialRecipe(recipes, SealThingsRecipe.FOCUS_SERIALIZER, SealThingsRecipe::focus); + specialRecipe(recipes, SealThingsRecipe.SPELLBOOK_SERIALIZER, SealThingsRecipe::spellbook); staffRecipe(recipes, HexItems.STAFF_OAK, Items.OAK_PLANKS); staffRecipe(recipes, HexItems.STAFF_BIRCH, Items.BIRCH_PLANKS); @@ -142,7 +147,8 @@ public void buildRecipes(Consumer recipes) { .define('F', ingredients.goldIngot()) .define('A', HexItems.CHARGED_AMETHYST) // why in god's name does minecraft have two different places for item tags - .define('D', ItemTags.MUSIC_DISCS) + // TODO port: check if good for music discs + .define('D', ItemTags.CREEPER_DROP_MUSIC_DISCS) .pattern(" F ") .pattern("FAF") .pattern(" D ") @@ -195,11 +201,12 @@ public void buildRecipes(Consumer recipes) { gayRecipe(recipes, ItemPridePigment.Type.INTERSEX, Ingredient.of(Items.AZALEA)); gayRecipe(recipes, ItemPridePigment.Type.LESBIAN, Ingredient.of(Items.HONEYCOMB)); gayRecipe(recipes, ItemPridePigment.Type.NONBINARY, Ingredient.of(Items.MOSS_BLOCK)); - gayRecipe(recipes, ItemPridePigment.Type.PANSEXUAL, ingredients.whenModIngredient( + // TODO port: This is neither an item value nor a tag value. + /*gayRecipe(recipes, ItemPridePigment.Type.PANSEXUAL, ingredients.whenModIngredient( Ingredient.of(Items.CARROT), "farmersdelight", CompatIngredientValue.of("farmersdelight:skillet") - )); + ));*/ gayRecipe(recipes, ItemPridePigment.Type.PLURAL, Ingredient.of(Items.REPEATER)); gayRecipe(recipes, ItemPridePigment.Type.TRANSGENDER, Ingredient.of(Items.EGG)); @@ -395,7 +402,7 @@ public void buildRecipes(Consumer recipes) { .pattern("PSS") .pattern("BAB") .pattern("SSP") - .unlockedBy("enlightenment", enlightenment).save(recipes); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)).save(recipes); ShapedRecipeBuilder.shaped(RecipeCategory.REDSTONE, HexBlocks.EMPTY_DIRECTRIX) .define('C', Items.COMPARATOR) @@ -405,7 +412,7 @@ public void buildRecipes(Consumer recipes) { .pattern("CSS") .pattern("OAO") .pattern("SSC") - .unlockedBy("enlightenment", enlightenment).save(recipes); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)).save(recipes); ShapedRecipeBuilder.shaped(RecipeCategory.REDSTONE, HexBlocks.AKASHIC_BOOKSHELF) .define('L', HexTags.Items.EDIFIED_LOGS) @@ -414,7 +421,7 @@ public void buildRecipes(Consumer recipes) { /*this is the*/.pattern("LPL") // and what i have for you today is .pattern("CCC") .pattern("LPL") - .unlockedBy("enlightenment", enlightenment).save(recipes); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)).save(recipes); ShapedRecipeBuilder.shaped(RecipeCategory.REDSTONE, HexBlocks.AKASHIC_LIGATURE, 4) .define('L', HexTags.Items.EDIFIED_LOGS) @@ -425,66 +432,66 @@ public void buildRecipes(Consumer recipes) { .pattern("LPL") .pattern("123") .pattern("LPL") - .unlockedBy("enlightenment", enlightenment).save(recipes); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)).save(recipes); - new BrainsweepRecipeBuilder(StateIngredientHelper.of(Blocks.AMETHYST_BLOCK), + new BrainsweepRecipeBuilder(StateIngredients.of(Blocks.AMETHYST_BLOCK), new VillagerIngredient(null, null, 3), Blocks.BUDDING_AMETHYST.defaultBlockState(), MediaConstants.CRYSTAL_UNIT * 10) - .unlockedBy("enlightenment", enlightenment) - .save(recipes, modLoc("brainsweep/budding_amethyst")); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)) + .save(recipes, modLoc("budding_amethyst")); - new BrainsweepRecipeBuilder(StateIngredientHelper.of(HexBlocks.IMPETUS_EMPTY), + new BrainsweepRecipeBuilder(StateIngredients.of(HexBlocks.IMPETUS_EMPTY), new VillagerIngredient(VillagerProfession.TOOLSMITH, null, 2), HexBlocks.IMPETUS_RIGHTCLICK.defaultBlockState(), MediaConstants.CRYSTAL_UNIT * 10) - .unlockedBy("enlightenment", enlightenment) - .save(recipes, modLoc("brainsweep/impetus_rightclick")); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)) + .save(recipes, modLoc("impetus_rightclick")); - new BrainsweepRecipeBuilder(StateIngredientHelper.of(HexBlocks.IMPETUS_EMPTY), + new BrainsweepRecipeBuilder(StateIngredients.of(HexBlocks.IMPETUS_EMPTY), new VillagerIngredient(VillagerProfession.FLETCHER, null, 2), HexBlocks.IMPETUS_LOOK.defaultBlockState(), MediaConstants.CRYSTAL_UNIT * 10) - .unlockedBy("enlightenment", enlightenment) - .save(recipes, modLoc("brainsweep/impetus_look")); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)) + .save(recipes, modLoc("impetus_look")); - new BrainsweepRecipeBuilder(StateIngredientHelper.of(HexBlocks.IMPETUS_EMPTY), + new BrainsweepRecipeBuilder(StateIngredients.of(HexBlocks.IMPETUS_EMPTY), new VillagerIngredient(VillagerProfession.CLERIC, null, 2), HexBlocks.IMPETUS_REDSTONE.defaultBlockState(), MediaConstants.CRYSTAL_UNIT * 10) - .unlockedBy("enlightenment", enlightenment) - .save(recipes, modLoc("brainsweep/impetus_storedplayer")); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)) + .save(recipes, modLoc("impetus_storedplayer")); - new BrainsweepRecipeBuilder(StateIngredientHelper.of(HexBlocks.EMPTY_DIRECTRIX), + new BrainsweepRecipeBuilder(StateIngredients.of(HexBlocks.EMPTY_DIRECTRIX), new VillagerIngredient(VillagerProfession.MASON, null, 1), HexBlocks.DIRECTRIX_REDSTONE.defaultBlockState(), MediaConstants.CRYSTAL_UNIT * 10) - .unlockedBy("enlightenment", enlightenment) - .save(recipes, modLoc("brainsweep/directrix_redstone")); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)) + .save(recipes, modLoc("directrix_redstone")); - new BrainsweepRecipeBuilder(StateIngredientHelper.of(HexBlocks.EMPTY_DIRECTRIX), + new BrainsweepRecipeBuilder(StateIngredients.of(HexBlocks.EMPTY_DIRECTRIX), new VillagerIngredient(VillagerProfession.SHEPHERD, null, 1), HexBlocks.DIRECTRIX_BOOLEAN.defaultBlockState(), MediaConstants.CRYSTAL_UNIT * 10) - .unlockedBy("enlightenment", enlightenment) - .save(recipes, modLoc("brainsweep/directrix_boolean")); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)) + .save(recipes, modLoc("directrix_boolean")); - new BrainsweepRecipeBuilder(StateIngredientHelper.of(HexBlocks.AKASHIC_LIGATURE), + new BrainsweepRecipeBuilder(StateIngredients.of(HexBlocks.AKASHIC_LIGATURE), new VillagerIngredient(VillagerProfession.LIBRARIAN, null, 5), HexBlocks.AKASHIC_RECORD.defaultBlockState(), MediaConstants.CRYSTAL_UNIT * 10) - .unlockedBy("enlightenment", enlightenment) - .save(recipes, modLoc("brainsweep/akashic_record")); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)) + .save(recipes, modLoc("akashic_record")); // Temporary tests - new BrainsweepRecipeBuilder(StateIngredientHelper.of(Blocks.AMETHYST_BLOCK), + new BrainsweepRecipeBuilder(StateIngredients.of(Blocks.AMETHYST_BLOCK), new EntityTypeIngredient(EntityType.ALLAY), HexBlocks.QUENCHED_ALLAY.defaultBlockState(), MediaConstants.CRYSTAL_UNIT) - .unlockedBy("enlightenment", enlightenment) - .save(recipes, modLoc("brainsweep/quench_allay")); + .unlockedBy("enlightenment", new Criterion<>(HexAdvancementTriggers.OVERCAST_TRIGGER, enlightenment)) + .save(recipes, modLoc("quench_allay")); // Create compat - this.conditions.apply(new CreateCrushingRecipeBuilder() + /*this.conditions.apply(new CreateCrushingRecipeBuilder() .withInput(Blocks.AMETHYST_CLUSTER) .duration(150) .withOutput(Items.AMETHYST_SHARD, 7) .withOutput(HexItems.AMETHYST_DUST, 5) .withOutput(0.25f, HexItems.CHARGED_AMETHYST)) .whenModLoaded("create") - .save(recipes, new ResourceLocation("create", "crushing/amethyst_cluster")); + .save(recipes, ResourceLocation.fromNamespaceAndPath("create", "crushing/amethyst_cluster")); this.conditions.apply(new CreateCrushingRecipeBuilder() .withInput(Blocks.AMETHYST_BLOCK) @@ -492,7 +499,7 @@ public void buildRecipes(Consumer recipes) { .withOutput(Items.AMETHYST_SHARD, 3) .withOutput(0.5f, HexItems.AMETHYST_DUST, 4)) .whenModLoaded("create") - .save(recipes, new ResourceLocation("create", "crushing/amethyst_block")); + .save(recipes, ResourceLocation.fromNamespaceAndPath("create", "crushing/amethyst_block")); this.conditions.apply(new CreateCrushingRecipeBuilder() .withInput(Items.AMETHYST_SHARD) @@ -535,14 +542,14 @@ public void buildRecipes(Consumer recipes) { .withTool(ingredients.axeDig()) .withOutput(HexBlocks.EDIFIED_PLANKS)) .whenModLoaded("farmersdelight") - .save(recipes, modLoc("compat/farmersdelight/cutting/akashic_door")); + .save(recipes, modLoc("compat/farmersdelight/cutting/akashic_door"));*/ } - private void staffRecipe(Consumer recipes, ItemStaff staff, Item plank) { + private void staffRecipe(RecipeOutput recipes, ItemStaff staff, Item plank) { staffRecipe(recipes, staff, Ingredient.of(plank)); } - private void staffRecipe(Consumer recipes, ItemStaff staff, Ingredient plank) { + private void staffRecipe(RecipeOutput recipes, ItemStaff staff, Ingredient plank) { ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, staff) .define('W', plank) .define('S', Items.STICK) @@ -554,7 +561,7 @@ private void staffRecipe(Consumer recipes, ItemStaff staff, Ingr .save(recipes); } - private void gayRecipe(Consumer recipes, ItemPridePigment.Type type, Ingredient material) { + private void gayRecipe(RecipeOutput recipes, ItemPridePigment.Type type, Ingredient material) { var colorizer = HexItems.PRIDE_PIGMENTS.get(type); ShapedRecipeBuilder.shaped(RecipeCategory.MISC, colorizer) .define('D', HexItems.AMETHYST_DUST) @@ -566,8 +573,148 @@ private void gayRecipe(Consumer recipes, ItemPridePigment.Type t .save(recipes); } - private void specialRecipe(Consumer consumer, SimpleCraftingRecipeSerializer serializer) { + private > void specialRecipe(RecipeOutput consumer, RecipeSerializer serializer, Function recipeFunc) { var name = BuiltInRegistries.RECIPE_SERIALIZER.getKey(serializer); - SpecialRecipeBuilder.special(serializer).save(consumer, HexAPI.MOD_ID + ":dynamic" + name.getPath()); + SpecialRecipeBuilder.special(recipeFunc::apply).save(consumer, HexAPI.MOD_ID + ":dynamic" + name.getPath()); + } + + protected static Criterion hasItem(ItemLike p_125978_) { + return paucalInventoryTrigger(ItemPredicate.Builder.item().of(p_125978_).build()); + } + + protected static Criterion hasItem(TagKey p_206407_) { + return paucalInventoryTrigger(ItemPredicate.Builder.item().of(p_206407_).build()); + } + + /** + * Prefixed with {@code paucal} to avoid collisions when Forge ATs {@link RecipeProvider#inventoryTrigger}. + */ + protected static Criterion paucalInventoryTrigger(ItemPredicate... $$0) { + return new Criterion<>( + CriteriaTriggers.INVENTORY_CHANGED, + new InventoryChangeTrigger.TriggerInstance(Optional.empty(), InventoryChangeTrigger.TriggerInstance.Slots.ANY, List.of($$0)) + ); + } + + // ================================= From PAUCAL 1.20 + + protected ShapedRecipeBuilder ring(RecipeCategory category, ItemLike out, int count, Ingredient outer, @Nullable Ingredient inner) { + return ringCornered(category, out, count, outer, outer, inner); + } + + protected ShapedRecipeBuilder ring(RecipeCategory category, ItemLike out, int count, ItemLike outer, @Nullable ItemLike inner) { + return ring(category, out, count, Ingredient.of(outer), ingredientOf(inner)); + } + + protected ShapedRecipeBuilder ring(RecipeCategory category, ItemLike out, int count, TagKey outer, @Nullable TagKey inner) { + return ring(category, out, count, Ingredient.of(outer), ingredientOf(inner)); + } + + protected ShapedRecipeBuilder ringCornerless(RecipeCategory category, ItemLike out, int count, Ingredient outer, + @Nullable Ingredient inner) { + return ringCornered(category, out, count, outer, null, inner); + } + + protected ShapedRecipeBuilder ringCornerless(RecipeCategory category, ItemLike out, int count, ItemLike outer, @Nullable ItemLike inner) { + return ringCornerless(category, out, count, Ingredient.of(outer), ingredientOf(inner)); + } + + protected ShapedRecipeBuilder ringAll(RecipeCategory category, ItemLike out, int count, Ingredient outer, @Nullable Ingredient inner) { + return ringCornered(category, out, count, outer, outer, inner); + } + + protected ShapedRecipeBuilder ringAll(RecipeCategory category, ItemLike out, int count, ItemLike outer, @Nullable ItemLike inner) { + return ringAll(category, out, count, Ingredient.of(outer), ingredientOf(inner)); + } + + protected ShapedRecipeBuilder ringCornered(RecipeCategory category, ItemLike out, int count, @Nullable Ingredient cardinal, + @Nullable Ingredient diagonal, @Nullable Ingredient inner) { + if (cardinal == null && diagonal == null && inner == null) { + throw new IllegalArgumentException("at least one ingredient must be non-null"); + } + if (inner != null && cardinal == null && diagonal == null) { + throw new IllegalArgumentException("if inner is non-null, either cardinal or diagonal must not be"); + } + + var builder = ShapedRecipeBuilder.shaped(category, out, count); + var C = ' '; + if (cardinal != null) { + builder.define('C', cardinal); + C = 'C'; + } + var D = ' '; + if (diagonal != null) { + builder.define('D', diagonal); + D = 'D'; + } + var I = ' '; + if (inner != null) { + builder.define('I', inner); + I = 'I'; + } + + builder + .pattern(String.format("%c%c%c", D, C, D)) + .pattern(String.format("%c%c%c", C, I, C)) + .pattern(String.format("%c%c%c", D, C, D)); + + return builder; + } + + protected ShapedRecipeBuilder stack(RecipeCategory category, ItemLike out, int count, Ingredient top, Ingredient bottom) { + return ShapedRecipeBuilder.shaped(category, out, count) + .define('T', top) + .define('B', bottom) + .pattern("T") + .pattern("B"); + } + + protected ShapedRecipeBuilder stack(RecipeCategory category, ItemLike out, int count, ItemLike top, ItemLike bottom) { + return stack(category, out, count, Ingredient.of(top), Ingredient.of(bottom)); + } + + protected ShapedRecipeBuilder stack(RecipeCategory category, ItemLike out, int count, TagKey top, TagKey bottom) { + return stack(category, out, count, Ingredient.of(top), Ingredient.of(bottom)); + } + + + protected ShapedRecipeBuilder stick(RecipeCategory category, ItemLike out, int count, Ingredient input) { + return stack(category, out, count, input, input); + } + + protected ShapedRecipeBuilder stick(RecipeCategory category, ItemLike out, int count, ItemLike input) { + return stick(category, out, count, Ingredient.of(input)); + } + + protected ShapedRecipeBuilder stick(RecipeCategory category, ItemLike out, int count, TagKey input) { + return stick(category, out, count, Ingredient.of(input)); + } + + /** + * @param largeSize True for a 3x3, false for a 2x2 + */ + protected void packing(RecipeCategory category, ItemLike free, ItemLike compressed, String freeName, boolean largeSize, RecipeOutput recipes) { + var pack = ShapedRecipeBuilder.shaped(category, compressed) + .define('X', free); + if (largeSize) { + pack.pattern("XXX").pattern("XXX").pattern("XXX"); + } else { + pack.pattern("XX").pattern("XX"); + } + pack.unlockedBy("has_item", hasItem(free)).save(recipes, modLoc(freeName + "_packing")); + + ShapelessRecipeBuilder.shapeless(category, free, largeSize ? 9 : 4) + .requires(compressed) + .unlockedBy("has_item", hasItem(free)).save(recipes, modLoc(freeName + "_unpacking")); + } + + @Nullable + protected Ingredient ingredientOf(@Nullable ItemLike item) { + return item == null ? null : Ingredient.of(item); + } + + @Nullable + protected Ingredient ingredientOf(@Nullable TagKey item) { + return item == null ? null : Ingredient.of(item); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/BrainsweepRecipeBuilder.java b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/BrainsweepRecipeBuilder.java index 09465dfd03..d1ffa3df38 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/BrainsweepRecipeBuilder.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/BrainsweepRecipeBuilder.java @@ -1,24 +1,22 @@ package at.petrak.hexcasting.datagen.recipe.builders; -import at.petrak.hexcasting.common.recipe.HexRecipeStuffRegistry; -import at.petrak.hexcasting.common.recipe.ingredient.StateIngredient; -import at.petrak.hexcasting.common.recipe.ingredient.StateIngredientHelper; +import at.petrak.hexcasting.common.recipe.BrainsweepRecipe; +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredient; import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredient; -import com.google.gson.JsonObject; import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementRequirements; import net.minecraft.advancements.AdvancementRewards; -import net.minecraft.advancements.CriterionTriggerInstance; -import net.minecraft.advancements.RequirementsStrategy; +import net.minecraft.advancements.Criterion; import net.minecraft.advancements.critereon.RecipeUnlockedTrigger; -import net.minecraft.data.recipes.FinishedRecipe; import net.minecraft.data.recipes.RecipeBuilder; +import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; -import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; -import java.util.function.Consumer; +import java.util.LinkedHashMap; +import java.util.Map; public class BrainsweepRecipeBuilder implements RecipeBuilder { private final StateIngredient blockIn; @@ -26,7 +24,7 @@ public class BrainsweepRecipeBuilder implements RecipeBuilder { private final long mediaCost; private final BlockState result; - private final Advancement.Builder advancement; + private final Map> criteria = new LinkedHashMap<>(); public BrainsweepRecipeBuilder(StateIngredient blockIn, BrainsweepeeIngredient entityIn, BlockState result, long mediaCost) { @@ -34,12 +32,11 @@ public BrainsweepRecipeBuilder(StateIngredient blockIn, BrainsweepeeIngredient e this.entityIn = entityIn; this.result = result; this.mediaCost = mediaCost; - this.advancement = Advancement.Builder.advancement(); } @Override - public RecipeBuilder unlockedBy(String pCriterionName, CriterionTriggerInstance pCriterionTrigger) { - this.advancement.addCriterion(pCriterionName, pCriterionTrigger); + public RecipeBuilder unlockedBy(String pCriterionName, Criterion pCriterionTrigger) { + criteria.put(pCriterionName, pCriterionTrigger); return this; } @@ -54,53 +51,14 @@ public Item getResult() { } @Override - public void save(Consumer pFinishedRecipeConsumer, ResourceLocation pRecipeId) { - if (this.advancement.getCriteria().isEmpty()) { - throw new IllegalStateException("No way of obtaining recipe " + pRecipeId); - } + public void save(RecipeOutput recipeOutput, ResourceLocation id) { + Advancement.Builder advancement = recipeOutput.advancement() + .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(id)) + .rewards(AdvancementRewards.Builder.recipe(id)) + .requirements(AdvancementRequirements.Strategy.OR); + this.criteria.forEach(advancement::addCriterion); - this.advancement.parent(new ResourceLocation("recipes/root")) - .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(pRecipeId)) - .rewards(AdvancementRewards.Builder.recipe(pRecipeId)) - .requirements(RequirementsStrategy.OR); - pFinishedRecipeConsumer.accept(new Result( - pRecipeId, - this.blockIn, this.entityIn, this.mediaCost, this.result, - this.advancement, - new ResourceLocation(pRecipeId.getNamespace(), "recipes/brainsweep/" + pRecipeId.getPath()))); - } - - public record Result(ResourceLocation id, StateIngredient blockIn, BrainsweepeeIngredient villagerIn, - long mediaCost, BlockState result, Advancement.Builder advancement, - ResourceLocation advancementId) implements FinishedRecipe { - @Override - public void serializeRecipeData(JsonObject json) { - json.add("blockIn", this.blockIn.serialize()); - json.add("entityIn", this.villagerIn.serialize()); - json.addProperty("cost", this.mediaCost); - json.add("result", StateIngredientHelper.serializeBlockState(this.result)); - } - - @Override - public ResourceLocation getId() { - return this.id; - } - - @Override - public RecipeSerializer getType() { - return HexRecipeStuffRegistry.BRAINSWEEP; - } - - @Nullable - @Override - public JsonObject serializeAdvancement() { - return this.advancement.serializeToJson(); - } - - @Nullable - @Override - public ResourceLocation getAdvancementId() { - return this.advancementId; - } + var recipe = new BrainsweepRecipe(blockIn, entityIn, mediaCost, result); + recipeOutput.accept(id.withPrefix("brainsweep/"), recipe, advancement.build(id.withPrefix("recipes/brainsweep/"))); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/CreateCrushingRecipeBuilder.java b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/CreateCrushingRecipeBuilder.java index 77743d9a31..ed66b649cd 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/CreateCrushingRecipeBuilder.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/CreateCrushingRecipeBuilder.java @@ -2,9 +2,9 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import net.minecraft.advancements.CriterionTriggerInstance; -import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.advancements.Criterion; import net.minecraft.data.recipes.RecipeBuilder; +import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -31,7 +31,7 @@ public class CreateCrushingRecipeBuilder implements RecipeBuilder { private int processingTime = 100; @Override - public @NotNull CreateCrushingRecipeBuilder unlockedBy(@NotNull String name, @NotNull CriterionTriggerInstance trigger) { + public RecipeBuilder unlockedBy(String name, Criterion criterion) { return this; } @@ -76,7 +76,7 @@ public CreateCrushingRecipeBuilder withOutput(float chance, ItemLike output, int } public CreateCrushingRecipeBuilder withOutput(ItemStack output, float chance) { - this.results.add(new ItemProcessingOutput(output, chance)); + //this.results.add(new ItemProcessingOutput(output, chance)); return this; } @@ -93,7 +93,7 @@ public CreateCrushingRecipeBuilder withOutput(float chance, String name) { } public CreateCrushingRecipeBuilder withOutput(float chance, String name, int count) { - this.results.add(new CompatProcessingOutput(name, count, chance)); + //this.results.add(new CompatProcessingOutput(name, count, chance)); return this; } @@ -103,61 +103,7 @@ public CreateCrushingRecipeBuilder withOutput(float chance, String name, int cou } @Override - public void save(@NotNull Consumer consumer, @NotNull ResourceLocation resourceLocation) { - consumer.accept(new CrushingRecipe(resourceLocation)); - } - - public class CrushingRecipe implements FinishedRecipe { - - private final ResourceLocation id; - - public CrushingRecipe(ResourceLocation id) { - this.id = id; - } - - @Override - public void serializeRecipeData(@NotNull JsonObject json) { - json.addProperty("type", "create:crushing"); - - if (!group.isEmpty()) { - json.addProperty("group", group); - } - - JsonArray jsonIngredients = new JsonArray(); - JsonArray jsonOutputs = new JsonArray(); - - jsonIngredients.add(input.toJson()); + public void save(RecipeOutput recipeOutput, ResourceLocation id) { - results.forEach(o -> jsonOutputs.add(o.serialize())); - - json.add("ingredients", jsonIngredients); - json.add("results", jsonOutputs); - - int processingDuration = processingTime; - if (processingDuration > 0) { - json.addProperty("processingTime", processingDuration); - } - } - - @Override - public @NotNull ResourceLocation getId() { - return id; - } - - @Override - public @NotNull RecipeSerializer getType() { - return RecipeSerializer.SHAPELESS_RECIPE; // Irrelevant, we implement serialization ourselves - } - - @Override - public JsonObject serializeAdvancement() { - return null; - } - - @Override - public ResourceLocation getAdvancementId() { - return null; - } } - } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/FarmersDelightCuttingRecipeBuilder.java b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/FarmersDelightCuttingRecipeBuilder.java index 8fbc4e7be1..a5daeb205e 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/FarmersDelightCuttingRecipeBuilder.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/FarmersDelightCuttingRecipeBuilder.java @@ -3,11 +3,12 @@ import com.google.common.collect.Lists; import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import net.minecraft.advancements.Criterion; import net.minecraft.advancements.CriterionTriggerInstance; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.data.recipes.FinishedRecipe; import net.minecraft.data.recipes.RecipeBuilder; +import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.item.Item; @@ -30,7 +31,7 @@ public class FarmersDelightCuttingRecipeBuilder implements RecipeBuilder { private SoundEvent sound; @Override - public FarmersDelightCuttingRecipeBuilder unlockedBy(String s, CriterionTriggerInstance criterionTriggerInstance) { + public FarmersDelightCuttingRecipeBuilder unlockedBy(String s, Criterion criterionTriggerInstance) { return this; } @@ -75,7 +76,7 @@ public FarmersDelightCuttingRecipeBuilder withOutput(float chance, ItemLike outp } public FarmersDelightCuttingRecipeBuilder withOutput(ItemStack output, float chance) { - this.outputs.add(new ItemProcessingOutput(output, chance)); + //this.outputs.add(new ItemProcessingOutput(output, chance)); return this; } @@ -107,60 +108,7 @@ public FarmersDelightCuttingRecipeBuilder withSound(SoundEvent sound) { } @Override - public void save(Consumer consumer, ResourceLocation resourceLocation) { - consumer.accept(new CuttingRecipe(resourceLocation)); - } - - public class CuttingRecipe implements FinishedRecipe { - - private final ResourceLocation id; - - public CuttingRecipe(ResourceLocation id) { - this.id = id; - } - - @Override - public void serializeRecipeData(@NotNull JsonObject json) { - json.addProperty("type", "farmersdelight:cutting"); - - if (!group.isEmpty()) { - json.addProperty("group", group); - } - - JsonArray jsonIngredients = new JsonArray(); - JsonArray jsonOutputs = new JsonArray(); - - jsonIngredients.add(input.toJson()); - - outputs.forEach(o -> jsonOutputs.add(o.serialize())); - - json.add("ingredients", jsonIngredients); - json.add("tool", toolAction.serialize()); - json.add("result", jsonOutputs); - - if (sound != null) { - json.addProperty("sound", BuiltInRegistries.SOUND_EVENT.getKey(sound).toString()); - } - } - - @Override - public @NotNull ResourceLocation getId() { - return id; - } - - @Override - public @NotNull RecipeSerializer getType() { - return RecipeSerializer.SHAPELESS_RECIPE; // Irrelevant, we implement serialization ourselves - } - - @Override - public JsonObject serializeAdvancement() { - return null; - } + public void save(RecipeOutput recipeOutput, ResourceLocation id) { - @Override - public ResourceLocation getAdvancementId() { - return null; - } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/ItemProcessingOutput.java b/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/ItemProcessingOutput.java deleted file mode 100644 index 245c3d607b..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/recipe/builders/ItemProcessingOutput.java +++ /dev/null @@ -1,28 +0,0 @@ -package at.petrak.hexcasting.datagen.recipe.builders; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; - -public record ItemProcessingOutput(ItemStack stack, float chance) implements ProcessingOutput { - @Override - public JsonObject serialize() { - JsonObject json = new JsonObject(); - ResourceLocation resourceLocation = BuiltInRegistries.ITEM.getKey(stack.getItem()); - json.addProperty("item", resourceLocation.toString()); - int count = stack.getCount(); - if (count != 1) { - json.addProperty("count", count); - } - if (stack.hasTag()) { - json.add("nbt", JsonParser.parseString(stack.getTag().toString())); - } - if (chance != 1) { - json.addProperty("chance", chance); - } - return json; - } -} diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexActionTagProvider.java b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexActionTagProvider.java index 4b083c5731..e3ef8bc1a1 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexActionTagProvider.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexActionTagProvider.java @@ -43,7 +43,7 @@ private static TagKey ersatzActionTag(TagKeycreateRegistryKey( - new ResourceLocation("foobar", "hexcasting/tags/action")); + ResourceLocation.fromNamespaceAndPath("foobar", "hexcasting/tags/action")); return TagKey.create(fakeKey, real.location()); } else { return real; diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java index c354a0464e..c826a0efd4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java @@ -1,13 +1,14 @@ package at.petrak.hexcasting.datagen.tag; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.lib.HexBlocks; import at.petrak.hexcasting.xplat.IXplatTags; -import at.petrak.paucal.api.datagen.PaucalBlockTagProvider; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.TagsProvider; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.tags.TagKey; @@ -16,12 +17,11 @@ import java.util.concurrent.CompletableFuture; -public class HexBlockTagProvider extends PaucalBlockTagProvider { +public class HexBlockTagProvider extends TagsProvider { public final IXplatTags xtags; - public HexBlockTagProvider(PackOutput output, CompletableFuture lookupProvider, - IXplatTags xtags) { - super(output, lookupProvider); + public HexBlockTagProvider(PackOutput output, CompletableFuture lookupProvider, IXplatTags xtags) { + super(output, Registries.BLOCK, lookupProvider); this.xtags = xtags; } @@ -134,11 +134,11 @@ protected void addTags(HolderLookup.Provider provider) { HexBlocks.CONJURED_BLOCK, HexBlocks.CONJURED_LIGHT); // this is a hack but fixes #532 - var createBrittle = TagKey.create(Registries.BLOCK, new ResourceLocation("create", "brittle")); + var createBrittle = TagKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath("create", "brittle")); tag(createBrittle).addOptionalTag(BuiltInRegistries.BLOCK.getKey(HexBlocks.SLATE)); } - void add(TagAppender appender, Block... blocks) { + void add(TagsProvider.TagAppender appender, Block... blocks) { for (Block block : blocks) { appender.add(BuiltInRegistries.BLOCK.getResourceKey(block).orElseThrow()); } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexItemTagProvider.java b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexItemTagProvider.java index 520df8a48c..dfc4488854 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexItemTagProvider.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexItemTagProvider.java @@ -4,12 +4,13 @@ import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.xplat.IXplatTags; -import at.petrak.paucal.api.datagen.PaucalItemTagProvider; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.DataGenerator; import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.ItemTagsProvider; import net.minecraft.data.tags.TagsProvider; +import net.minecraft.data.tags.VanillaItemTagsProvider; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.world.item.Item; @@ -18,16 +19,14 @@ import java.util.concurrent.CompletableFuture; -public class HexItemTagProvider extends PaucalItemTagProvider { +public class HexItemTagProvider extends ItemTagsProvider { private final IXplatTags xtags; - public HexItemTagProvider(PackOutput output, CompletableFuture lookup, TagsProvider pBlockTagsProvider, IXplatTags xtags) { - super(output, lookup, HexAPI.MOD_ID, pBlockTagsProvider); + public HexItemTagProvider(PackOutput output, CompletableFuture lookup, CompletableFuture> pBlockTagsProvider, IXplatTags xtags) { + super(output, lookup, pBlockTagsProvider); this.xtags = xtags; } - - @Override protected void addTags(HolderLookup.Provider provider) { add(tag(xtags.gems()), diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/HexInterop.java b/Common/src/main/java/at/petrak/hexcasting/interop/HexInterop.java index 6ecbc2d40f..f0c878373b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/HexInterop.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/HexInterop.java @@ -20,7 +20,7 @@ public static final class Forge { } public static final class Fabric { - public static final String TRINKETS_API_ID = "trinkets"; + public static final String ACCESSORIES_API_ID = "accessories"; } public static void init() { diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/inline/InlinePatternData.java b/Common/src/main/java/at/petrak/hexcasting/interop/inline/InlinePatternData.java index 5dc2dba2ff..f8d4f7c425 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/inline/InlinePatternData.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/inline/InlinePatternData.java @@ -9,6 +9,7 @@ import com.mojang.serialization.Codec; import com.samsthenerd.inline.api.InlineData; import net.minecraft.ChatFormatting; +import net.minecraft.core.component.DataComponents; import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.HoverEvent; @@ -42,7 +43,7 @@ public ResourceLocation getRendererId(){ public Style getExtraStyle() { ItemStack scrollStack = new ItemStack(HexItems.SCROLL_MEDIUM); HexItems.SCROLL_MEDIUM.writeDatum(scrollStack, new PatternIota(pattern)); - scrollStack.setHoverName(getPatternName(pattern).copy().withStyle(ChatFormatting.WHITE)); + scrollStack.set(DataComponents.ITEM_NAME, getPatternName(pattern).copy().withStyle(ChatFormatting.WHITE)); HoverEvent he = new HoverEvent(HoverEvent.Action.SHOW_ITEM, new HoverEvent.ItemStackInfo(scrollStack)); ClickEvent ce = new ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, pattern.toString()); return Style.EMPTY.withHoverEvent(he).withClickEvent(ce); @@ -70,7 +71,7 @@ public Component asText(boolean withExtra) { } public static class InlinePatternDataType implements InlineDataType { - private static final ResourceLocation ID = new ResourceLocation(HexAPI.MOD_ID, "pattern"); + private static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(HexAPI.MOD_ID, "pattern"); public static final InlinePatternDataType INSTANCE = new InlinePatternDataType(); @Override diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/inline/InlinePatternRenderer.java b/Common/src/main/java/at/petrak/hexcasting/interop/inline/InlinePatternRenderer.java index eb7b798487..33372c62d8 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/inline/InlinePatternRenderer.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/inline/InlinePatternRenderer.java @@ -5,6 +5,7 @@ import com.samsthenerd.inline.api.client.InlineRenderer; import com.samsthenerd.inline.impl.InlineStyle; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.renderer.LightTexture; import net.minecraft.network.chat.Style; import net.minecraft.resources.ResourceLocation; @@ -61,7 +62,8 @@ public int render(InlinePatternData data, GuiGraphics drawContext, int index, St drawContext.pose().pushPose(); drawContext.pose().translate(isGlowy ? -1f : 0, isGlowy ? -1.5f : -0.5f, 0f); int color = trContext.usableColor(); - PatternRenderer.renderPattern(data.pattern, drawContext.pose(), new PatternRenderer.WorldlyBits(drawContext.bufferSource(), trContext.light(), null), + boolean isFlat = InlineRenderer.isFlat(drawContext.pose(), trContext.layerType()); + PatternRenderer.renderPattern(data.pattern, drawContext.pose(), !isFlat ? new PatternRenderer.WorldlyBits(drawContext.bufferSource(), LightTexture.FULL_BRIGHT, null) : null, isGlowy ? INLINE_SETTINGS_GLOWY : INLINE_SETTINGS, isGlowy ? new PatternColors(color, 0xFF_000000 | glowyParentColor) : PatternColors.singleStroke(color), 0, INLINE_TEXTURE_RES); diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/AbstractPatternComponent.java b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/AbstractPatternComponent.java index 997bb09411..531bb2a85e 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/AbstractPatternComponent.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/AbstractPatternComponent.java @@ -6,6 +6,7 @@ import at.petrak.hexcasting.client.render.PatternSettings; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.core.HolderLookup; import vazkii.patchouli.api.IComponentRenderContext; import vazkii.patchouli.api.ICustomComponent; import vazkii.patchouli.api.IVariable; @@ -77,7 +78,7 @@ public void render(GuiGraphics graphics, IComponentRenderContext context, float } @Override - public void onVariablesAvailable(UnaryOperator lookup) { + public void onVariablesAvailable(UnaryOperator lookup, HolderLookup.RegistryLookup.Provider registries) { this.patterns = this.getPatterns(lookup); } diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/BrainsweepProcessor.java b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/BrainsweepProcessor.java index 576e82bb42..98ced2a109 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/BrainsweepProcessor.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/BrainsweepProcessor.java @@ -26,13 +26,13 @@ public class BrainsweepProcessor implements IComponentProcessor { @Override public void setup(Level level, IVariableProvider vars) { - var id = new ResourceLocation(vars.get("recipe").asString()); + var id = ResourceLocation.parse(vars.get("recipe", level.registryAccess()).asString()); var recman = level.getRecipeManager(); var brainsweepings = recman.getAllRecipesFor(HexRecipeStuffRegistry.BRAINSWEEP_TYPE); for (var poisonApples : brainsweepings) { - if (poisonApples.getId().equals(id)) { - this.recipe = poisonApples; + if (poisonApples.id().equals(id)) { + this.recipe = poisonApples.value(); break; } } @@ -46,14 +46,14 @@ public IVariable process(Level level, String key) { switch (key) { case "header" -> { - return IVariable.from(this.recipe.result().getBlock().getName()); + return IVariable.from(this.recipe.result().getBlock().getName(), level.registryAccess()); } case "input" -> { var inputStacks = this.recipe.blockIn().getDisplayedStacks(); - return IVariable.from(inputStacks.toArray(new ItemStack[0])); + return IVariable.from(inputStacks.toArray(new ItemStack[0]), level.registryAccess()); } case "result" -> { - return IVariable.from(new ItemStack(this.recipe.result().getBlock())); + return IVariable.from(new ItemStack(this.recipe.result().getBlock()), level.registryAccess()); } case "entity" -> { @@ -79,8 +79,8 @@ public IVariable process(Level level, String key) { return IVariable.wrapList(this.recipe.entityIn() .getTooltip(mc.options.advancedItemTooltips) .stream() - .map(IVariable::from) - .toList()); + .map(v -> IVariable.from(v, level.registryAccess())) + .toList(), level.registryAccess()); } case "mediaCost" -> { record ItemCost(Item item, int cost) { @@ -98,14 +98,14 @@ public boolean dividesEvenly (int dividend) { List validItemStacks = Arrays.stream(costs) .filter(itemCost -> itemCost.dividesEvenly((int)this.recipe.mediaCost())) .map(validItemCost -> new ItemStack(validItemCost.item, (int) this.recipe.mediaCost() / validItemCost.cost)) - .map(IVariable::from) + .map(v -> IVariable.from(v, level.registryAccess())) .toList(); if (!validItemStacks.isEmpty()) { - return IVariable.wrapList(validItemStacks); + return IVariable.wrapList(validItemStacks, level.registryAccess()); } // fallback: display in terms of dust - return IVariable.from(new ItemStack(HexItems.AMETHYST_DUST, (int) (this.recipe.mediaCost() / MediaConstants.DUST_UNIT))); + return IVariable.from(new ItemStack(HexItems.AMETHYST_DUST, (int) (this.recipe.mediaCost() / MediaConstants.DUST_UNIT)), level.registryAccess()); } default -> { return null; diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/CustomComponentTooltip.java b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/CustomComponentTooltip.java index 13972ce372..37e02355f0 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/CustomComponentTooltip.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/CustomComponentTooltip.java @@ -3,6 +3,7 @@ import com.google.gson.annotations.SerializedName; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.core.HolderLookup; import net.minecraft.network.chat.Component; import vazkii.patchouli.api.IComponentRenderContext; import vazkii.patchouli.api.ICustomComponent; @@ -19,6 +20,7 @@ public class CustomComponentTooltip implements ICustomComponent { IVariable tooltipReference; transient IVariable tooltipVar; + transient HolderLookup.Provider registries; transient List tooltip; transient int x, y; @@ -28,7 +30,7 @@ public void build(int componentX, int componentY, int pageNum) { x = componentX; y = componentY; tooltip = new ArrayList<>(); - for (IVariable s : tooltipVar.asListOrSingleton()) { + for (IVariable s : tooltipVar.asListOrSingleton(registries)) { tooltip.add(s.as(Component.class)); } } @@ -41,7 +43,8 @@ public void render(GuiGraphics graphics, IComponentRenderContext context, float } @Override - public void onVariablesAvailable(UnaryOperator lookup) { + public void onVariablesAvailable(UnaryOperator lookup, HolderLookup.Provider registries) { tooltipVar = lookup.apply(tooltipReference); + this.registries = registries; } } diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/LookupPatternComponent.java b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/LookupPatternComponent.java index 632c7abf79..9692f573dc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/LookupPatternComponent.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/LookupPatternComponent.java @@ -4,6 +4,7 @@ import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.xplat.IXplatAbstractions; import com.google.gson.annotations.SerializedName; +import net.minecraft.core.HolderLookup; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import vazkii.patchouli.api.IVariable; @@ -37,10 +38,10 @@ public boolean showStrokeOrder() { } @Override - public void onVariablesAvailable(UnaryOperator lookup) { + public void onVariablesAvailable(UnaryOperator lookup, HolderLookup.Provider registries) { var opName = lookup.apply(IVariable.wrap(this.opNameRaw)).asString(); this.opName = ResourceLocation.tryParse(opName); - super.onVariablesAvailable(lookup); + super.onVariablesAvailable(lookup, registries); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/ManualPatternComponent.java b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/ManualPatternComponent.java index 06f77903ba..768bc855fd 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/ManualPatternComponent.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/ManualPatternComponent.java @@ -5,6 +5,7 @@ import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.annotations.SerializedName; +import net.minecraft.core.HolderLookup; import vazkii.patchouli.api.IVariable; import java.util.ArrayList; @@ -21,11 +22,12 @@ public class ManualPatternComponent extends AbstractPatternComponent { public String strokeOrderRaw; protected transient boolean strokeOrder; + private transient HolderLookup.RegistryLookup.Provider registries; @Override public List getPatterns(UnaryOperator lookup) { this.strokeOrder = lookup.apply(IVariable.wrap(this.strokeOrderRaw)).asBoolean(true); - var patsRaw = lookup.apply(IVariable.wrap(patternsRaw)).asListOrSingleton(); + var patsRaw = lookup.apply(IVariable.wrap(patternsRaw)).asListOrSingleton(registries); var out = new ArrayList(); for (var ivar : patsRaw) { @@ -46,9 +48,10 @@ public boolean showStrokeOrder() { } @Override - public void onVariablesAvailable(UnaryOperator lookup) { + public void onVariablesAvailable(UnaryOperator lookup, HolderLookup.RegistryLookup.Provider registries) { this.strokeOrder = IVariable.wrap(this.strokeOrderRaw).asBoolean(true); + this.registries = registries; - super.onVariablesAvailable(lookup); + super.onVariablesAvailable(lookup, registries); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/MultiCraftingProcessor.java b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/MultiCraftingProcessor.java index 055128b7a5..8311181fe6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/MultiCraftingProcessor.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/MultiCraftingProcessor.java @@ -16,6 +16,8 @@ import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.item.crafting.ShapedRecipe; import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import vazkii.patchouli.api.IComponentProcessor; import vazkii.patchouli.api.IVariable; import vazkii.patchouli.api.IVariableProvider; @@ -32,10 +34,10 @@ public class MultiCraftingProcessor implements IComponentProcessor { @Override public void setup(Level level, IVariableProvider vars) { - List names = vars.get("recipes").asStream().map(IVariable::asString).collect(Collectors.toList()); + List names = vars.get("recipes", level.registryAccess()).asStream(level.registryAccess()).map(IVariable::asString).toList(); this.recipes = new ArrayList<>(); for (String name : names) { - CraftingRecipe recipe = PatchouliUtils.getRecipe(RecipeType.CRAFTING, new ResourceLocation(name)); + CraftingRecipe recipe = PatchouliUtils.getRecipe(RecipeType.CRAFTING, ResourceLocation.parse(name)); if (recipe != null) { recipes.add(recipe); if (shapeless) { @@ -55,13 +57,13 @@ public void setup(Level level, IVariableProvider vars) { } @Override - public IVariable process(Level level, String key) { + public @Nullable IVariable process(Level level, String key) { if (recipes.isEmpty()) { return null; } if (key.equals("heading")) { if (!hasCustomHeading) { - return IVariable.from(recipes.get(0).getResultItem(level.registryAccess()).getHoverName()); + return IVariable.from(recipes.getFirst().getResultItem(level.registryAccess()).getHoverName(), level.registryAccess()); } return null; } @@ -85,14 +87,17 @@ public IVariable process(Level level, String key) { ingredients.add(list.size() > index ? list.get(index) : Ingredient.EMPTY); } } - return PatchouliUtils.interweaveIngredients(ingredients, longestIngredientSize); + return PatchouliUtils.interweaveIngredients(ingredients, longestIngredientSize, level.registryAccess()); } if (key.equals("output")) { return IVariable.wrapList( - recipes.stream().map(recipe -> recipe.getResultItem(level.registryAccess())).map(IVariable::from).collect(Collectors.toList())); + recipes.stream() + .map(recipe -> recipe.getResultItem(level.registryAccess())) + .map(v -> IVariable.from(v, level.registryAccess())) + .collect(Collectors.toList()), level.registryAccess()); } if (key.equals("shapeless")) { - return IVariable.wrap(shapeless); + return IVariable.wrap(shapeless, level.registryAccess()); } return null; } diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/PatchouliUtils.java b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/PatchouliUtils.java index 574b296e1b..e149dd62c9 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/PatchouliUtils.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/PatchouliUtils.java @@ -1,12 +1,10 @@ package at.petrak.hexcasting.interop.patchouli; import net.minecraft.client.Minecraft; +import net.minecraft.core.HolderLookup; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.Container; 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.RecipeType; +import net.minecraft.world.item.crafting.*; import vazkii.patchouli.api.IVariable; import java.util.ArrayList; @@ -22,13 +20,15 @@ */ public class PatchouliUtils { @SuppressWarnings("unchecked") - public static , C extends Container> T getRecipe(RecipeType type, ResourceLocation id) { + public static , I extends RecipeInput> T getRecipe(RecipeType type, ResourceLocation id) { // PageDoubleRecipeRegistry if (Minecraft.getInstance().level == null) { return null; } else { var manager = Minecraft.getInstance().level.getRecipeManager(); + return (T) manager.byKey(id) + .map(RecipeHolder::value) .filter((recipe) -> recipe.getType() == type).orElse(null); } } @@ -42,10 +42,11 @@ public static , C extends Container> T getRecipe(RecipeType< * @param longestIngredientSize Longest ingredient in the entire recipe * @return Serialized Patchouli ingredient string */ - public static IVariable interweaveIngredients(List ingredients, int longestIngredientSize) { + public static IVariable interweaveIngredients(List ingredients, int longestIngredientSize, HolderLookup.RegistryLookup.Provider registries) { if (ingredients.size() == 1) { - return IVariable.wrapList(Arrays.stream(ingredients.get(0).getItems()).map(IVariable::from).collect( - Collectors.toList())); + return IVariable.wrapList(Arrays.stream(ingredients.get(0).getItems()) + .map(v -> IVariable.from(v, registries)) + .collect(Collectors.toList()), registries); } ItemStack[] empty = {ItemStack.EMPTY}; @@ -60,17 +61,18 @@ public static IVariable interweaveIngredients(List ingredients, int List list = new ArrayList<>(stacks.size() * longestIngredientSize); for (int i = 0; i < longestIngredientSize; i++) { for (ItemStack[] stack : stacks) { - list.add(IVariable.from(stack[i % stack.length])); + list.add(IVariable.from(stack[i % stack.length], registries)); } } - return IVariable.wrapList(list); + return IVariable.wrapList(list, registries); } /** * Overload of the method above that uses the provided list's longest ingredient size. */ - public static IVariable interweaveIngredients(List ingredients) { + public static IVariable interweaveIngredients(List ingredients, HolderLookup.RegistryLookup.Provider registries) { return interweaveIngredients(ingredients, - ingredients.stream().mapToInt(ingr -> ingr.getItems().length).max().orElse(1)); + ingredients.stream().mapToInt(ingr -> ingr.getItems().length).max().orElse(1), registries + ); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/PatternProcessor.java b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/PatternProcessor.java index 94e9e258b8..3c474040fc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/PatternProcessor.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/PatternProcessor.java @@ -12,9 +12,9 @@ public class PatternProcessor implements IComponentProcessor { @Override public void setup(Level level, IVariableProvider vars) { if (vars.has("header")) - translationKey = vars.get("header").asString(); + translationKey = vars.get("header", level.registryAccess()).asString(); else { - IVariable key = vars.get("op_id"); + IVariable key = vars.get("op_id", level.registryAccess()); String opName = key.asString(); String prefix = "hexcasting.action."; @@ -26,7 +26,7 @@ public void setup(Level level, IVariableProvider vars) { @Override public IVariable process(Level level, String key) { if (key.equals("translation_key")) { - return IVariable.wrap(translationKey); + return IVariable.wrap(translationKey, level.registryAccess()); } return null; diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/pehkui/OpGetScale.kt b/Common/src/main/java/at/petrak/hexcasting/interop/pehkui/OpGetScale.kt index d1a9868c51..83f9e9de20 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/pehkui/OpGetScale.kt +++ b/Common/src/main/java/at/petrak/hexcasting/interop/pehkui/OpGetScale.kt @@ -11,7 +11,7 @@ object OpGetScale : ConstMediaAction { override val argc = 1 override fun execute(args: List, env: CastingEnvironment): List { - val target = args.getEntity(0, argc) + val target = args.getEntity(env.world, 0, argc) env.assertEntityInRange(target) return IXplatAbstractions.INSTANCE.pehkuiApi.getScale(target).toDouble().asActionResult } diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/pehkui/OpSetScale.kt b/Common/src/main/java/at/petrak/hexcasting/interop/pehkui/OpSetScale.kt index 9c171c5784..80883870ac 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/pehkui/OpSetScale.kt +++ b/Common/src/main/java/at/petrak/hexcasting/interop/pehkui/OpSetScale.kt @@ -17,7 +17,7 @@ object OpSetScale : SpellAction { args: List, env: CastingEnvironment ): SpellAction.Result { - val target = args.getEntity(0, argc) + val target = args.getEntity(env.world, 0, argc) val scale = args.getDoubleBetween(1, 1.0 / 32.0, 8.0, argc) env.assertEntityInRange(target) diff --git a/Common/src/main/java/at/petrak/hexcasting/mixin/MixinWanderingTrader.java b/Common/src/main/java/at/petrak/hexcasting/mixin/MixinWanderingTrader.java new file mode 100644 index 0000000000..f8172dc5b2 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/mixin/MixinWanderingTrader.java @@ -0,0 +1,40 @@ +package at.petrak.hexcasting.mixin; + +import at.petrak.hexcasting.common.lib.HexDataComponents; +import net.minecraft.util.Unit; +import net.minecraft.world.entity.npc.WanderingTrader; +import net.minecraft.world.item.trading.ItemCost; +import net.minecraft.world.item.trading.MerchantOffers; +import net.minecraft.world.item.trading.MerchantOffer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.util.RandomSource; +import net.minecraft.server.MinecraftServer; +import at.petrak.hexcasting.api.mod.HexConfig; +import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexItems; +import at.petrak.hexcasting.common.loot.AddPerWorldPatternToScrollFunc; +import at.petrak.hexcasting.common.items.storage.ItemScroll; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +// Adds ancient scrolls to the wandering trader by replacing the special trade in the last slot +@Mixin(WanderingTrader.class) +public class MixinWanderingTrader { + @Inject(method = "updateTrades", at = @At("RETURN")) + private void addNewTrades(CallbackInfo ci) { + var self = (WanderingTrader) (Object) this; + MerchantOffers offerList = self.getOffers(); + if (offerList == null) + return; + RandomSource rand = self.getRandom(); + if (rand.nextFloat() < HexConfig.server().traderScrollChance() && self.getServer() != null) { + ItemStack scroll = new ItemStack(HexItems.SCROLL_LARGE); + AddPerWorldPatternToScrollFunc.doStatic(scroll, rand, self.getServer().overworld()); + scroll.set(HexDataComponents.NEEDS_PURCHASE, Unit.INSTANCE); + offerList.set(5, new MerchantOffer(new ItemCost(Items.EMERALD, 12), scroll, 1, 1, 1)); + } + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorDamageSource.java b/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorDamageSource.java deleted file mode 100644 index bf64c438fc..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorDamageSource.java +++ /dev/null @@ -1,17 +0,0 @@ -package at.petrak.hexcasting.mixin.accessor; - -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.damagesource.DamageSources; -import net.minecraft.world.damagesource.DamageType; -import net.minecraft.world.entity.Entity; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(DamageSources.class) -public interface AccessorDamageSource { - @Invoker("source") - @Nullable - DamageSource hex$source(ResourceKey key, @Nullable Entity entity); -} diff --git a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorLootTable.java b/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorLootTable.java index d2be3c734d..b5661c8e97 100644 --- a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorLootTable.java +++ b/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorLootTable.java @@ -8,16 +8,17 @@ import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.gen.Accessor; +import java.util.List; import java.util.function.BiFunction; @Mixin(LootTable.class) public interface AccessorLootTable { @Accessor("functions") - LootItemFunction[] hex$getFunctions(); + List hex$getFunctions(); @Accessor("functions") @Mutable - void hex$setFunctions(LootItemFunction[] lifs); + void hex$setFunctions(List lifs); @Accessor("compositeFunction") @Mutable diff --git a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorPotionBrewing.java b/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorPotionBrewing.java deleted file mode 100644 index 88fe176a12..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/AccessorPotionBrewing.java +++ /dev/null @@ -1,14 +0,0 @@ -package at.petrak.hexcasting.mixin.accessor; - -import net.minecraft.world.item.Item; -import net.minecraft.world.item.alchemy.Potion; -import net.minecraft.world.item.alchemy.PotionBrewing; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(PotionBrewing.class) -public interface AccessorPotionBrewing { - @Invoker("addMix") - static void addMix(Potion p_43514_, Item p_43515_, Potion p_43516_) { - } -} diff --git a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/CriteriaTriggersAccessor.java b/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/CriteriaTriggersAccessor.java deleted file mode 100644 index 5aaf071208..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/CriteriaTriggersAccessor.java +++ /dev/null @@ -1,14 +0,0 @@ -package at.petrak.hexcasting.mixin.accessor; - -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.advancements.CriterionTrigger; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(CriteriaTriggers.class) -public interface CriteriaTriggersAccessor { - @Invoker("register") - static > T hex$register(T trigger) { - throw new UnsupportedOperationException(); - } -} diff --git a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/client/AccessorMouseHandler.java b/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/client/AccessorMouseHandler.java index 54343bb81c..80e30a5dff 100644 --- a/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/client/AccessorMouseHandler.java +++ b/Common/src/main/java/at/petrak/hexcasting/mixin/accessor/client/AccessorMouseHandler.java @@ -6,9 +6,9 @@ @Mixin(MouseHandler.class) public interface AccessorMouseHandler { - @Accessor("accumulatedScroll") - double hex$getAccumulatedScroll(); + @Accessor("accumulatedScrollY") + double hex$getAccumulatedScrollY(); - @Accessor("accumulatedScroll") - void hex$setAccumulatedScroll(double scroll); + @Accessor("accumulatedScrollY") + void hex$setAccumulatedScrollY(double scroll); } diff --git a/Common/src/main/java/at/petrak/hexcasting/server/ScrungledPatternsSave.java b/Common/src/main/java/at/petrak/hexcasting/server/ScrungledPatternsSave.java index 2407d3571a..8a8ab9eb7b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/server/ScrungledPatternsSave.java +++ b/Common/src/main/java/at/petrak/hexcasting/server/ScrungledPatternsSave.java @@ -7,10 +7,12 @@ import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.xplat.IXplatAbstractions; import com.mojang.datafixers.util.Pair; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.datafix.DataFixTypes; import net.minecraft.world.level.saveddata.SavedData; import org.jetbrains.annotations.Nullable; @@ -61,7 +63,7 @@ public Pair lookupReverse(ResourceKey { var inner = new CompoundTag(); @@ -72,7 +74,7 @@ public CompoundTag save(CompoundTag tag) { return tag; } - private static ScrungledPatternsSave load(CompoundTag tag) { + private static ScrungledPatternsSave load(CompoundTag tag, HolderLookup.Provider lookup) { var registryKey = IXplatAbstractions.INSTANCE.getActionRegistry().key(); var map = new HashMap(); @@ -83,7 +85,7 @@ private static ScrungledPatternsSave load(CompoundTag tag) { var rawKey = inner.getString(TAG_KEY); var dir = HexDir.values()[rawDir]; - var key = ResourceKey.create(registryKey, new ResourceLocation(rawKey)); + var key = ResourceKey.create(registryKey, ResourceLocation.parse(rawKey)); map.put(sig, new PerWorldEntry(key, dir)); } @@ -116,8 +118,11 @@ public static ScrungledPatternsSave createFromScratch(long seed) { public static ScrungledPatternsSave open(ServerLevel overworld) { return overworld.getDataStorage().computeIfAbsent( - ScrungledPatternsSave::load, - () -> ScrungledPatternsSave.createFromScratch(overworld.getSeed()), + new SavedData.Factory<>( + () -> ScrungledPatternsSave.createFromScratch(overworld.getSeed()), + ScrungledPatternsSave::load, + DataFixTypes.PLAYER + ), TAG_SAVED_DATA); } diff --git a/Common/src/main/java/at/petrak/hexcasting/xplat/IClientXplatAbstractions.java b/Common/src/main/java/at/petrak/hexcasting/xplat/IClientXplatAbstractions.java index 81806255b3..ab87c932da 100644 --- a/Common/src/main/java/at/petrak/hexcasting/xplat/IClientXplatAbstractions.java +++ b/Common/src/main/java/at/petrak/hexcasting/xplat/IClientXplatAbstractions.java @@ -2,11 +2,11 @@ import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.client.ClientCastingStack; -import at.petrak.hexcasting.common.msgs.IMessage; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.item.ItemPropertyFunction; import net.minecraft.client.renderer.texture.AbstractTexture; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -19,7 +19,7 @@ import java.util.stream.Collectors; public interface IClientXplatAbstractions { - void sendPacketToServer(IMessage packet); + void sendPacketToServer(CustomPacketPayload packet); void setRenderLayer(Block block, RenderType type); @@ -40,6 +40,8 @@ public interface IClientXplatAbstractions { IClientXplatAbstractions INSTANCE = find(); + String getModelLocVariant(); + private static IClientXplatAbstractions find() { var providers = ServiceLoader.load(IClientXplatAbstractions.class).stream().toList(); if (providers.size() != 1) { diff --git a/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatAbstractions.java b/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatAbstractions.java index 86dbc24586..369b764743 100644 --- a/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatAbstractions.java +++ b/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatAbstractions.java @@ -19,13 +19,16 @@ import at.petrak.hexcasting.api.player.AltioraAbility; import at.petrak.hexcasting.api.player.FlightAbility; import at.petrak.hexcasting.api.player.Sentinel; -import at.petrak.hexcasting.common.msgs.IMessage; +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredientType; +import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredientType; import at.petrak.hexcasting.interop.pehkui.PehkuiInterop; import com.mojang.authlib.GameProfile; import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.resources.ResourceKey; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; @@ -56,6 +59,7 @@ /** * more like IHexplatAbstracts lmaooooooo */ + public interface IXplatAbstractions { Platform platform(); @@ -65,14 +69,14 @@ public interface IXplatAbstractions { void initPlatformSpecific(); - void sendPacketToPlayer(ServerPlayer target, IMessage packet); + void sendPacketToPlayer(ServerPlayer target, CustomPacketPayload packet); - void sendPacketNear(Vec3 pos, double radius, ServerLevel dimension, IMessage packet); + void sendPacketNear(Vec3 pos, double radius, ServerLevel dimension, CustomPacketPayload packet); - void sendPacketTracking(Entity entity, IMessage packet); + void sendPacketTracking(Entity entity, CustomPacketPayload packet); // https://github.com/VazkiiMods/Botania/blob/13b7bcd9cbb6b1a418b0afe455662d29b46f1a7f/Xplat/src/main/java/vazkii/botania/xplat/IXplatAbstractions.java#L157 - Packet toVanillaClientboundPacket(IMessage message); + Packet toVanillaClientboundPacket(CustomPacketPayload message); // double getReachDistance(Player player); @@ -115,9 +119,6 @@ public interface IXplatAbstractions { @Nullable ADMediaHolder findMediaHolder(ItemStack stack); - @Nullable - ADMediaHolder findMediaHolder(ServerPlayer player); - @Nullable ADIotaHolder findDataHolder(ItemStack stack); @@ -127,7 +128,7 @@ public interface IXplatAbstractions { @Nullable ADHexHolder findHexHolder(ItemStack stack); - @Nullable ADVariantItem findVariantHolder(ItemStack stack); + ADVariantItem findVariantHolder(ItemStack stack); // coooollooorrrs @@ -180,12 +181,18 @@ BlockEntityType createBlockEntityType(BiFunction getEvalSoundRegistry(); + Registry> getStateIngredientRegistry(); + + Registry> getBrainsweepeeIngredientRegistry(); + GameProfile HEXCASTING = new GameProfile(UUID.fromString("8BE7E9DA-1667-11EE-BE56-0242AC120002"), "[HexCasting]"); boolean isBreakingAllowed(ServerLevel world, BlockPos pos, BlockState state, @Nullable Player player); boolean isPlacingAllowed(ServerLevel world, BlockPos pos, ItemStack blockStack, @Nullable Player player); + IXplatRegister createRegistar(ResourceKey> registryKey); + // interop PehkuiInterop.ApiAbstraction getPehkuiApi(); diff --git a/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatRegister.java b/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatRegister.java new file mode 100644 index 0000000000..76d9091fd6 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/xplat/IXplatRegister.java @@ -0,0 +1,21 @@ +package at.petrak.hexcasting.xplat; + +import net.minecraft.core.Holder; + +import java.util.function.Supplier; + +/** + * Handles registration + * @param + */ +public interface IXplatRegister { + + Supplier register(String id, Supplier provider); + + Holder registerHolder(String id, Supplier provider); + + /** + * Call from mod initializer to actually register all entries in this register + */ + void registerAll(); +} \ No newline at end of file diff --git a/Common/src/main/resources/architectury.common.json b/Common/src/main/resources/architectury.common.json new file mode 100644 index 0000000000..e4a0a01454 --- /dev/null +++ b/Common/src/main/resources/architectury.common.json @@ -0,0 +1,3 @@ +{ + "accessWidener": "hexplat.accesswidener" +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 index 2eb861e346..f433d2925f 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 @@ -46,6 +46,11 @@ "": "Focus", sealed: "Sealed Focus", }, + + ancient_cypher: { + "": "Ancient Cypher", + preset: "Ancient Cypher: %s", + }, thought_knot: "Thought-Knot", spellbook: "Spellbook", @@ -136,7 +141,7 @@ akashic_: { record: "Akashic Record", bookshelf: "Akashic Bookshelf", - connector: "Akashic Ligature", + ligature: "Akashic Ligature", }, slate: { @@ -252,8 +257,8 @@ }, "itemGroup.hexcasting": { - "": "Hexcasting", - creative_tab: "Hexcasting", + hexcasting: "Hex Casting", + scrolls: "Hex Casting (Scrolls)", }, "gui.hexcasting": { @@ -368,23 +373,42 @@ "": "Circle Action Deny List", "@Tooltip": "Resource locations of disallowed actions within circles. Trying to cast one of these from a circle will result in a mishap.", }, + greaterTeleportSplatsItems: { + "": "Greater Teleport Splats Items", + "@Tooltip": "Whether items should fly out of the player's inventory when using Greater Teleport" + }, villagersOffendedByMindMurder: { "": "Villagers Offended By Mind Murder", "@Tooltip": "Whether villagers should be angry at the player when other villagers are mindflayed", }, + traderScrollChance: { + "": "Wandering Trader Scroll Chance", + "@Tooltip": "The chance for wandering traders to sell an Ancient Scroll", + }, scrollInjectionsRaw: { "": "Scroll Injection Weights", "@Tooltip": "Maps the names of loot tables to the amount of per-world patterns on scrolls should go in them. There's about a 50% chance to get any scrolls in a given chest marked here; once that is met, between 1 and that many scrolls are generated.", }, + loreInjectionsRaw: { + "": "Lore Injection Sites", + "@Tooltip": "Lists the loot tables that lore fragments should be added to.", + }, + loreChance: { + "": "Lore Fragment Chance", + "@Tooltip": "The chance for lore fragments to appear in any of the above loot tables.", + }, + cypherInjectionsRaw: { + "": "Ancient Cypher Injection Sites", + "@Tooltip": "Lists the loot tables that ancient cyphers should be added to.", + }, + cypherChance: { + "": "Ancient Cypher Chance", + "@Tooltip": "The chance for ancient cyphers to appear in any of the above loot tables.", + }, amethystShardModification: { "": "Amethyst Shard Drop Rate Change", "@Tooltip": "How much the number of amethyst shards dropped from clusters is increased/decreased.", }, - - // TODO: are these used anywhere?? - "fewScrollTables.@Tooltip": "Loot tables that a small number of Ancient Scrolls are injected into", - "someScrollTables.@Tooltip": "Loot tables that a decent number of Ancient Scrolls are injected into", - "manyScrollTables.@Tooltip": "Loot tables that a huge number of Ancient Scrolls are injected into", }, }, }, @@ -499,6 +523,25 @@ infinite_media: "Infinite", }, + loot_hex: { + "shatter": "Shatter", + "kindle": "Kindle", + "illuminate": "Illuminate", + "growth": "Growth", + "lunge": "Lunge", + "sidestep": "Sidestep", + "ascend": "Ascend", + "blink": "Blink", + "blastoff": "Blastoff", + "radar": "Radar", + "beckon": "Beckon", + "detonate": "Detonate", + "shockwave": "Shockwave", + "heat_wave": "Heat Wave", + "wither_wave": "Wither Wave", + "flight_zone": "Flight Zone", + }, + // TODO: post-eigengrau make these less anticlimactic message: { cant_overcast: "That Hex needed more media than I had... I should double-check my math.", @@ -521,6 +564,11 @@ }, sealed: "Sealed", }, + + scroll: { + needs_purchase: "Purchase to show pattern", + pattern_not_loaded: "Place in inventory to load pattern", + }, abacus: { "": "%d", @@ -562,6 +610,7 @@ media: "%d dust", media_amount: "Contains: %s (%s)", "media_amount.advanced": "Contains: %s/%s (%s)", + stored_hex: "Hex: ", list_contents: "[%s]", null_iota: "Null", @@ -586,6 +635,7 @@ add_segment: "Adding line", }, cast: { + fail: "Mishap crunches", normal: "Action hums", spell: "Spell boinks", hermes: "Hermes' twangs", @@ -614,8 +664,12 @@ attributes: { grid_zoom: "Casting Grid Size", + media_consumption: "Media Consumption", + ambit_radius: "Player Ambit Radius", + sentinel_radius: "Sentinel Ambit Radius", // TODO: the +1 is kind of janky scry_sight: "Scrying Sight", + feeble_mind: "Feeble Mind" }, // Action localizations @@ -927,7 +981,7 @@ wrong_dimension: "cannot see %s from %s", entity_too_far: "%s is out of range", immune_entity: "cannot alter %s", - eval_too_deep: "Recursively evaluated too deep", + eval_too_much: "Evaluated too many patterns", no_item: "needs %s but got nothing", "no_item.offhand": "needs %s in the other hand but got nothing", bad_entity: "needs %s but got %s", @@ -1159,6 +1213,7 @@ // why is this called "hexcasting"? hexcasting: "Casting Items", + ancient_cyphers: "Ancient Cyphers", phials: "Phials of Media", potions: "Hex Potions", pigments: "Pigments", @@ -1383,8 +1438,8 @@ "retrospection.title": "Hasty Retrospection", retrospection: "I attempted to draw $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ without first drawing $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$.$(br2)Causes orange sparks, and pushes the pattern for $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ to the stack as a pattern iota.", - "too_deep.title": "Delve Too Deep", - too_deep: "Evaluated too many spells with meta-evaluation from one spell.$(br2)Causes dark blue sparks, and chokes all the air out of me.", + "too_many_patterns.title": "Lost in Thought", + too_many_patterns: "I attempted to evaluate too many patterns in one _Hex. Often, this happens because I've accidentally created an infinite loop.$(br2)Causes dark blue sparks, and chokes all the air out of me.", "true_name.title": "Transgress Other", true_name: "I attempted to $(l:patterns/readwrite#hexcasting:write)$(action)save a reference/$ to another player to a permanent medium.$(br2)Causes black sparks, and robs me of my sight for approximately one minute.", @@ -1475,7 +1530,7 @@ "2": "Like a $(l:items/focus)$(item)Focus/$, there exists a simple method to prevent accidental overwriting. Crafting it with a $(item)Honeycomb/$ will lacquer the current page, preventing $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ from modifying its contents. Also like a $(l:items/focus)$(item)Focus/$, using $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item/$ will remove the lacquer along with the page's contents.$(br2)I can also name each page individually in an anvil. Naming it will change only the name of the currently selected page, for easy browsing.", "crafting.desc": "$(italic)Wizards love words. Most of them read a great deal, and indeed one strong sign of a potential wizard is the inability to get to sleep without reading something first.", }, - + scroll: { "1": "A $(l:items/scroll)$(item)Scroll/$ is a convenient method of sharing a pattern with others. I can copy a pattern onto one with $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$, after which it will display in a tooltip.$(br2)I can also place them on the wall as decoration or edification, like a painting, in sizes from 1x1 to 3x3 blocks. Using $(l:items/amethyst)$(item)Amethyst Dust/$ on such a scroll will have it display the stroke order.", "2": "In addition, I can also find so-called $(l:items/scroll)$(item)Ancient Scrolls/$ in the dungeons and strongholds of the world. These contain the stroke order of $(thing)Great Spells/$, powerful magicks rumored to be too powerful for the hands and minds of mortals...$(br2)If those \"mortals\" couldn't cast them, I'm not sure they deserve to know them.", @@ -1498,6 +1553,11 @@ "5": "Each infusion spell requires an entity and a list of patterns on the stack. The entity must be a _media-holding item entity (i.e. $(l:items/amethyst)$(item)amethyst/$ crystals, dropped on the ground); the entity is consumed and forms the battery.$(br2)Usefully, it seems that the _media in the battery is not consumed in chunks as it is when casting with a $(l:items/staff)$(item)Staff/$-- rather, the _media \"melts down\" into one continuous pool. Thus, if I store a _Hex that only costs one $(l:items/amethyst)$(item)Amethyst Dust/$'s worth of media, a $(l:items/amethyst)$(item)Charged Crystal/$ used as the battery will allow me to cast it 10 times.", "crafting.desc": "$(italic)We have a saying in our field: \"Magic isn't\". It doesn't \"just work,\" it doesn't respond to your thoughts, you can't throw fireballs or create a roast dinner from thin air or turn a bunch of muggers into frogs and snails./$", }, + + ancient_cyphers: { + "1": "While adventuring, I've come across what appear to be $(l:items/hexcasting)$(item)Cyphers/$ created by the Hexcasters of the ancient past. These $(item)Ancient Cyphers/$ work just like the ones I can craft: they can't be recharged, and will break when their reserve of _Media runs out. However, unlike my own $(l:items/hexcasting)$(item)Cyphers/$, their decayed structure allows me to glimpse the _Hex stored within.", + "2": "These may be useful for learning new techniques - who better to teach me than ancient masters of the art?$(br2)Alternatively, I could erase the contents of one and store my own _Hex inside, creating a casting item that clearly displays its own function." + }, phials: { "1": "I find it quite ... irritating, how Nature refuses to give me change for my work. If all I have on hand is $(l:items/amethyst)$(item)Charged Amethyst/$, even the tiniest $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$ will consume the entire crystal, wasting the remaining _media.$(br2)Fortunately, it seems I've found a way to somewhat allay this problem.", @@ -1557,7 +1617,7 @@ spellcircles: { "1": "I KNOW what the $(l:items/slate)$(item)slates/$ are for. The grand assemblies lost to time. The patterns scribed on them can be actuated in sequence, automatically. Thought and power ricocheting through, one by one by one by one by one by through and through and THROUGH AND -- I must not I must not I should know better than to think that way.", - "2": "To start the ritual I need an $(l:greatwork/impetus)$(item)Impetus/$ to create a self-sustaining wave of _media. That wave travels along a track of $(l:items/slate)$(item)slates/$ or other blocks suitable for the energies, one by one, collecting any patterns it finds. Once the wave circles back around to the $(l:greatwork/impetus)$(item)Impetus/$, all the patterns encountered are cast in order.$(br2)The direction the _media exits any given block MUST be unambiguous, or the casting will fail at the block with too many neighbors.", + "2": "To start the ritual I need an $(l:greatwork/impetus)$(item)Impetus/$ to create a self-sustaining wave of _media. That wave travels along a track of $(l:items/slate)$(item)slates/$ or other suitable blocks, casting any patterns it finds.$(br2)If there is no way for the wave to return to the $(l:greatwork/impetus)$(item)Impetus/$, the casting will fail immediately. Also, the direction the wave exits any given block MUST be unambiguous, or the casting will fail at the block with too many neighbors.", "3": "As a result, the outline of the spell \"circle\" may be any closed shape, concave or convex, and it may face any direction. In fact, with the application of certain other blocks it is possible to make a spell circle that spans all three dimensions. I doubt such an oddity has very much use, but I must allocate myself a bit of vapid levity to encourage my crude mind to continue my work.", "4": "Miracle of miracles, the circle will withdraw _media neither from my inventory nor my mind. Instead, crystallized shards of _media must be provided to the $(l:greatwork/impetus)$(item)Impetus/$ via hopper, or other such artifice.$(br2)The application of a $(l:items/lens)$(item)Scrying Lens/$ will show how much _media is inside an $(l:greatwork/impetus)$(item)Impetus/$, in units of dust.", "5": "However, a spell cast from a circle does have one major limitation: it is unable to affect anything outside of the circle's bounds. That is, it cannot interact with anything outside of the cuboid of minimum size which encloses every block composing it (so a concave spell circle can still affect things in the concavity).", diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index 1b94caa75f..45889fe332 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -211,8 +211,8 @@ }, "itemGroup.hexcasting": { - "": "Hexcasting", - creative_tab: "Hexcasting", + hexcasting: "Hex Casting", + scrolls: "Hex Casting (Scrolls)", }, "gui.hexcasting": { @@ -335,11 +335,6 @@ "": "Amethyst Shard Drop Rate Change", "@Tooltip": "How much the number of amethyst shards dropped from clusters is increased/decreased.", }, - - // TODO: are these used anywhere?? - "fewScrollTables.@Tooltip": "Loot tables that a small number of Ancient Scrolls are injected into", - "someScrollTables.@Tooltip": "Loot tables that a decent number of Ancient Scrolls are injected into", - "manyScrollTables.@Tooltip": "Loot tables that a huge number of Ancient Scrolls are injected into", }, }, }, @@ -863,7 +858,7 @@ wrong_dimension: "не удается увидеть %s из %s", entity_too_far: "%s находится вне диапазона", immune_entity: "невозможно изменить %s", - eval_too_deep: "Рекурсивные вычисления слишком глубокие", + eval_too_much: "Рекурсивные вычисления слишком глубокие", no_item: "нуждается в %s, но ничего не получает", "no_item.offhand": "нуждается в %s в другой руке, но ничего не получил", bad_entity: "нуждается в %s, но получил %s", @@ -1294,8 +1289,8 @@ "retrospection.title": "Поспешная Ретроспектива", retrospection: "Я попытался нарисовать $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспектива/$ без предварительного рисования $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интроспекция/$.$(br2)Вызывает оранжевые искры и помещает шаблон для $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспектива/$ в стек как шаблон иота.", - "too_deep.title": "Слишком глубоко", - too_deep: "Оценено слишком много заклинаний с метаоценкой от одного заклинания.$(br2)Вызывает темно-синие искры и лишает меня всего воздуха.", + "too_many_patterns.title": "Слишком глубоко", + too_many_patterns: "Оценено слишком много заклинаний с метаоценкой от одного заклинания.$(br2)Вызывает темно-синие искры и лишает меня всего воздуха.", "true_name.title": "Нарушение Законов", true_name: "Я попытался $(l:patterns/readwrite#hexcasting:write)$(action)сохранить истинное имя/$ другого игрока на постоянный носитель.$(br2)Вызывает черные искры и лишает меня зрения примерно на одну минуту.", diff --git a/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 index 7715983dec..59d9b0d847 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 @@ -164,7 +164,7 @@ slate_amethyst_: { tiles: "板岩紫晶瓦", bricks: "板岩紫晶砖", - bricks_small: "板岩紫晶砖", + bricks_small: "板岩紫晶小型砖", pillar: "板岩紫晶柱", }, @@ -252,8 +252,8 @@ }, "itemGroup.hexcasting": { - "": "咒法学", - creative_tab: "咒法学", + hexcasting: "咒法学", + scrolls: "咒法学", }, "gui.hexcasting": { @@ -268,7 +268,7 @@ }, "tag.item.hexcasting": { - brainswept_circle_components: "剥离意识环组件", + brainswept_circle_components: "剥离意识所得法术环组件", directrices: "导向石", grants_root_advancement: "给予根进度", impeti: "促动石", @@ -380,11 +380,6 @@ "": "紫水晶碎片掉落率变化量", "@Tooltip": "采掘紫水晶簇时紫水晶碎片掉落数量相较原版的改变量", }, - - // TODO: are these used anywhere?? - "option.server.fewScrollTables.@Tooltip": "会额外生成较少数量卷轴的战利品表", - "option.server.someScrollTables.@Tooltip": "会额外生成中等数量卷轴的战利品表", - "option.server.manyScrollTables.@Tooltip": "会额外生成较大数量卷轴的战利品表", }, }, }, @@ -586,6 +581,7 @@ add_segment: "绘制线段", }, cast: { + fail: "事故:轰鸣", normal: "操作:嗡鸣", spell: "法术:施放", hermes: "赫尔墨斯之策略:鸣响", @@ -606,6 +602,7 @@ "scroll.scribble": "卷轴:被涂写", "impetus.fletcher.tick": "制箭师促动石:咔哒", "impetus.redstone.register": "牧师促动石:叮~", + "impetus.redstone.clear": "牧师促动石:清空", "lore_fragment.read": "故事残卷:被阅读", "flight.ambience": "玩家:飞翔", "flight.finish": "飞翔结束", @@ -815,6 +812,7 @@ flight: "翱翔", "flight/range": "隐士之飞行", "flight/time": "旅者之飞行", + "flight/can_fly": "飞行员之纯化", lightning: "召雷", summon_rain: "召雨", @@ -925,7 +923,7 @@ wrong_dimension: "无法在%2$s中影响到%1$s", entity_too_far: "%s超出影响范围", immune_entity: "无法影响到%s", - eval_too_deep: "递归深度过大", + eval_too_much: "运行了过多图案", no_item: "需要%s,而实际无对应物品", "no_item.offhand": "需要在另一只手里持有%s,而实际无对应物品", bad_entity: "需要%s,而实际接受了%s", @@ -1381,8 +1379,8 @@ "retrospection.title": "反思过急", retrospection: "试图在绘制$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$前绘制$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)反思/$。$(br2)产生橙色火花,并压入一个$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)反思/$对应的图案。", - "too_deep.title": "钻研过深", - too_deep: "在一个法术内以元运行方式运行过多法术。$(br2)产生暗蓝色火花,并使我窒息。", + "too_many_patterns.title": "陷入沉思", + too_many_patterns: "在单个$(hex)咒术/$试图运行过多图案,通常是因为不小心制造了死循环。$(br2)产生暗蓝色火花,并使我窒息。", "true_name.title": "违犯他人", true_name: "试图在某种永久性媒介中$(l:patterns/readwrite#hexcasting:write)$(action)存储/$代表另一位玩家的 iota。$(br2)产生黑色火花,并致盲大约一分钟。", @@ -1555,7 +1553,7 @@ spellcircles: { "1": "我终于知道$(l:items/slate)$(item)石板/$的用途了。早已遗落的卓伟结构。镌刻其上的图案会按顺序自动运行。思维和能量在其中穿梭,一个接一个接一个接一个接一个穿梭穿梭穿梭——我不能我不能我不能跟着它的思维应该去理解。", - "2": "我需要$(l:greatwork/impetus)$(item)促动石/$作为一种自我维持的$(media)媒质/$波源来启动仪式。而产生的波就会随着$(l:items/slate)$(item)石板/$或是其他和这种波亲和性好的方块穿梭,一个接一个地收集碰到的图案。当波最终回到$(l:greatwork/impetus)$(item)促动石/$处时,所有碰到的图案就会按顺序运行。$(br2)$(media)媒质/$流出任何方块的方向必须唯一而确定,否则法术环会在分叉处失效。", + "2": "我需要$(l:greatwork/impetus)$(item)促动石/$作为一种自我维持的$(media)媒质/$波源来启动仪式。产生的波会随着$(l:items/slate)$(item)石板/$或是其他合适的方块穿梭,运行它碰到的图案。$(br2)如果波无法回到$(l:greatwork/impetus)$(item)促动石/$处,施法会立即失败。而且,波流出任何方块的方向必须唯一而确定,否则法术环会在分叉处失效。", "3": "因此,法术“环”必须是一个封闭的图形,凹多边形和凸多边形均可,方向也随意。实际上,借助某些其他方块,法术环可在所有三个维度上随意排布。这种性质可能没什么大用,但我必须给大脑一点刺激,好让研究继续下去。", "4": "真是精妙。法术环不会从我的物品栏或我的意识中汲取$(media)媒质/$,而是要通过漏斗(或类似装置)向$(l:greatwork/impetus)$(item)促动石/$提供晶态的$(media)媒质/$。$(br2)$(l:items/lens)$(item)探知透镜/$能以紫水晶粉为单位显示$(l:greatwork/impetus)$(item)促动石/$中的$(media)媒质/$量。", "5": "然而,用法术环施放的法术有一个限制:它无法影响环外的事物。也即,它无法影响到能将整个法术环包起的最小长方体外的事物(有凹进部分的法术环仍能影响凹进部分内的事物)。", @@ -1598,8 +1596,8 @@ quenching_allays: { "1": "$(l)它们就是小块媒质。/$我怎么没早点发现呢?它们——我是一堆血肉再加上一小点……是被赐予了一小点的思维,但悦灵是能维持自稳的媒质集群,再被按到一小点血肉上去。所有东西就都说得通了——它们对媒质的趋向性,它们对音乐的种种反应,$(l)我现在理解了/$,$(l)但/$为何前人$(l)没有/$?", "2": "理解这点后,唯一$(l)正确/$的选择就是去征服它们奇异的意识——它们奇异的自我——也是它们的全部、一个意识、一个自我、一段尾声。它们的性状似乎揭示了某些东西。我能……我能使用它们压缩$(media)媒质/$,将两束思维叠放在一起,形体与认知,多与一。$(br2)这个过程不知怎么的会自行产生$(media)媒质/$。这是怎么回事?也许——也许是$(l)我/$的缘故,是完成这项任务的过程——", - "3": "它不重要。我不重要。它们不重要,重要的只有功用。这就是了。$(br2)这肯定相当痛苦。", - "4": "所得的产物十分脆弱。直接破坏会将其打碎成碎片,$(thing)时运/$则能增加产量……如果需要获得方块本身,那要有精准采集才行。$(br2)产生的碎片相当于将 3 个$(l:items/amethyst)$(item)充能紫水晶/$拼在一起。方块则相当于 4 个碎片。", + "3": "它不重要。我不重要。它们不重要,重要的只有功用。这就是了。$(br2)这肯定相当痛苦。$(br2)十份$(l:items/amethyst)$(item)紫水晶粉/$,就是启动如此恶劣仪式的代价。", + "4": "所得的产物十分脆弱。直接破坏会将其打碎成碎片,$(thing)时运/$则能增加产量……如果需要获得方块本身,那要有精准采集才行。$(br2)产生的碎片相当于 3 个$(l:items/amethyst)$(item)充能紫水晶/$拼在一起。方块则相当于 4 个碎片。", "5": "它们变幻莫测,好像会在我的手中不断变形闪烁,若是给予它们来自另一种$(media)媒质/$形态的引导,它们便会变成对应的形态,且$(media)媒质/$总量前后不变。", }, @@ -1942,7 +1940,7 @@ "1": "$(italic)去吧!现在一切都已完成,$(br)只须留着一个人作哨卫。/$$(br2)$(l:patterns/spells/sentinels)$(thing)哨卫/$是一种能被$(hex)咒术/$召唤出的神秘力量,就和亲人或是侍卫一样。对我而言,它是一个旋转着的几何体,而其他人看不见它。", "2": "它有些有趣的性质:$(li)它似乎不可被触摸,没人摸得到它。$(li)只有我的$(hex)咒术/$才能与之交互。$(li)一旦召唤,在被驱除前它都将留在原位。$(li)只要我离它足够近,我就能透过方块看见它。", - "sentinel/create": "在给定位置召唤哨卫$(l:patterns/spells/sentinels)$(thing)哨卫/$。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉/$。", + "sentinel/create": "在给定位置召唤$(l:patterns/spells/sentinels)$(thing)哨卫/$。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉/$。", "sentinel/destroy": "将我的$(l:patterns/spells/sentinels)$(thing)哨卫/$从世界中驱除出去。消耗极少量$(media)媒质/$。", "sentinel/get_pos": "将我的$(l:patterns/spells/sentinels)$(thing)哨卫/$的位置加到栈中,若并未召唤则加入一个 $(l:casting/influences)$(thing)Null/$。消耗极少量$(media)媒质/$。", "sentinel/wayfind": "将栈顶的位置向量变为从我的位置指向$(l:patterns/spells/sentinels)$(thing)哨卫/$的单位向量,若并未召唤则变为 $(l:casting/influences)$(thing)Null/$。消耗极少量$(media)媒质/$。", @@ -1961,6 +1959,10 @@ "time.1": "受时间限制的飞行法术。", "time.2": "第二参数代表持续时间(以秒计),在此限制内,法术能保持稳定。持续时间超过限制就会结束该法术,滞空的物体会直接坠向地面。$(br2)此法术相对较昂贵,每秒持续时间消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶/$。我觉得它极其适合长途旅行。", + + // Putting this in this category instead of elsewhere -- see sentinel chapter also containing some reflections/nonspells + "can_fly.1": "检查玩家是否处于$(l:patterns/spells/flight#hexcasting:flight/range)隐士之飞行/$或$(l:patterns/spells/flight#hexcasting:flight/time)旅者之飞行/$的影响之下。", + "can_fly.2": "不会检查玩家是否能以其他方式飞行。$(br2)我不太清楚这个图案有什么用途,但我相信,愿意用它的人自会清楚。" }, create_lava: { diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/casting/mishaps.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/casting/mishaps.json index 08fb6d0335..5a01a51556 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/casting/mishaps.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/casting/mishaps.json @@ -75,8 +75,8 @@ }, { "type": "patchouli:text", - "title": "hexcasting.page.mishaps.too_deep.title", - "text": "hexcasting.page.mishaps.too_deep" + "title": "hexcasting.page.mishaps.too_many_patterns.title", + "text": "hexcasting.page.mishaps.too_many_patterns" }, { "type": "patchouli:text", diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/casting/vectors.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/casting/vectors.json index 5823bfa7a3..bf28be0282 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/casting/vectors.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/casting/vectors.json @@ -20,7 +20,7 @@ "type": "patchouli:link", "text": "hexcasting.page.vectors.3", "link_text": "hexcasting.page.vectors.3.link_text", - "url": "https://psi.vazkii.us/codex.php#vectorPrimer" + "url": "https://psi.vazkii.net/codex.php#vectorPrimer" } ] } diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/greatwork/akashiclib.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/greatwork/akashiclib.json index 25cfde8ead..ad63b36001 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/greatwork/akashiclib.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/greatwork/akashiclib.json @@ -22,7 +22,7 @@ { "type": "patchouli:crafting", "recipe": "hexcasting:akashic_bookshelf", - "recipe2": "hexcasting:akashic_connector" + "recipe2": "hexcasting:akashic_ligature" }, { "type": "patchouli:text", diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/ancient_cyphers.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/ancient_cyphers.json new file mode 100644 index 0000000000..9a000fea58 --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/ancient_cyphers.json @@ -0,0 +1,18 @@ +{ + "name": "hexcasting.entry.ancient_cyphers", + "category": "hexcasting:items", + "icon": "hexcasting:ancient_cypher", + "sortnum": 7, + "advancement": "hexcasting:root", + "pages": [ + { + "type": "patchouli:text", + "text": "hexcasting.page.ancient_cyphers.1" + }, + { + "type": "patchouli:spotlight", + "text": "hexcasting.page.ancient_cyphers.2", + "item": "hexcasting:ancient_cypher[hexcasting:variant=0],hexcasting:ancient_cypher[hexcasting:variant=1],hexcasting:ancient_cypher[hexcasting:variant=2],hexcasting:ancient_cypher[hexcasting:variant=3],hexcasting:ancient_cypher[hexcasting:variant=4],hexcasting:ancient_cypher[hexcasting:variant=5],hexcasting:ancient_cypher[hexcasting:variant=6],hexcasting:ancient_cypher[hexcasting:variant=7]" + } + ] + } \ No newline at end of file diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/hexcasting.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/hexcasting.json index b28262d6b8..03e8990b3a 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/hexcasting.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/hexcasting.json @@ -1,7 +1,7 @@ { "name": "hexcasting.entry.hexcasting", "category": "hexcasting:items", - "icon": "hexcasting:artifact{patterns:[]}", + "icon": "hexcasting:artifact", "sortnum": 6, "advancement": "hexcasting:root", "pages": [ diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/phials.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/phials.json index 0f930d1ec8..7e264464fe 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/phials.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/phials.json @@ -21,7 +21,7 @@ { "type": "patchouli:spotlight", "text": "hexcasting.page.phials.desc", - "item": "hexcasting:battery{\"hexcasting:media\":640000,\"hexcasting:start_media\":640000}", + "item": "hexcasting:battery[hexcasting:media=640000,hexcasting:start_media=640000]", "link_recipe": true } ] diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/potions.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/potions.json index a0db5dd70b..fcc3d2ff9f 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/potions.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/potions.json @@ -1,7 +1,7 @@ { "name": "hexcasting.entry.potions", "category": "hexcasting:items", - "icon": "minecraft:potion{Potion:\"hexcasting:enlarge_grid\"}", + "icon": "minecraft:potion[minecraft:potion_contents={potion:\"hexcasting:enlarge_grid\"}]", "sortnum": 8, "advancement": "hexcasting:root", "read_by_default": true, @@ -14,7 +14,7 @@ "type": "patchouli:spotlight", "title": "hexcasting.page.potions.effects.header", "text": "hexcasting.page.potions.2", - "item": "minecraft:potion{Potion:\"hexcasting:enlarge_grid\"},minecraft:potion{Potion:\"hexcasting:enlarge_grid_long\"},minecraft:potion{Potion:\"hexcasting:enlarge_grid_strong\"},minecraft:potion{Potion:\"hexcasting:shrink_grid\"},minecraft:potion{Potion:\"hexcasting:shrink_grid_long\"},minecraft:potion{Potion:\"hexcasting:shrink_grid_strong\"}" + "item": "minecraft:potion[minecraft:potion_contents={potion:\"hexcasting:enlarge_grid\"}],minecraft:potion[minecraft:potion_contents={potion:\"hexcasting:enlarge_grid_long\"}],minecraft:potion[minecraft:potion_contents={potion:\"hexcasting:enlarge_grid_strong\"}],minecraft:potion[minecraft:potion_contents={potion:\"hexcasting:shrink_grid\"}],minecraft:potion[minecraft:potion_contents={potion:\"hexcasting:shrink_grid_long\"}],minecraft:potion[minecraft:potion_contents={potion:\"hexcasting:shrink_grid_strong\"}]" } ] } diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/staff.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/staff.json index 9e89746d5a..8ea8dab475 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/staff.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/staff.json @@ -24,6 +24,8 @@ "hexcasting:staff/crimson", "hexcasting:staff/warped", "hexcasting:staff/mangrove", + "hexcasting:staff/bamboo", + "hexcasting:staff/cherry", "hexcasting:staff/edified" ] } diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/great_spells/make_battery.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/great_spells/make_battery.json index 2ffd387b21..94c15f5bd1 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/great_spells/make_battery.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/great_spells/make_battery.json @@ -1,7 +1,7 @@ { "name": "hexcasting.action.hexcasting:craft/battery", "category": "hexcasting:patterns/great_spells", - "icon": "hexcasting:battery{media:10000,max_media:10000}", + "icon": "hexcasting:battery[hexcasting:media=10000,hexcasting:start_media=10000]", "sortnum": 6, "advancement": "hexcasting:root", "read_by_default": true, diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/great_spells/zeniths.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/great_spells/zeniths.json index b5899a67c3..476fe9083b 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/great_spells/zeniths.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/great_spells/zeniths.json @@ -1,7 +1,7 @@ { "name": "hexcasting.entry.zeniths", "category": "hexcasting:patterns/great_spells", - "icon": "minecraft:potion{Potion:'minecraft:regeneration'}", + "icon": "minecraft:potion[minecraft:potion_contents={potion:\"minecraft:regeneration\"}]", "advancement": "hexcasting:root", "sortnum": 4, "read_by_default": true, diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/hexcasting.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/hexcasting.json index 06cd64b47f..fbbdbc5d40 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/hexcasting.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/hexcasting.json @@ -1,7 +1,7 @@ { "name": "hexcasting.entry.hexcasting_spell", "category": "hexcasting:patterns/spells", - "icon": "hexcasting:artifact{patterns:[]}", + "icon": "hexcasting:artifact", "sortnum": 3, "advancement": "hexcasting:root", "read_by_default": true, diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/nadirs.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/nadirs.json index 8d7efd5c11..37374393c1 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/nadirs.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/nadirs.json @@ -1,7 +1,7 @@ { "name": "hexcasting.entry.nadirs", "category": "hexcasting:patterns/spells", - "icon": "minecraft:potion{Potion:'minecraft:poison'}", + "icon": "minecraft:potion[minecraft:potion_contents={potion:\"minecraft:poison\"}]", "advancement": "hexcasting:root", "sortnum": 2, "read_by_default": true, diff --git a/Common/src/main/resources/assets/hexcasting/textures/block/slate_block.png b/Common/src/main/resources/assets/hexcasting/textures/block/slate_block.png new file mode 100644 index 0000000000..db79150b59 Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/block/slate_block.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/0_ancient_cypher.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/0_ancient_cypher.png new file mode 100644 index 0000000000..844e9eca1d Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/0_ancient_cypher.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/0_ancient_cypher_overlay.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/0_ancient_cypher_overlay.png new file mode 100644 index 0000000000..95df139be8 Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/0_ancient_cypher_overlay.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/1_ancient_cypher.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/1_ancient_cypher.png new file mode 100644 index 0000000000..ac4ca4c8bb Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/1_ancient_cypher.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/1_ancient_cypher_overlay.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/1_ancient_cypher_overlay.png new file mode 100644 index 0000000000..9cecaa2933 Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/1_ancient_cypher_overlay.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/2_ancient_cypher.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/2_ancient_cypher.png new file mode 100644 index 0000000000..7fc5a246f5 Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/2_ancient_cypher.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/2_ancient_cypher_overlay.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/2_ancient_cypher_overlay.png new file mode 100644 index 0000000000..f0ea5738a5 Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/2_ancient_cypher_overlay.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/3_ancient_cypher.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/3_ancient_cypher.png new file mode 100644 index 0000000000..3aae1ef12b Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/3_ancient_cypher.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/3_ancient_cypher_overlay.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/3_ancient_cypher_overlay.png new file mode 100644 index 0000000000..911afbadde Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/3_ancient_cypher_overlay.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/4_ancient_cypher.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/4_ancient_cypher.png new file mode 100644 index 0000000000..e52c0d34d4 Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/4_ancient_cypher.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/4_ancient_cypher_overlay.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/4_ancient_cypher_overlay.png new file mode 100644 index 0000000000..e5a60b5f0c Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/4_ancient_cypher_overlay.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/5_ancient_cypher.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/5_ancient_cypher.png new file mode 100644 index 0000000000..a17fcfc223 Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/5_ancient_cypher.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/5_ancient_cypher_overlay.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/5_ancient_cypher_overlay.png new file mode 100644 index 0000000000..2847ac3bdc Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/5_ancient_cypher_overlay.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/6_ancient_cypher.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/6_ancient_cypher.png new file mode 100644 index 0000000000..509b48f17d Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/6_ancient_cypher.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/6_ancient_cypher_overlay.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/6_ancient_cypher_overlay.png new file mode 100644 index 0000000000..dab10d51a5 Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/6_ancient_cypher_overlay.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/7_ancient_cypher.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/7_ancient_cypher.png new file mode 100644 index 0000000000..77f72ab422 Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/7_ancient_cypher.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/cad/7_ancient_cypher_overlay.png b/Common/src/main/resources/assets/hexcasting/textures/item/cad/7_ancient_cypher_overlay.png new file mode 100644 index 0000000000..ac56ac22cf Binary files /dev/null and b/Common/src/main/resources/assets/hexcasting/textures/item/cad/7_ancient_cypher_overlay.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_large.png b/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_large.png index b81f651b73..04bc429df4 100644 Binary files a/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_large.png and b/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_large.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_medium.png b/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_medium.png index 58adf2fc4d..90f4877fa5 100644 Binary files a/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_medium.png and b/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_medium.png differ diff --git a/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_small.png b/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_small.png index 88a87a7720..aabd00acae 100644 Binary files a/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_small.png and b/Common/src/main/resources/assets/hexcasting/textures/item/scroll_ancient_small.png differ diff --git a/Common/src/main/resources/data/hexcasting/advancements/grant_patchi_book.json b/Common/src/main/resources/data/hexcasting/advancement/grant_patchi_book.json similarity index 100% rename from Common/src/main/resources/data/hexcasting/advancements/grant_patchi_book.json rename to Common/src/main/resources/data/hexcasting/advancement/grant_patchi_book.json diff --git a/Common/src/main/resources/data/hexcasting/item_modifiers/amethyst_shard_reducer.json b/Common/src/main/resources/data/hexcasting/item_modifier/amethyst_shard_reducer.json similarity index 100% rename from Common/src/main/resources/data/hexcasting/item_modifiers/amethyst_shard_reducer.json rename to Common/src/main/resources/data/hexcasting/item_modifier/amethyst_shard_reducer.json diff --git a/Common/src/main/resources/data/hexcasting/loot_table/grant_patchi_book.json b/Common/src/main/resources/data/hexcasting/loot_table/grant_patchi_book.json new file mode 100644 index 0000000000..121f1d8144 --- /dev/null +++ b/Common/src/main/resources/data/hexcasting/loot_table/grant_patchi_book.json @@ -0,0 +1,22 @@ +{ + "type": "advancement_reward", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "patchouli:guide_book", + "functions": [ + { + "function": "set_components", + "components": { + "patchouli:book": "hexcasting:thehexbook" + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/data/hexcasting/loot_tables/grant_patchi_book.json b/Common/src/main/resources/data/hexcasting/loot_tables/grant_patchi_book.json deleted file mode 100644 index a154e45b43..0000000000 --- a/Common/src/main/resources/data/hexcasting/loot_tables/grant_patchi_book.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "advancement_reward", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "item", - "name": "patchouli:guide_book", - "functions": [ - { - "function": "set_nbt", - "tag": "{\"patchouli:book\": \"hexcasting:thehexbook\"}" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/Common/src/main/resources/data/hexcasting/recipe/patchi_book.json b/Common/src/main/resources/data/hexcasting/recipe/patchi_book.json new file mode 100644 index 0000000000..2881ee9001 --- /dev/null +++ b/Common/src/main/resources/data/hexcasting/recipe/patchi_book.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:book" + }, + { + "item": "hexcasting:amethyst_dust" + } + ], + "result": { + "components": { + "patchouli:book": "hexcasting:thehexbook" + }, + "id": "patchouli:guide_book" + } +} \ No newline at end of file diff --git a/Common/src/main/resources/data/hexcasting/recipes/patchi_book.json b/Common/src/main/resources/data/hexcasting/recipes/patchi_book.json deleted file mode 100644 index 7847622d3a..0000000000 --- a/Common/src/main/resources/data/hexcasting/recipes/patchi_book.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "patchouli:shapeless_book_recipe", - "ingredients": [ - { - "item": "minecraft:book" - }, - { - "item": "hexcasting:amethyst_dust" - } - ], - "book": "hexcasting:thehexbook" -} \ No newline at end of file diff --git a/Common/src/main/resources/data/hexcasting/tags/entity_types/cannot_teleport.json b/Common/src/main/resources/data/hexcasting/tags/entity_type/cannot_teleport.json similarity index 100% rename from Common/src/main/resources/data/hexcasting/tags/entity_types/cannot_teleport.json rename to Common/src/main/resources/data/hexcasting/tags/entity_type/cannot_teleport.json diff --git a/Common/src/main/resources/data/hexcasting/tags/entity_types/sticky_teleporters.json b/Common/src/main/resources/data/hexcasting/tags/entity_type/sticky_teleporters.json similarity index 100% rename from Common/src/main/resources/data/hexcasting/tags/entity_types/sticky_teleporters.json rename to Common/src/main/resources/data/hexcasting/tags/entity_type/sticky_teleporters.json diff --git a/Common/src/main/resources/data/minecraft/tags/items/cluster_max_harvestables.json b/Common/src/main/resources/data/minecraft/tags/item/cluster_max_harvestables.json similarity index 100% rename from Common/src/main/resources/data/minecraft/tags/items/cluster_max_harvestables.json rename to Common/src/main/resources/data/minecraft/tags/item/cluster_max_harvestables.json diff --git a/Common/src/main/resources/hexplat.accesswidener b/Common/src/main/resources/hexplat.accesswidener index d8a1955d13..613c5818a0 100644 --- a/Common/src/main/resources/hexplat.accesswidener +++ b/Common/src/main/resources/hexplat.accesswidener @@ -1,10 +1,10 @@ accessWidener v1 named -accessible class net/minecraft/client/renderer/RenderType$CompositeRenderType -accessible class net/minecraft/client/renderer/RenderType$CompositeState -accessible field net/minecraft/client/renderer/RenderType$CompositeState textureState Lnet/minecraft/client/renderer/RenderStateShard$EmptyTextureStateShard; -accessible class net/minecraft/client/renderer/RenderStateShard$EmptyTextureStateShard -accessible class net/minecraft/world/item/crafting/Ingredient$Value -accessible method net/minecraft/world/item/crafting/Ingredient (Ljava/util/stream/Stream;)V -accessible method net/minecraft/world/item/context/UseOnContext (Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/phys/BlockHitResult;)V -accessible method net/minecraft/world/damagesource/DamageSources source (Lnet/minecraft/resources/ResourceKey;)Lnet/minecraft/world/damagesource/DamageSource; -accessible method net/minecraft/world/damagesource/DamageSources source (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/entity/Entity;)Lnet/minecraft/world/damagesource/DamageSource; \ No newline at end of file +accessible class net/minecraft/client/renderer/RenderType$CompositeRenderType +accessible class net/minecraft/client/renderer/RenderType$CompositeState +accessible field net/minecraft/client/renderer/RenderType$CompositeState textureState Lnet/minecraft/client/renderer/RenderStateShard$EmptyTextureStateShard; +accessible class net/minecraft/client/renderer/RenderStateShard$EmptyTextureStateShard +accessible class net/minecraft/world/item/crafting/Ingredient$Value +accessible method net/minecraft/world/item/crafting/Ingredient (Ljava/util/stream/Stream;)V +#accessible method net/minecraft/world/item/context/UseOnContext (Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/phys/BlockHitResult;)V +#accessible method net/minecraft/world/damagesource/DamageSources source (Lnet/minecraft/resources/ResourceKey;)Lnet/minecraft/world/damagesource/DamageSource; +#accessible method net/minecraft/world/damagesource/DamageSources source (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/entity/Entity;)Lnet/minecraft/world/damagesource/DamageSource; diff --git a/Common/src/main/resources/hexplat.mixins.json b/Common/src/main/resources/hexplat.mixins.json index 11f0dde236..9c6121aa10 100644 --- a/Common/src/main/resources/hexplat.mixins.json +++ b/Common/src/main/resources/hexplat.mixins.json @@ -1,7 +1,7 @@ { "minVersion": "0.8", "required": true, - "compatibilityLevel": "JAVA_17", + "compatibilityLevel": "JAVA_21", "refmap": "hexcasting.mixins.refmap.json", "package": "at.petrak.hexcasting.mixin", "mixins": [ @@ -9,16 +9,14 @@ "MixinMob", "MixinRaider", "MixinVillager", + "MixinWanderingTrader", "MixinWitch", "accessor.AccessorAbstractArrow", - "accessor.AccessorDamageSource", "accessor.AccessorEntity", "accessor.AccessorLivingEntity", "accessor.AccessorLootTable", - "accessor.AccessorPotionBrewing", "accessor.AccessorUseOnContext", - "accessor.AccessorVillager", - "accessor.CriteriaTriggersAccessor" + "accessor.AccessorVillager" ], "client": [ "accessor.client.AccessorBlockEntityRenderDispatcher", diff --git a/Common/src/main/resources/staticdata/architecture_extensions/slate_block.json b/Common/src/main/resources/staticdata/architecture_extensions/slate_block.json index f27dcb3e6e..17a9e7e3a9 100644 --- a/Common/src/main/resources/staticdata/architecture_extensions/slate_block.json +++ b/Common/src/main/resources/staticdata/architecture_extensions/slate_block.json @@ -2,7 +2,7 @@ "only_if_present": "hexcasting", "name": "slate", "base_block": "hexcasting:slate", - "textures": "hexcasting:block/slate", + "textures": "hexcasting:block/slate_block", "recipes": "stonecutting", "map_color": "pink", "types_to_generate": [ diff --git a/Fabric/build.gradle b/Fabric/build.gradle index ff0e8b62d7..af691233b7 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -1,5 +1,6 @@ plugins { // id 'fabric-loom' version "1.8.9" + id 'com.gradleup.shadow' } architectury { @@ -12,9 +13,17 @@ pkSubproj { pkPublish = true curseforgeJar = remapJar.archiveFile - curseforgeDependencies[] + curseforgeDependencies([ + "paucal:0.6.0", "patchouli:1.20.1-80", "fabric-language-kotlin:1.9.4+kotlin.1.8.21", + "inline:1.20.1-1.0.1", "cloth-config:11.1.0", + "cardinal-components-api:5.2.1", "fabric-api:0.84" + ]) modrinthJar = remapJar.archiveFile - modrinthDependencies[] + modrinthDependencies([ + "paucal:0.6.0", "patchouli:1.20.1-80", "fabric-language-kotlin:1.9.4+kotlin.1.8.21", + "inline:1.20.1-1.0.1", "cloth-config:11.1.0", + "cardinal-components-api:5.2.1", "fabric-api:0.84" + ]) } @@ -66,13 +75,23 @@ configurations { repositories { mavenCentral() + mavenLocal() + + // serialization hooks + maven { url = "https://maven.hexxy.media" } // paucal and patchi maven { url = 'https://maven.blamejared.com' } // modmenu and clothconfig maven { url "https://maven.shedaniel.me/" } // Cardinal Components - maven { url 'https://maven.ladysnake.org/releases' } + maven { + url = "https://jitpack.io" + content { + includeGroupAndSubgroups 'com.github' + } + } + maven { url = "https://maven.ladysnake.org/releases" } maven { url "https://mvn.devos.one/snapshots/" } // EMI maven { url = "https://maven.terraformersmc.com/releases/" } @@ -98,26 +117,23 @@ dependencies { modImplementation "net.fabricmc:fabric-loader:${fabricLoaderVersion}" modImplementation "net.fabricmc.fabric-api:fabric-api:${fabricVersion}" - common(project(path: ':Common', configuration: 'namedElements')) { transitive false } + implementation(project(path: ':Common', configuration: 'namedElements')) { transitive false } shadowBundle project(path: ':Common', configuration: 'transformProductionFabric') // === MANDATORY DEPS === - modImplementation "at.petra-k:paucal:$paucalVersion+$minecraftVersion-fabric" + modCompileOnly("at.petra-k:paucal:$paucalVersion+$minecraftVersion-fabric") // dear mod devs, don't put the platform in the middle of your version code modImplementation "vazkii.patchouli:Patchouli:1.21-$patchouliVersion-FABRIC-SNAPSHOT" -// modImplementation "com.samsthenerd.inline:inline-fabric:$minecraftVersion-$inlineVersion" + modImplementation "com.samsthenerd.inline:inline-fabric:$minecraftVersion-$inlineVersion" modImplementation "io.wispforest:accessories-fabric:$accessoriesVersion" - modImplementation "dev.onyxstudios.cardinal-components-api:cardinal-components-base:$cardinalComponentsVersion" -// modImplementation "dev.onyxstudios.cardinal-components-api:cardinal-components-util:$cardinalComponentsVersion" - modImplementation "dev.onyxstudios.cardinal-components-api:cardinal-components-entity:$cardinalComponentsVersion" - modImplementation "dev.onyxstudios.cardinal-components-api:cardinal-components-item:$cardinalComponentsVersion" - modImplementation "dev.onyxstudios.cardinal-components-api:cardinal-components-block:$cardinalComponentsVersion" + modImplementation "org.ladysnake.cardinal-components-api:cardinal-components-base:$cardinalComponentsVersion" +// modImplementation "org.ladysnake.cardinal-components-api:cardinal-components-util:$cardinalComponentsVersion" + modImplementation "org.ladysnake.cardinal-components-api:cardinal-components-entity:$cardinalComponentsVersion" + modImplementation "org.ladysnake.cardinal-components-api:cardinal-components-item:$cardinalComponentsVersion" + modImplementation "org.ladysnake.cardinal-components-api:cardinal-components-block:$cardinalComponentsVersion" - // apparently the 1.18 version Just Works on 1.19 - modImplementation "${modID}:serialization-hooks:$serializationHooksVersion" - include "${modID}:serialization-hooks:$serializationHooksVersion" - implementation(include("com.github.LlamaLad7:MixinExtras:0.1.1")) + include(implementation(annotationProcessor("io.github.llamalad7:mixinextras-fabric:0.5.0"))) // === OPTIONAL DEPS === @@ -127,6 +143,12 @@ dependencies { modCompileOnly "dev.emi:emi-fabric:${emiVersion}:api" modLocalRuntime "dev.emi:emi-fabric:${emiVersion}" + modLocalRuntime "dev.architectury:architectury-fabric:$architecturyVersion" + modLocalRuntime "com.samsthenerd.inline:inline-fabric:$minecraftVersion-$inlineVersion" + modLocalRuntime "at.petra-k:paucal:$paucalVersion+$minecraftVersion-fabric" + localRuntime "hexcasting:jankson:1.2.3" + + // modImplementation "maven.modrinth:gravity-api:$gravityApiVersion" modApi("com.github.Virtuoel:Pehkui:${pehkuiVersion}", { exclude group: "net.fabricmc.fabric-api" @@ -140,9 +162,10 @@ dependencies { // i am speed // sodium is causing frustum mixin errors so don't use it // modImplementation "maven.modrinth:sodium:${sodiumVersion}" - modImplementation "maven.modrinth:lithium:${lithiumVersion}" + modImplementation "maven.modrinth:lithium:${lithiumVersion}-fabric" // modImplementation "maven.modrinth:phosphor:${phosphorVersion}" + // === OTHER STUFF === compileOnly "org.jetbrains:annotations:$jetbrainsAnnotationsVersion" testCompileOnly "org.jetbrains:annotations:$jetbrainsAnnotationsVersion" @@ -150,13 +173,6 @@ dependencies { implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' } -tasks.withType(JavaCompile) { - source(project(":Common").sourceSets.main.allSource) -} -compileKotlin { - source(project(":Common").sourceSets.main.kotlin) -} - sourcesJar { from project(":Common").sourceSets.main.allJava } @@ -173,3 +189,22 @@ processResources { expand "version": project.version } } + +shadowJar { + configurations = [project.configurations.shadowBundle] + archiveClassifier = 'dev-shadow' +} + +remapJar { + inputFile.set shadowJar.archiveFile + dependsOn shadowJar +} + +tasks.named('processResources') { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE +} +tasks.named('sourcesJar') { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE +} + +jar.finalizedBy(remapJar) \ No newline at end of file diff --git a/Fabric/gradle.properties b/Fabric/gradle.properties index 4ac5376982..1b64bee077 100644 --- a/Fabric/gradle.properties +++ b/Fabric/gradle.properties @@ -5,7 +5,7 @@ fabricLanguageKotlinVersion=1.12.3+kotlin.2.0.21 loom.platform=fabric # These are all included -cardinalComponentsVersion=6.1.1 +cardinalComponentsVersion=6.1.3 serializationHooksVersion=0.4.99999 #entityReachVersion=2.3.0 @@ -16,5 +16,7 @@ modmenuVersion=7.0.1 # Optimizations sodiumVersion=mc1.20-0.4.10+build.27 -lithiumVersion=mc1.20.1-0.11.2 +lithiumVersion=mc1.21.1-0.15.1 #phosphorVersion=mc1.19.x-0.8.1 + + diff --git a/Fabric/libs/jankson-1.2.3.jar b/Fabric/libs/jankson-1.2.3.jar new file mode 100644 index 0000000000..d5479eda0d Binary files /dev/null and b/Fabric/libs/jankson-1.2.3.jar differ diff --git a/Fabric/libs/serialization-hooks-0.4.99999.jar b/Fabric/libs/serialization-hooks-0.4.99999.jar deleted file mode 100644 index 1d48d49d7b..0000000000 Binary files a/Fabric/libs/serialization-hooks-0.4.99999.jar and /dev/null differ diff --git a/Fabric/src/generated/resources/.cache/19f2b40f78e342d65a8cb499a41e3fcb2eadaca3 b/Fabric/src/generated/resources/.cache/19f2b40f78e342d65a8cb499a41e3fcb2eadaca3 deleted file mode 100644 index 6b6009aeea..0000000000 --- a/Fabric/src/generated/resources/.cache/19f2b40f78e342d65a8cb499a41e3fcb2eadaca3 +++ /dev/null @@ -1,58 +0,0 @@ -// 1.20.1 2024-11-19T11:30:28.198417333 Hex Casting/Loot Tables -1dd4268edf7d6fa247013ab45541c7bfb915eef8 data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json -601384d888edab27efe4a33027bb557eb7cb6ca2 data/hexcasting/loot_tables/blocks/edified_log_purple.json -2c9af74a82ca462e5986354966d5a0a1fd5a2083 data/hexcasting/loot_tables/blocks/slate_tiles.json -7c9c94d5b6b570d25eff32d4fa2ecc1e842e5231 data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json -ecaeb4d5703a7aa206627ed38ee71aeb7e93d688 data/hexcasting/loot_tables/blocks/impetus/rightclick.json -a4e0194d8966a24531e43e04437cdb2a96456898 data/hexcasting/loot_tables/blocks/edified_tile.json -847bc3ead8a88a8f210a24e7732c28d50aa2f5dc data/hexcasting/loot_tables/blocks/edified_planks.json -92331eb19422730ffda0a3e52427a75aa1f7aff2 data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json -4efd95d408d050c36ff21b18f3c37116491fef92 data/hexcasting/loot_tables/blocks/directrix/redstone.json -8c6c0486170537d73b923a2b9f83722107fc8716 data/hexcasting/loot_tables/blocks/edified_log_aventurine.json -ab86e126a704550d3f21c0b43f99fdc2665e4b09 data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json -7123b1a0469d7bd5bf8a2772182d222bf354df1a data/hexcasting/loot_tables/blocks/slate_bricks_small.json -b6c23fdde4f2c22c81f008604d5ff1c32ca8eb61 data/hexcasting/loot_tables/blocks/amethyst_tiles.json -b706c8a064f717c57104c48ea42aa860b45cf7a4 data/hexcasting/loot_tables/blocks/amethyst_dust_block.json -6eecc98b606d7ea5ec6f4c1fa4f63f7c1eba9223 data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json -b19ac49146149555038e6d2e06200d514df1ef43 data/hexcasting/loot_tables/blocks/akashic_bookshelf.json -9ff760d5db5628328ea9274c98e18a08f1ab983e data/hexcasting/loot_tables/blocks/slate_block.json -2ab674e834184b4e17dc002556d4473cac137445 data/hexcasting/loot_tables/blocks/edified_slab.json -df5496da8e48b61a171bc7a3936495c016cc002e data/hexcasting/loot_tables/blocks/directrix/empty.json -49940d1cb2599212e2837d7ed66c6c66e54f80f8 data/hexcasting/loot_tables/blocks/akashic_record.json -c81a5cb81141ab1fe09dd5dd3a0968b69dfffbd7 data/hexcasting/loot_tables/blocks/stripped_edified_log.json -10cb1b94596ac7131efe3bd5c36c1543ddba9302 data/hexcasting/loot_tables/blocks/impetus/redstone.json -499af9f15cf0a7f16fd2939e5d3af60a8089cc3e data/hexcasting/loot_tables/blocks/slate_bricks.json -147e0739a712a9050856cebcad1757b3f418f647 data/hexcasting/loot_tables/blocks/edified_trapdoor.json -2ad288784b0dc106ace2e6e0a40669f83476c414 data/hexcasting/loot_tables/blocks/slate.json -6c35afda4ca349f3506fe08f86f0afe58a6f2c44 data/hexcasting/loot_tables/blocks/quenched_allay.json -e6ff979aa47877c1b807075c448defd249cd3484 data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json -55f265961463a89c243ec8ac1970c70185f064a6 data/hexcasting/loot_tables/blocks/edified_button.json -c15d3ced89c882dfe552f84435fcdd560b729567 data/hexcasting/loot_tables/blocks/scroll_paper.json -1c6b077aae560e780be29e74ddcd4b0ca10ce3cf data/hexcasting/loot_tables/blocks/impetus/empty.json -dc4c6d270b8e93d05ac8ddeb1b9dd1d64828ac5d data/hexcasting/loot_tables/blocks/stripped_edified_wood.json -a62ffbcec2aa40172e05cd9fcd8e70e295d008e9 data/hexcasting/loot_tables/blocks/edified_fence_gate.json -cc7313cc33609fe1120baa7b4db631eaa29fbba1 data/hexcasting/loot_tables/blocks/citrine_edified_leaves.json -6920654f50532b5e557646e34edc4872339eb79f data/hexcasting/loot_tables/blocks/edified_log_amethyst.json -849afa706e7479d1c11bb40ae223ae5833e71286 data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json -9905b767be7849e02a8e4ec4170af1bdde4e7fab data/hexcasting/loot_tables/blocks/edified_stairs.json -92528799c8ee13ff26c3c505e4dfb286c30f97c7 data/hexcasting/loot_tables/blocks/akashic_connector.json -45dc91d820caa5c421fe6f2afc7f71e45d6acd4d data/hexcasting/loot_tables/blocks/slate_pillar.json -1a1236e54c24b5aeff05919c73c76151da2cf115 data/hexcasting/loot_tables/blocks/amethyst_sconce.json -74159c21634679a6ab1dde1c181433db8b31c6ae data/hexcasting/loot_tables/blocks/edified_log_citrine.json -30f06db8c1ea74c9f4d95474e412336d065ac888 data/hexcasting/loot_tables/blocks/edified_door.json -95be0cf7f277257671631929462131b6d611119a data/hexcasting/loot_tables/inject/amethyst_cluster.json -bedbc2bd04f79372aedea64214ba2ea49cde9640 data/hexcasting/loot_tables/blocks/amethyst_edified_leaves.json -44658abcf122575878834d276ebcf5d8a6b7b398 data/hexcasting/loot_tables/blocks/aventurine_edified_leaves.json -cf6ff1ed1ee6fdbb05af16468a0a0ced79ac334e data/hexcasting/loot_tables/blocks/amethyst_bricks.json -45ae0ec668a07aa5b33d491377b2978f69f9f019 data/hexcasting/loot_tables/blocks/edified_panel.json -5f8d09e8c759d05cf9c2265ae28ea942cfbbe2be data/hexcasting/loot_tables/blocks/edified_pressure_plate.json -c426245d51f1e0fa0db7c4bfb454284d75506c9c data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json -0b734693c926045b60fb515814b7a6695d0295fc data/hexcasting/loot_tables/blocks/impetus/look.json -d16fa9e366d48646686470c2d1f9bda4db3a1afa data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json -2ac70e3c3600c88b2544d9755fc634216a7a523c data/hexcasting/loot_tables/blocks/edified_wood.json -509ecbb9731e75b63638c6012b2f986f131fd42f data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json -2902c4dae60875a1b2daf0a948a49a3419d8ec9d data/hexcasting/loot_tables/blocks/edified_log.json -434c2a6d2645e56e9a6ca56249ffa84645558e3b data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json -65fe724d4c4ba8b0ab7d7a11bf37687413d9119d data/hexcasting/loot_tables/blocks/edified_fence.json -f1145860d80ff053970b1ad4f3b2f5d9f28e7c73 data/hexcasting/loot_tables/blocks/directrix/boolean.json -8ea8fd68719a960c2e132df441564a70c0e376a8 data/hexcasting/loot_tables/blocks/amethyst_pillar.json diff --git a/Fabric/src/generated/resources/.cache/2ba8da2cf2d44ff18dc72cc891b094eca6836a5c b/Fabric/src/generated/resources/.cache/2ba8da2cf2d44ff18dc72cc891b094eca6836a5c deleted file mode 100644 index 262e081e97..0000000000 --- a/Fabric/src/generated/resources/.cache/2ba8da2cf2d44ff18dc72cc891b094eca6836a5c +++ /dev/null @@ -1,25 +0,0 @@ -// 1.20.1 2024-11-19T11:30:28.203782887 Hex Casting/Tags for minecraft:item -5928bad07d3872bb60f29ef4f3c885c8e1967c20 data/hexcasting/tags/items/phial_base.json -fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data/minecraft/tags/items/wooden_doors.json -fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data/minecraft/tags/items/doors.json -37cff4ce449b8069b59b2327d78e073fc026d348 data/minecraft/tags/items/wooden_pressure_plates.json -30780136e6469a01369d7e278998edb6d7f6a16b data/hexcasting/tags/items/staves.json -20183cd61968ff6548df2dde1100b6378d68d64b data/minecraft/tags/items/wooden_buttons.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/hexcasting/tags/items/edified_logs.json -e186f43ed06770e698c886691f91b2c6acdb5a2a data/hexcasting/tags/items/seal_materials.json -4461ef6db41a675fd077dd833cfd0ea537e755be data/c/tags/items/amethyst_dusts.json -5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data/minecraft/tags/items/trapdoors.json -e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data/minecraft/tags/items/planks.json -c72a147bc65d26424df199388969ebd11119aed3 data/hexcasting/tags/items/brainswept_circle_components.json -5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data/minecraft/tags/items/wooden_trapdoors.json -bdb90cee0e88e02f0b98f12d5dd212adfaca9afd data/hexcasting/tags/items/impeti.json -e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data/hexcasting/tags/items/edified_planks.json -20183cd61968ff6548df2dde1100b6378d68d64b data/minecraft/tags/items/buttons.json -38d781b60c5c37dc025d4c7e9ec5aa680f2a5835 data/c/tags/items/gems.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/minecraft/tags/items/logs_that_burn.json -ef8ae066fea6277ba2ab43faf18757b88f7c4803 data/hexcasting/tags/items/grants_root_advancement.json -5f3b600b4fd98744bd08c993ce7bcb9c2f195cd2 data/minecraft/tags/items/leaves.json -9d18fb7a889031a704ca0e553600e1d6f8c3759d data/hexcasting/tags/items/directrices.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/minecraft/tags/items/logs.json -5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data/minecraft/tags/items/slabs.json -5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data/minecraft/tags/items/wooden_slabs.json diff --git a/Fabric/src/generated/resources/.cache/3cb4ab563deee432e7d307024048f57946bafb1c b/Fabric/src/generated/resources/.cache/3cb4ab563deee432e7d307024048f57946bafb1c deleted file mode 100644 index 0177cee9a1..0000000000 --- a/Fabric/src/generated/resources/.cache/3cb4ab563deee432e7d307024048f57946bafb1c +++ /dev/null @@ -1,4 +0,0 @@ -// 1.20.1 2024-11-19T11:30:28.208319781 Hex Casting/Tags for hexcasting:action -6fe30f41e2bcd48589caab26d210a513dce1ab7c data/hexcasting/tags/action/per_world_pattern.json -6fe30f41e2bcd48589caab26d210a513dce1ab7c data/hexcasting/tags/action/requires_enlightenment.json -6fe30f41e2bcd48589caab26d210a513dce1ab7c data/hexcasting/tags/action/can_start_enlighten.json diff --git a/Fabric/src/generated/resources/.cache/812fdb58b7018b2d5c5af7da57a2b1857fa66794 b/Fabric/src/generated/resources/.cache/812fdb58b7018b2d5c5af7da57a2b1857fa66794 deleted file mode 100644 index 82cfeba7fa..0000000000 --- a/Fabric/src/generated/resources/.cache/812fdb58b7018b2d5c5af7da57a2b1857fa66794 +++ /dev/null @@ -1,34 +0,0 @@ -// 1.20.1 2024-11-19T11:30:28.20228007 Hex Casting/Tags for minecraft:block -c72a147bc65d26424df199388969ebd11119aed3 data/hexcasting/tags/blocks/brainswept_circle_components.json -357eddf3cee6f16725bed0701d57b2ca3097d74d data/minecraft/tags/blocks/mineable/shovel.json -20183cd61968ff6548df2dde1100b6378d68d64b data/minecraft/tags/blocks/buttons.json -8cd7a960fd719f200b0bf38100cd17c73b66d39c data/minecraft/tags/blocks/mineable/pickaxe.json -643994ee757a533cfb5001689e0f0263956b8a35 data/minecraft/tags/blocks/mineable/axe.json -5f3b600b4fd98744bd08c993ce7bcb9c2f195cd2 data/minecraft/tags/blocks/mineable/hoe.json -6ae561f7399e39ffa0e97bd0569aeffa9eabff6a data/hexcasting/tags/blocks/water_plants.json -e8d5ef7eabb567228b279b2419e4f042082d7491 data/minecraft/tags/blocks/fences.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/minecraft/tags/blocks/logs_that_burn.json -eba53f6c7645de4ef5ffb1e10ef34a4c23e98887 data/hexcasting/tags/blocks/cheap_to_break_block.json -7e1e353cb7f561f086898f991ece48e047991934 data/minecraft/tags/blocks/unstable_bottom_center.json -5f3b600b4fd98744bd08c993ce7bcb9c2f195cd2 data/minecraft/tags/blocks/leaves.json -281cb08b9b68ef049820c4f3f36b40820044681e data/minecraft/tags/blocks/wooden_stairs.json -6f52ca5e42991af6d7b829f626010ce304277464 data/minecraft/tags/blocks/crystal_sound_blocks.json -5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data/minecraft/tags/blocks/trapdoors.json -37cff4ce449b8069b59b2327d78e073fc026d348 data/minecraft/tags/blocks/wooden_pressure_plates.json -20183cd61968ff6548df2dde1100b6378d68d64b data/minecraft/tags/blocks/wooden_buttons.json -5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data/minecraft/tags/blocks/wooden_trapdoors.json -7acae0c88f5ead65339db1b11b16f60214434c86 data/minecraft/tags/blocks/wooden_fences.json -fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data/minecraft/tags/blocks/wooden_doors.json -7e1e353cb7f561f086898f991ece48e047991934 data/minecraft/tags/blocks/fence_gates.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/minecraft/tags/blocks/logs.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/hexcasting/tags/blocks/edified_logs.json -5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data/minecraft/tags/blocks/slabs.json -e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data/minecraft/tags/blocks/planks.json -4b84fc8b7976df220be382bdda66ecf25ceee559 data/create/tags/blocks/brittle.json -281cb08b9b68ef049820c4f3f36b40820044681e data/minecraft/tags/blocks/stairs.json -bdb90cee0e88e02f0b98f12d5dd212adfaca9afd data/hexcasting/tags/blocks/impeti.json -9d18fb7a889031a704ca0e553600e1d6f8c3759d data/hexcasting/tags/blocks/directrices.json -37cff4ce449b8069b59b2327d78e073fc026d348 data/minecraft/tags/blocks/pressure_plates.json -fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data/minecraft/tags/blocks/doors.json -5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data/minecraft/tags/blocks/wooden_slabs.json -e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data/hexcasting/tags/blocks/edified_planks.json diff --git a/Fabric/src/generated/resources/.cache/c70ef2fe5da52437c1f53bcc9ea0e416f16bcc0b b/Fabric/src/generated/resources/.cache/c70ef2fe5da52437c1f53bcc9ea0e416f16bcc0b deleted file mode 100644 index f29d046638..0000000000 --- a/Fabric/src/generated/resources/.cache/c70ef2fe5da52437c1f53bcc9ea0e416f16bcc0b +++ /dev/null @@ -1,220 +0,0 @@ -// 1.20.1 2024-11-19T11:30:28.205075318 Hex Casting/Recipes -f482a4349786388cc8f11d5550548f7d60265438 data/hexcasting/recipes/staff/mangrove.json -b10d590e918e35b16578a8b739a1c4e7e2202e16 data/hexcasting/advancements/recipes/misc/dye_colorizer_cyan.json -7aa3bf4a3d6fb92743b29dfe89d50537fefc0db9 data/hexcasting/advancements/recipes/misc/pride_colorizer_intersex.json -648f1862fde1dd8ade80b2991b8c8e3991389e95 data/hexcasting/recipes/dye_colorizer_light_blue.json -23eff6111b0385b66d3ad5fbabfc625f426517a6 data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json -a3130e3098e35b75afae4f31996d9ab7468e0bc3 data/hexcasting/advancements/recipes/tools/thought_knot.json -c8f2ad363e4d20054f4e56fde02c8775a45a7169 data/hexcasting/recipes/artifact.json -f80dbf59957be175fbcd63224005e09c4cd1a122 data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_citrine.json -2fff80cd3dabd2bc1744eecd72b2364b0f91c7c1 data/hexcasting/advancements/recipes/misc/dye_colorizer_yellow.json -9269b17eaae3217422352354fc6006c9808b398c data/hexcasting/recipes/dye_colorizer_black.json -441f336edb635e5d8c2a7183906fed1c501f06fd data/hexcasting/recipes/pride_colorizer_bisexual.json -a72a0fcc0f3a81d31b30a7a626aef537796ca73b data/hexcasting/advancements/recipes/tools/staff/quenched.json -2aa7d74e29a7c5ee4f1b8835cf7c6109eed81d77 data/hexcasting/recipes/brainsweep/quench_allay.json -2c292e12b5e85b1701740c222e5c5465799ad1dc data/hexcasting/recipes/pride_colorizer_aroace.json -5d6d73e16a36da5f9df6a7b8ac859181d401766d data/hexcasting/recipes/uuid_colorizer.json -49e706193bb57a957091e419bd0d8aa58135da1f data/hexcasting/recipes/dye_colorizer_green.json -2cea013887734cbc4971bcd57e7e4f6a2b25c8e1 data/hexcasting/advancements/recipes/tools/focus.json -36d26f34d0405ff2d1e728e5b5174502686e3590 data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json -daa7b13d5370f4306f8cdf3037fc346e8918950a data/hexcasting/recipes/dye_colorizer_brown.json -b94bc4dd4a63db10af86c524ba00eae157c1824b data/hexcasting/advancements/recipes/building_blocks/edified_fence_gate.json -9ea4fe5272ce2241d98f30359f55cfc1936c7b48 data/hexcasting/advancements/recipes/tools/staff/cherry.json -e0609202271e402d8ae58e4f8eaf11dcdda10a9e data/hexcasting/recipes/brainsweep/akashic_record.json -c3f7b03fe184ed5e54a8ae06d130adf507b7683d data/hexcasting/recipes/staff/bamboo.json -7ca0f9fc6e8ae1ad08ef5c29a0b279b891f7d8d4 data/hexcasting/advancements/recipes/misc/pride_colorizer_aroace.json -4aaefc65af5fe69d312247fdda7d983edf8dcd9a data/hexcasting/recipes/pride_colorizer_intersex.json -641d8c38b8109665314fccbebd9068ba10b04118 data/hexcasting/advancements/recipes/misc/dye_colorizer_gray.json -fd2f25b0a71806c96af5a307fad76f66de6210a4 data/hexcasting/advancements/recipes/building_blocks/slate_block.json -b1f8375aaf0d66035dee720ea59605f69fc0a154 data/hexcasting/recipes/edified_fence.json -ae88fcdecbfbdd0a0fe778467421a3b32d7ed735 data/create/recipes/crushing/amethyst_cluster.json -6ed61e03c51dc653cd66e643a6d33fe9105ff171 data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_boolean.json -8b7136c206b799a2e394aa02316b0509674ff64f data/hexcasting/advancements/recipes/tools/staff/bamboo.json -fb852d8e4bcfa7b75f41a6ac7dc1e76b00d95fb1 data/hexcasting/advancements/recipes/misc/dye_colorizer_red.json -5401828f85e709b5817ecc8464dc63e536a730dc data/hexcasting/recipes/staff/cherry.json -54335e0004423899ad37763a1d8456cc0a6e72a7 data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/charged.json -c1846dd794f5cc5814b8a839291e82512a02ba12 data/hexcasting/advancements/recipes/misc/pride_colorizer_plural.json -0ead307e47242ba140584f6bd20088a1fa7c2909 data/hexcasting/recipes/directrix/empty.json -b7084f131b0cdb9c2c698a3c5b3450d69e788d6e data/hexcasting/recipes/dye_colorizer_yellow.json -55ea553a96e1d6a54385890f7c48fe7b2bed6871 data/hexcasting/advancements/recipes/tools/trinket.json -2003fed3aa4eb622b6b07a9e65946fb40be14420 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json -1b092acfc3115702c74e141492e649d58512f259 data/hexcasting/recipes/staff/oak.json -5a90084c03d6e8424872870c8b65f4771b447f03 data/hexcasting/recipes/brainsweep/budding_amethyst.json -61e53f02baefd31308e99407d56403dfc18e36e1 data/hexcasting/recipes/akashic_connector.json -93ed0491548920bc75797d18501c750ef07fe3ea data/hexcasting/advancements/recipes/misc/pride_colorizer_bisexual.json -0f2e63a9361d18aac764f6a4a4f13b9b862ac2ee data/hexcasting/recipes/compat/create/crushing/amethyst_shard.json -c4b985635c3b1a519d7a83da65daba5bdd3a5f59 data/hexcasting/advancements/recipes/decorations/ageing_scroll_paper_lantern.json -b6720c1c73455ad817bac9b5ca2ca045c5c4050c data/hexcasting/recipes/pride_colorizer_agender.json -5f216dbb7b89fd837e2dd73e3ed41c8d412de234 data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/dust.json -903cbe4d4c4e5abcd5e006f9d0237e8c596228ba data/hexcasting/recipes/edified_tile.json -fb486df96798724da2fcc0df5706f19bc1ff94dc data/hexcasting/advancements/recipes/misc/dye_colorizer_light_blue.json -410bfde90cb977db3f13814e94484fa11fca7cfc data/hexcasting/recipes/thought_knot.json -30352d8ad510768770bb1b2d378959b7a502f825 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json -a8cab28cffdf495253a320094d202fccc5aeb113 data/hexcasting/advancements/recipes/decorations/ancient_scroll_paper_lantern.json -af8fe74b624df4a31727347b9826614a66092b0a data/hexcasting/advancements/recipes/misc/pride_colorizer_agender.json -e765ee2bd324240e8ed3d625be431de3281f0070 data/hexcasting/recipes/dye_colorizer_gray.json -a0b87b1b21506708d09c9295b7afc13de6b1fce6 data/hexcasting/recipes/pride_colorizer_aromantic.json -4d941fc399c6b7a470513a572ecd88982823da84 data/hexcasting/advancements/recipes/building_blocks/edified_wood.json -aa1caae7eba6aede0f179619488e2253b3b723dd data/hexcasting/recipes/focus_rotated.json -505eb9192df0b48867e58e09ce36b2259dc6d3e8 data/hexcasting/advancements/recipes/decorations/scroll.json -1d1e73244fb3da633d8a5f84bad93c6022a94368 data/hexcasting/advancements/recipes/misc/pride_colorizer_demiboy.json -71d38559bf455ea343ac0237a57db4d3f0833a7c data/hexcasting/advancements/recipes/misc/dye_colorizer_magenta.json -fd7c8325fcaa6a718e90c09251b447fb365523d4 data/hexcasting/recipes/pride_colorizer_demiboy.json -b5946314683e5a823b577a18d13fb437a35aafd5 data/hexcasting/recipes/decompose_quenched_shard/charged.json -011f8daf15148d4b77686c6d382d8f5c288a333d data/hexcasting/advancements/recipes/building_blocks/ancient_scroll_paper.json -494aa470790ae46baebbf24ee5b76f5885c1af1a data/hexcasting/recipes/ageing_scroll_paper_lantern.json -c6228d72ca800a7dd336e82bbb9b4f20f89de29d data/hexcasting/advancements/recipes/redstone/edified_pressure_plate.json -5889e2df2fb4e1ea29f2590b96bb3aa94961a09a data/hexcasting/recipes/scroll.json -a9111ff52513200af47b79cf98b2e545699497bb data/hexcasting/advancements/recipes/building_blocks/amethyst_tiles.json -e9166f40c8797cdbf3d8062dfa35c74f850f1000 data/hexcasting/advancements/recipes/misc/dye_colorizer_white.json -2c56c267e23e75d5a3b9358d424d69642e001b50 data/hexcasting/recipes/decompose_quenched_shard/dust.json -ea87956c49dcfabb0d39af45c016130d258181da data/hexcasting/recipes/staff/birch.json -98c0843e6a83b91820f1c720e206295eec20ff95 data/hexcasting/recipes/ancient_scroll_paper.json -bc8fe4d2f55fe119b0b146a71782a3d4788380b1 data/create/recipes/crushing/amethyst_block.json -97062771a426f6e4b9e3bfd6daa62b1d4b3c7039 data/hexcasting/recipes/abacus.json -24c244e53c7e47b85845d2ee36b1665410cf495a data/hexcasting/recipes/edified_planks.json -417695497a95436186c1a4ed842d7975d754f9eb data/hexcasting/recipes/stripped_edified_wood.json -7f2f29981df2ca4464ee0250180e670f5331f65b data/hexcasting/recipes/dye_colorizer_pink.json -ea63e49709bd80cb9f4cd1fe13e9bd0281101c9a data/hexcasting/recipes/slate.json -f64fa00d85a9abb24e89b0d2c9f818001371f5e6 data/hexcasting/recipes/slate_block.json -14f3b217e150efbbff329d67aec96f818a1da99c data/hexcasting/recipes/dye_colorizer_purple.json -9b7c5220fbaf3e84fa9e81eae322eed5d37b22d3 data/hexcasting/recipes/pride_colorizer_transgender.json -17a1adf747b99848381ca8e7c5e2cd9dd96c014f data/hexcasting/advancements/recipes/misc/default_colorizer.json -a85cfbd7988f5df0b18d160591605aea8e6808d2 data/hexcasting/recipes/trinket.json -4003f297be29810cebde4995fb2838c2c68a25ea data/hexcasting/recipes/pride_colorizer_lesbian.json -41a570f970c9af8229cb1140a11a5220fac00957 data/hexcasting/advancements/recipes/tools/staff/spruce.json -b300f7729e75614fce412457f6717686680f81da data/hexcasting/recipes/sub_sandwich.json -0b951ce7b9d1bfb07ae012b12225b595d36c6e66 data/hexcasting/recipes/amethyst_dust_packing.json -2b64261bd4aefdc55d35400f25835434f88856cf data/hexcasting/recipes/amethyst_tiles.json -963d87d2738686e5398a178b8b369228ff067403 data/hexcasting/recipes/spellbook.json -6e2dc32f975d987b8dfd329507334f647bceadc0 data/hexcasting/advancements/recipes/tools/staff/mangrove.json -996c8361766377a70e0b5a5caff3076fc6031b0a data/hexcasting/recipes/impetus/empty.json -71f821f5d24b0bf9ecd860d51e055628fe4af50c data/hexcasting/recipes/edified_panel.json -7166cd4355d11c209bc7749bc862caddcfd795fb data/hexcasting/recipes/dye_colorizer_cyan.json -f347f4ce869207e62a7887df1252505a3432e12a data/hexcasting/recipes/pride_colorizer_genderfluid.json -1b570b35288be9f6faab1536d6e45cb52eb088c0 data/hexcasting/advancements/recipes/tools/staff/dark_oak.json -31ec6474ddae967a6c1dadf9be8292d375510364 data/hexcasting/advancements/recipes/building_blocks/edified_tile.json -5e66982df6a1074c81f381898033b521ca337695 data/hexcasting/recipes/staff/quenched.json -45915b542d8070f2502a4047218679b08033b12d data/hexcasting/advancements/recipes/decorations/scroll_paper_lantern.json -946cde51bbfc2af344b078f6b39389ffc44462f4 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json -1093cccc6b1c45eb91f7c1680ef575a7bffb2744 data/hexcasting/advancements/recipes/building_blocks/edified_planks.json -72447ac69a0d85f91064180d3c852040a9e33832 data/hexcasting/recipes/pride_colorizer_asexual.json -0e792d49c81d2164e827d1bdedaa0fa358dfc437 data/hexcasting/advancements/recipes/misc/pride_colorizer_aromantic.json -b84c113ef5321c9df9ac9080de03e8d8639feab2 data/hexcasting/advancements/recipes/misc/pride_colorizer_genderqueer.json -e6a592721234448f2ee7ec402bca10a9b78b4677 data/hexcasting/advancements/recipes/decorations/slate.json -de38d15e7a91c77df24c1dc954b3e98ee197876f data/hexcasting/recipes/focus.json -157ee5fba985bbd01a87f44578890dab5489a8e5 data/hexcasting/advancements/recipes/misc/dye_colorizer_green.json -c1541738df1ee41c362ad3b9c3a9f0e181bd5c62 data/hexcasting/recipes/pride_colorizer_plural.json -233aeedc73173427e7b2287772a4f914f97b072c data/hexcasting/recipes/dye_colorizer_red.json -12bd3d04c791ef16aad5e992f038d6726229a436 data/hexcasting/advancements/recipes/tools/artifact.json -862f1a61a296a834df8a93dbd5a6cdfa2df15721 data/hexcasting/advancements/recipes/tools/staff/acacia.json -a1f9df0537c0ef33a1164cf94e8ff4b1094f889f data/hexcasting/advancements/recipes/tools/staff/warped.json -b6e762c198b9632defd7f8b11287702abecd681d data/hexcasting/recipes/staff/mindsplice.json -7c479398bbc7185a2c3efd568ad266d8109245bf data/hexcasting/advancements/recipes/redstone/edified_door.json -5fab1b9c93304a53a4c305b511704458e4593444 data/hexcasting/recipes/pride_colorizer_demigirl.json -e536791d0c6fb48206e6e30d56879eaf0a9e4bd7 data/hexcasting/recipes/akashic_bookshelf.json -b90ad4cbffc2e3c01671dfe8bda5e42d9b8a685c data/hexcasting/advancements/recipes/tools/staff/crimson.json -68ab70e0b4e432a3492767c5597ecd836f106714 data/hexcasting/advancements/recipes/tools/staff/mindsplice.json -c2ef04b311251b4eb22320b2f5313c54533a9974 data/hexcasting/advancements/recipes/tools/staff/birch.json -1a0d55e6824c078453c1d44e885a1c51ba707a41 data/hexcasting/recipes/dye_colorizer_white.json -8f8773a541bc6a4a6c55a23f4f98b5da4f61a031 data/hexcasting/recipes/scroll_paper.json -bc729ac7cf84d29a99cd34d50c152c0b9d20bd7a data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json -4a803e049915fd3c7144155ae3a1b05a917ea290 data/hexcasting/recipes/pride_colorizer_pansexual.json -8bea75fdc5e64c464dcf5f85166e767ff44e6dc2 data/hexcasting/advancements/recipes/misc/pride_colorizer_lesbian.json -0654e70ed1ed8be20ae3dd9f4955cd14f9fa40d0 data/hexcasting/advancements/recipes/tools/staff/jungle.json -5e98cec2084f0cfbb959c3ec39bd85a3369f443b data/hexcasting/advancements/recipes/tools/abacus.json -0b172aef920da7ba63fe152903ce005c1f5df5f1 data/hexcasting/recipes/staff/acacia.json -7e1a5a873d655e0efba80f22ae9b1de4f248e67a data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/shard.json -3608f0ec056f2c5d29a9a89305218497fd2c4383 data/hexcasting/recipes/stonecutting/amethyst_tiles.json -2a2f60fb0f63ee278b74c418acf04575304c521f data/hexcasting/advancements/recipes/tools/jeweler_hammer.json -8c043c7f6a7911b67324e2fd42f0b3b19a792af3 data/hexcasting/recipes/ancient_scroll_paper_lantern.json -4680e9dafcf9b60b3485609519d66eefcfd539bc data/hexcasting/recipes/staff/dark_oak.json -095aeb2882c6849f10fb6536e7c780790778e5e7 data/hexcasting/recipes/staff/jungle.json -b624d103d944a8a1d4d8a9e85c198a5492b476f8 data/hexcasting/advancements/recipes/redstone/edified_trapdoor.json -eb9ebf77f0daa32f665a60888fcda19c940f0b2f data/hexcasting/advancements/recipes/misc/pride_colorizer_demigirl.json -8f7b81add0153ad94900acc66cd8174ae7115f64 data/hexcasting/advancements/recipes/building_blocks/slate_block_from_slates.json -838b91c33a72a58aa286607eaaa17cdd6b4c90ba data/hexcasting/recipes/amethyst_sconce.json -664ce1a38c9b1c9ec21b7e078631e181fc0b2498 data/hexcasting/recipes/staff/edified.json -7522be58b09554a3f1a54d5b2343c3eab01447a3 data/hexcasting/recipes/dye_colorizer_magenta.json -ee5db13cbb33d9c62bcb1eb645e2c4bea97ad44a data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_unpacking.json -203b7035125390abb4ed77b3a4dca8f8f8f57bc5 data/hexcasting/recipes/dye_colorizer_light_gray.json -00853ec1885c1f72674c07caf6fd04904e248f8f data/hexcasting/recipes/brainsweep/directrix_boolean.json -f8ee073c1c03f1c11147e4801eeba1f86e5459ba data/hexcasting/recipes/dye_colorizer_blue.json -a366ea3750adc0d336ab8f318c40baed3f9c3eb7 data/hexcasting/recipes/brainsweep/impetus_storedplayer.json -51b047601368a103be166d907633b196d2d8a4e8 data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log.json -f4c56ea7143ce92a0ae0b663310e53644a7309f7 data/hexcasting/advancements/recipes/misc/pride_colorizer_pansexual.json -6f2634e5588aede8e29157ecc859652d8a9f4065 data/hexcasting/advancements/recipes/misc/dye_colorizer_orange.json -f1bae034d27d218bf262a8c777b787d232489f16 data/hexcasting/recipes/lens.json -06402fb37fe4bb05918d13dbfdb89f4c2b67f3ec data/hexcasting/advancements/recipes/tools/cypher.json -ed5c690324e3d9b55599f00f078ae225072a2e7f data/hexcasting/recipes/brainsweep/impetus_rightclick.json -c43fb770003c8d882fd9c1e7d1ecb5f196cba1ab data/hexcasting/recipes/cypher.json -4d5e4a6374731b2d0a90c70a5d489703fd966977 data/hexcasting/advancements/recipes/misc/dye_colorizer_lime.json -0864e8b86bdad0bf9ab2ddeb0cd5a182808b5a0a data/hexcasting/recipes/default_colorizer.json -7d71eb93bbb0856167cf4521283e39f0048078ee data/hexcasting/advancements/recipes/redstone/edified_button.json -72f70637aea1c11683e9ee91d83c2807c6ec33a9 data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_trapdoor.json -1e51cd4f527b3aea4d61d91829e47c191c9c05bb data/hexcasting/recipes/pride_colorizer_gay.json -42b8e462de1d7006de3a7658757377450e773107 data/hexcasting/advancements/recipes/misc/dye_colorizer_blue.json -775560efa36581389c0319435bda035be262ed4f data/hexcasting/advancements/recipes/building_blocks/edified_stairs.json -09096a40275b6c49d4b4e6984869aa43b34712c3 data/hexcasting/recipes/dynamicseal_focus.json -8f515bf8ccea70b3d88845ed83966dc0c66082f6 data/hexcasting/advancements/recipes/tools/staff/oak.json -b29f9d9c14e60ded1148680e2e0ef405b5a3c845 data/hexcasting/advancements/recipes/misc/uuid_colorizer.json -071e5875b13b60aac33bc97e408d2ca710ac5d02 data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json -3bf96944a8eed8b8d3f5d96b609297727c078cb7 data/hexcasting/advancements/recipes/misc/dye_colorizer_purple.json -846baaef37844216b57bb9b35e52b1bb6b56b413 data/hexcasting/advancements/recipes/decorations/scroll_small.json -db5ae3a2fda235cf1c83fd83e0026a262e668217 data/hexcasting/advancements/recipes/building_blocks/edified_slab.json -6493676f8ca93a7be8d70e25d69ddad935b3f16b data/hexcasting/advancements/recipes/tools/lens.json -a8d604ba059d54502837809815d3ac9bbcaa89bf data/hexcasting/advancements/recipes/redstone/akashic_bookshelf.json -0aaf55492e850d2bb1ec2f9986406ca61fde4cfd data/hexcasting/recipes/dye_colorizer_lime.json -dcc9bf721dd40724abcc69f1f7e8a1610dbf88f3 data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_door.json -f81053a3269c1b371be3f8057bad4803056ee0f9 data/hexcasting/recipes/dye_colorizer_orange.json -f77518b6993fe8e31de10af286c33ab72c0f9077 data/hexcasting/advancements/recipes/redstone/impetus/empty.json -3b03fdae3896212a0b8b9b3a2d4880d197e67d2d data/hexcasting/recipes/jeweler_hammer.json -d7de5d626fd799a2522af36f0c62c52fe490e6d2 data/hexcasting/recipes/edified_door.json -aa7558ec1baf6070efbe448d886e20e964e33f96 data/hexcasting/advancements/recipes/brainsweep/brainsweep/quench_allay.json -cedc2889c4f327b18755bbe8c3c595d302e2a9d0 data/hexcasting/recipes/decompose_quenched_shard/shard.json -8c52917fc7041c483fb6dfe8d16c90f096f2beaf data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_amethyst.json -40ed21dc80d39236ca0e6d2cea60861c637cf931 data/hexcasting/advancements/recipes/misc/pride_colorizer_nonbinary.json -ef96ae9709ec931ce6b6af8a539f9bc483236449 data/hexcasting/recipes/scroll_medium.json -61fafd43af83bdca6720d0993ab71f40a8bebd40 data/hexcasting/advancements/recipes/redstone/akashic_connector.json -f08a0aee92b281ae325d907e6fe4a3b03980f2aa data/hexcasting/advancements/recipes/tools/staff/edified.json -7552df3fc726cc4cdaa88aa4823eff6ce069fb75 data/hexcasting/recipes/slate_block_from_slates.json -77369113dc54d1c64b9101861dd8a1930bf1c1c4 data/hexcasting/recipes/edified_wood.json -1ad54df5eaee3d1e810d2c91bd03f626084e30b6 data/hexcasting/recipes/edified_trapdoor.json -ce9d0b976f7cc8ad4a0815bbea6c43115addb90f data/hexcasting/advancements/recipes/building_blocks/scroll_paper.json -af9a260c24e0a65eea321f0dd9dd2fa7d648707f data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_packing.json -923e7cd200518042f11474713eca9ccad126dab7 data/hexcasting/recipes/staff/spruce.json -ad647a2078099344ea7f9836a68e1bf8e8119277 data/hexcasting/advancements/recipes/misc/dye_colorizer_brown.json -0038883bd294cc8a1b324d6782478d5e37b4dbf9 data/hexcasting/advancements/recipes/misc/dye_colorizer_pink.json -170af3c83a45f9550827cc48e4bb5a621d06d685 data/hexcasting/advancements/recipes/misc/pride_colorizer_transgender.json -8815ea5d8d7379062e050adc5736cc579c3bdd9e data/hexcasting/recipes/edified_stairs.json -b6fa898369ac52cdd9d7f91e3b8a2cb881c3829f data/hexcasting/advancements/recipes/decorations/scroll_medium.json -04902d4eca30560bc601a8196d82f74f3fa5b191 data/hexcasting/recipes/dynamicseal_spellbook.json -d6b7a9392320c11866b3f139f97977dc9f55bc47 data/hexcasting/recipes/scroll_small.json -8e48c680b38666c2e7da71fbe4ceddf5d99a5cbc data/hexcasting/advancements/recipes/food/sub_sandwich.json -5e28e2c352366720ce91b73f8c8c38e217f7198d data/hexcasting/recipes/edified_fence_gate.json -004e0694b3bf53140be7df89a4defc255b800619 data/hexcasting/advancements/recipes/tools/focus_rotated.json -faaa9c39dbcdd131c5fbec9ac6a26d6dc5e72053 data/hexcasting/advancements/recipes/misc/dye_colorizer_light_gray.json -55602e415fc1b797439b674050887e9e388558c9 data/hexcasting/advancements/recipes/building_blocks/edified_panel.json -151875101066f7af5788c7a2e1c6b342971a546a data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_wood.json -0bd7c9f4a9bf29c1b63b2f9378f0a7e2f594b7b7 data/hexcasting/recipes/pride_colorizer_nonbinary.json -ea46e570a43cd3ea1cc78c51d9da45d93944730a data/hexcasting/advancements/recipes/redstone/directrix/empty.json -b20be6eb5a8b60567871444e65d773ec9a67ece1 data/hexcasting/recipes/staff/crimson.json -c03c81dc123294472e8bb6f836c319e96f8db4f5 data/hexcasting/advancements/recipes/building_blocks/edified_fence.json -92bdf87687d8823036fae6bd01782c653831286b data/hexcasting/recipes/brainsweep/impetus_look.json -06ca609ba1a32f094cf6edbc989bc9ddaf9d342c data/hexcasting/advancements/recipes/misc/pride_colorizer_genderfluid.json -552c235dc58a46a3e57913c9b9faf3f21abeae32 data/hexcasting/advancements/recipes/building_blocks/stripped_edified_wood.json -c2a0a489967db4064dfbe1ee6367e132665f3c00 data/hexcasting/recipes/edified_slab.json -1a9dd55a24f56a4e9467f1117e0898f7e71ade67 data/hexcasting/advancements/recipes/decorations/amethyst_sconce.json -27dc4a1647f264c45b27f5552fd9403a02853484 data/hexcasting/advancements/recipes/tools/spellbook.json -2eacf53894ae97712dc3874777e29dce0a0e5540 data/hexcasting/advancements/recipes/misc/pride_colorizer_asexual.json -e11aeded7f5d3fdd224627c67661bbd993901703 data/hexcasting/recipes/edified_pressure_plate.json -e691130641b11c0a030a51c71dee0ba356f3b5bd data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_aventurine.json -7baf0777533737aef68bcac36944943b77138d29 data/hexcasting/recipes/edified_button.json -63189af501442318a90c16d6951e51c0c5d6d4f3 data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_purple.json -499c5c09e3772989350f9ab3264b8692449a6dea data/hexcasting/advancements/recipes/misc/pride_colorizer_gay.json -b16ff5314d457bc7e9e224e102d1e04ce3a62361 data/hexcasting/recipes/brainsweep/directrix_redstone.json -bd63b845e02ee4b1b9abe168a196335ccbed1ca5 data/hexcasting/recipes/scroll_paper_lantern.json -afb422ad4a918ee0161bf077f09475bb1da2b4eb data/hexcasting/recipes/amethyst_dust_unpacking.json -d47352426739a0fc500a385d820d767a307e1d16 data/hexcasting/advancements/recipes/misc/dye_colorizer_black.json -f0e71ae8c6a9170669f44096a55a875d11497c56 data/hexcasting/recipes/staff/warped.json -78958099bf4337ad281580d90f434b3074ad18c8 data/hexcasting/recipes/pride_colorizer_genderqueer.json diff --git a/Fabric/src/generated/resources/data/c/tags/item/amethyst_dusts.json b/Fabric/src/generated/resources/data/c/tags/item/amethyst_dusts.json new file mode 100644 index 0000000000..d936f71efc --- /dev/null +++ b/Fabric/src/generated/resources/data/c/tags/item/amethyst_dusts.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:amethyst_dust" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/c/tags/item/gems.json b/Fabric/src/generated/resources/data/c/tags/item/gems.json new file mode 100644 index 0000000000..6c55bdef92 --- /dev/null +++ b/Fabric/src/generated/resources/data/c/tags/item/gems.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:charged_amethyst" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/c/tags/items/amethyst_dusts.json b/Fabric/src/generated/resources/data/c/tags/items/amethyst_dusts.json deleted file mode 100644 index 8fa008d02a..0000000000 --- a/Fabric/src/generated/resources/data/c/tags/items/amethyst_dusts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:amethyst_dust" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/c/tags/items/gems.json b/Fabric/src/generated/resources/data/c/tags/items/gems.json deleted file mode 100644 index e153c8295b..0000000000 --- a/Fabric/src/generated/resources/data/c/tags/items/gems.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:charged_amethyst" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/create/recipes/crushing/amethyst_block.json b/Fabric/src/generated/resources/data/create/recipes/crushing/amethyst_block.json deleted file mode 100644 index a9466b4a43..0000000000 --- a/Fabric/src/generated/resources/data/create/recipes/crushing/amethyst_block.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "create" - ] - } - ], - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:amethyst_block" - } - ], - "processingTime": 150, - "results": [ - { - "count": 3, - "item": "minecraft:amethyst_shard" - }, - { - "chance": 0.5, - "count": 4, - "item": "hexcasting:amethyst_dust" - } - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/create/recipes/crushing/amethyst_cluster.json b/Fabric/src/generated/resources/data/create/recipes/crushing/amethyst_cluster.json deleted file mode 100644 index 23069c5c26..0000000000 --- a/Fabric/src/generated/resources/data/create/recipes/crushing/amethyst_cluster.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "create" - ] - } - ], - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:amethyst_cluster" - } - ], - "processingTime": 150, - "results": [ - { - "count": 7, - "item": "minecraft:amethyst_shard" - }, - { - "count": 5, - "item": "hexcasting:amethyst_dust" - }, - { - "chance": 0.25, - "item": "hexcasting:charged_amethyst" - } - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/create/tags/block/brittle.json b/Fabric/src/generated/resources/data/create/tags/block/brittle.json new file mode 100644 index 0000000000..fb66be6093 --- /dev/null +++ b/Fabric/src/generated/resources/data/create/tags/block/brittle.json @@ -0,0 +1,8 @@ +{ + "values": [ + { + "id": "#hexcasting:slate", + "required": false + } + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/create/tags/blocks/brittle.json b/Fabric/src/generated/resources/data/create/tags/blocks/brittle.json deleted file mode 100644 index b9a7d8674d..0000000000 --- a/Fabric/src/generated/resources/data/create/tags/blocks/brittle.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "replace": false, - "values": [ - { - "id": "#hexcasting:slate", - "required": false - } - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/akashic_record.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/akashic_record.json new file mode 100644 index 0000000000..d36fd4dc3b --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/akashic_record.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:akashic_record" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:akashic_record" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/budding_amethyst.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/budding_amethyst.json new file mode 100644 index 0000000000..18f9ea380f --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/budding_amethyst.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:budding_amethyst" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:budding_amethyst" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_boolean.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_boolean.json new file mode 100644 index 0000000000..cc4c924b54 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_boolean.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:directrix_boolean" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:directrix_boolean" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_redstone.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_redstone.json new file mode 100644 index 0000000000..8a43f8bac3 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_redstone.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:directrix_redstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:directrix_redstone" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_look.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_look.json new file mode 100644 index 0000000000..939dcb6e4e --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_look.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus_look" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus_look" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_rightclick.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_rightclick.json new file mode 100644 index 0000000000..c4fc49fd24 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_rightclick.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus_rightclick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus_rightclick" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_storedplayer.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_storedplayer.json new file mode 100644 index 0000000000..31d9085f82 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_storedplayer.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus_storedplayer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus_storedplayer" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/quench_allay.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/quench_allay.json new file mode 100644 index 0000000000..6dfe849d9f --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/quench_allay.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:quench_allay" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:quench_allay" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_packing.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_packing.json new file mode 100644 index 0000000000..96746726ec --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_packing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_dust_packing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_dust_packing" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_unpacking.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_unpacking.json new file mode 100644 index 0000000000..ff10efd290 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_unpacking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_dust_unpacking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_dust_unpacking" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_tiles.json new file mode 100644 index 0000000000..a5ab663568 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_tiles.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_tiles" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_tiles" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/ancient_scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/ancient_scroll_paper.json new file mode 100644 index 0000000000..ab1194da4a --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/ancient_scroll_paper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:scroll_paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:ancient_scroll_paper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:ancient_scroll_paper" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence.json new file mode 100644 index 0000000000..31556a4ca8 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_fence" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence_gate.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence_gate.json new file mode 100644 index 0000000000..1d09e6fdf8 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_fence_gate" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_panel.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_panel.json new file mode 100644 index 0000000000..ab66016e10 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_panel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_panel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_panel" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_planks.json new file mode 100644 index 0000000000..f031431d00 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_planks" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_slab.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_slab.json new file mode 100644 index 0000000000..317bd1fd11 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_slab" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_stairs.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_stairs.json new file mode 100644 index 0000000000..069989ca28 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_stairs" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_tile.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_tile.json new file mode 100644 index 0000000000..5179827061 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_tile.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_tile" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_tile" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_wood.json new file mode 100644 index 0000000000..f0aaf4b1fd --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:edified_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_wood" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/scroll_paper.json new file mode 100644 index 0000000000..d676daa7f7 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/scroll_paper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_paper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_paper" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block.json new file mode 100644 index 0000000000..770d62ab2b --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:slate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:slate_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:slate_block" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block_from_slates.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block_from_slates.json new file mode 100644 index 0000000000..b2f96c2797 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block_from_slates.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:slate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:slate_block_from_slates" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:slate_block_from_slates" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stonecutting/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stonecutting/amethyst_tiles.json new file mode 100644 index 0000000000..3c2f410ce6 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stonecutting/amethyst_tiles.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:stonecutting/amethyst_tiles" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:stonecutting/amethyst_tiles" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stripped_edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stripped_edified_wood.json new file mode 100644 index 0000000000..4d048fc250 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stripped_edified_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:stripped_edified_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:stripped_edified_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:stripped_edified_wood" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ageing_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ageing_scroll_paper_lantern.json new file mode 100644 index 0000000000..6ae4bdbbb6 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ageing_scroll_paper_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:scroll_paper_lantern" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:ageing_scroll_paper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:ageing_scroll_paper_lantern" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/amethyst_sconce.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/amethyst_sconce.json new file mode 100644 index 0000000000..91debb7ca5 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/amethyst_sconce.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_sconce" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_sconce" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ancient_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..f36c1abfc2 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ancient_scroll_paper_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:ancient_scroll_paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:ancient_scroll_paper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:ancient_scroll_paper_lantern" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll.json new file mode 100644 index 0000000000..1bff0c5ff6 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_medium.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_medium.json new file mode 100644 index 0000000000..2dc4651527 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_medium.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_medium" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_medium" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_paper_lantern.json new file mode 100644 index 0000000000..63884d313e --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_paper_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:scroll_paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_paper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_paper_lantern" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_small.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_small.json new file mode 100644 index 0000000000..2e68c56849 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_small.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_small" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_small" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/slate.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/slate.json new file mode 100644 index 0000000000..551899a3a3 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/decorations/slate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:slate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:slate" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/food/sub_sandwich.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/food/sub_sandwich.json new file mode 100644 index 0000000000..bb64c267e5 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/food/sub_sandwich.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:sub_sandwich" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:sub_sandwich" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/charged.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/charged.json new file mode 100644 index 0000000000..b032476ae7 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/charged.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:quenched_allay_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:decompose_quenched_shard/charged" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:decompose_quenched_shard/charged" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/dust.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/dust.json new file mode 100644 index 0000000000..299d8a4550 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/dust.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:quenched_allay_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:decompose_quenched_shard/dust" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:decompose_quenched_shard/dust" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/shard.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/shard.json new file mode 100644 index 0000000000..d9f9dfbb25 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/shard.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:quenched_allay_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:decompose_quenched_shard/shard" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:decompose_quenched_shard/shard" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/default_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/default_colorizer.json new file mode 100644 index 0000000000..e04ea0f7b0 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/default_colorizer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:default_colorizer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:default_colorizer" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_black.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_black.json new file mode 100644 index 0000000000..486da412cd --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_black.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_black" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_black" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_blue.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_blue.json new file mode 100644 index 0000000000..c23b00add5 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_blue.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_blue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_blue" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_brown.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_brown.json new file mode 100644 index 0000000000..daf49d8674 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_brown.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_brown" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_brown" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_cyan.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_cyan.json new file mode 100644 index 0000000000..bc159a4f91 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_cyan.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_cyan" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_cyan" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_gray.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_gray.json new file mode 100644 index 0000000000..959c3b871a --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_gray.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_gray" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_gray" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_green.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_green.json new file mode 100644 index 0000000000..ae496bdb93 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_green.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_green" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_green" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_blue.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_blue.json new file mode 100644 index 0000000000..9e660ad5de --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_blue.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_light_blue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_light_blue" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_gray.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_gray.json new file mode 100644 index 0000000000..b2b51d665b --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_gray.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_light_gray" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_light_gray" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_lime.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_lime.json new file mode 100644 index 0000000000..b21321754b --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_lime.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_lime" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_lime" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_magenta.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_magenta.json new file mode 100644 index 0000000000..38097fe636 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_magenta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_magenta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_magenta" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_orange.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_orange.json new file mode 100644 index 0000000000..a5e2054cd0 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_orange.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_orange" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_orange" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_pink.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_pink.json new file mode 100644 index 0000000000..868366c0a4 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_pink.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_pink" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_pink" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_purple.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_purple.json new file mode 100644 index 0000000000..b9d4282404 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_purple.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_purple" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_purple" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_red.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_red.json new file mode 100644 index 0000000000..515062d384 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_red.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_red" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_red" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_white.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_white.json new file mode 100644 index 0000000000..3fbaf1ba20 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_white.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_white" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_white" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_yellow.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_yellow.json new file mode 100644 index 0000000000..e707bc9937 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_yellow.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_yellow" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_yellow" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_agender.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_agender.json new file mode 100644 index 0000000000..e07c954cd3 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_agender.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_agender" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_agender" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aroace.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aroace.json new file mode 100644 index 0000000000..8413c66774 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aroace.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_aroace" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_aroace" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aromantic.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aromantic.json new file mode 100644 index 0000000000..37604e5939 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aromantic.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_aromantic" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_aromantic" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_asexual.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_asexual.json new file mode 100644 index 0000000000..74df9afba7 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_asexual.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_asexual" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_asexual" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_bisexual.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_bisexual.json new file mode 100644 index 0000000000..a3e18ad420 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_bisexual.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_bisexual" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_bisexual" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demiboy.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demiboy.json new file mode 100644 index 0000000000..e131fc73f1 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demiboy.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_demiboy" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_demiboy" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demigirl.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demigirl.json new file mode 100644 index 0000000000..a164b59ce6 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demigirl.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_demigirl" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_demigirl" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_gay.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_gay.json new file mode 100644 index 0000000000..59c4f8fdeb --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_gay.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_gay" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_gay" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderfluid.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderfluid.json new file mode 100644 index 0000000000..5c3233fa98 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderfluid.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_genderfluid" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_genderfluid" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderqueer.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderqueer.json new file mode 100644 index 0000000000..fd6f1355ef --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderqueer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_genderqueer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_genderqueer" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_intersex.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_intersex.json new file mode 100644 index 0000000000..091329fe3f --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_intersex.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_intersex" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_intersex" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_lesbian.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_lesbian.json new file mode 100644 index 0000000000..3d4dec1d10 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_lesbian.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_lesbian" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_lesbian" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_nonbinary.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_nonbinary.json new file mode 100644 index 0000000000..83c4964af9 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_nonbinary.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_nonbinary" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_nonbinary" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_plural.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_plural.json new file mode 100644 index 0000000000..89512b05e1 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_plural.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_plural" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_plural" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_transgender.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_transgender.json new file mode 100644 index 0000000000..70dced6396 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_transgender.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_transgender" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_transgender" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/uuid_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/uuid_colorizer.json new file mode 100644 index 0000000000..fbcdbfebf4 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/misc/uuid_colorizer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:uuid_colorizer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:uuid_colorizer" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_bookshelf.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_bookshelf.json new file mode 100644 index 0000000000..44a4110650 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_bookshelf.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:akashic_bookshelf" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:akashic_bookshelf" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_ligature.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_ligature.json new file mode 100644 index 0000000000..b2a6f52851 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_ligature.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:akashic_ligature" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:akashic_ligature" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/directrix/empty.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/directrix/empty.json new file mode 100644 index 0000000000..e00a4fdf00 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/directrix/empty.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:directrix/empty" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:directrix/empty" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_button.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_button.json new file mode 100644 index 0000000000..b6cd73817c --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_button" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_door.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_door.json new file mode 100644 index 0000000000..72dce77364 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_door" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_pressure_plate.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_pressure_plate.json new file mode 100644 index 0000000000..f207372eeb --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_trapdoor.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_trapdoor.json new file mode 100644 index 0000000000..be0fadb15b --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_trapdoor" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/impetus/empty.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/impetus/empty.json new file mode 100644 index 0000000000..0b4aa3256c --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/redstone/impetus/empty.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus/empty" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus/empty" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/abacus.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/abacus.json new file mode 100644 index 0000000000..b1cb841b3e --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/abacus.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:abacus" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:abacus" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/artifact.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/artifact.json new file mode 100644 index 0000000000..221cf418c3 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/artifact.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:artifact" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:artifact" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/cypher.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/cypher.json new file mode 100644 index 0000000000..5489ea0467 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/cypher.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:cypher" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:cypher" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus.json new file mode 100644 index 0000000000..4e19de9e5e --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:focus" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:focus" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus_rotated.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus_rotated.json new file mode 100644 index 0000000000..f67d8502aa --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus_rotated.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:focus_rotated" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:focus_rotated" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/jeweler_hammer.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/jeweler_hammer.json new file mode 100644 index 0000000000..6a24d2b333 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/jeweler_hammer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:jeweler_hammer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:jeweler_hammer" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/lens.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/lens.json new file mode 100644 index 0000000000..3411cb2187 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/lens.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:lens" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:lens" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/spellbook.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/spellbook.json new file mode 100644 index 0000000000..ef5a492652 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/spellbook.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chorus": { + "conditions": { + "items": [ + { + "items": "minecraft:chorus_fruit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_focus": { + "conditions": { + "items": [ + { + "items": "hexcasting:focus" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:spellbook" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_focus", + "has_chorus" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:spellbook" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/acacia.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/acacia.json new file mode 100644 index 0000000000..c1e018b4ec --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/acacia.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/acacia" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/acacia" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/bamboo.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/bamboo.json new file mode 100644 index 0000000000..19094ad2fe --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/bamboo.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/bamboo" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/bamboo" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/birch.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/birch.json new file mode 100644 index 0000000000..ca6c180cfa --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/birch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/birch" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/birch" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/cherry.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/cherry.json new file mode 100644 index 0000000000..38107a9b52 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/cherry.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/cherry" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/cherry" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/crimson.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/crimson.json new file mode 100644 index 0000000000..da68b592c5 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/crimson.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/crimson" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/crimson" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/dark_oak.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/dark_oak.json new file mode 100644 index 0000000000..da9937e87d --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/dark_oak.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/dark_oak" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/dark_oak" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/edified.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/edified.json new file mode 100644 index 0000000000..99d19ed3bf --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/edified.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/edified" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/edified" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/jungle.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/jungle.json new file mode 100644 index 0000000000..80fe7c43f6 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/jungle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/jungle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/jungle" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mangrove.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mangrove.json new file mode 100644 index 0000000000..0064814593 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mangrove.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/mangrove" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/mangrove" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mindsplice.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mindsplice.json new file mode 100644 index 0000000000..adb60836c1 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mindsplice.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/mindsplice" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/mindsplice" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/oak.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/oak.json new file mode 100644 index 0000000000..d11084b78d --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/oak.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/oak" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/oak" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/quenched.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/quenched.json new file mode 100644 index 0000000000..1ce63b78e3 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/quenched.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/quenched" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/quenched" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/spruce.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/spruce.json new file mode 100644 index 0000000000..cbad54cf88 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/spruce.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/spruce" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/spruce" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/warped.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/warped.json new file mode 100644 index 0000000000..ffff5199c6 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/warped.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/warped" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/warped" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/thought_knot.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/thought_knot.json new file mode 100644 index 0000000000..f50c1673fa --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/thought_knot.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:thought_knot" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:thought_knot" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/trinket.json b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/trinket.json new file mode 100644 index 0000000000..17c0d69b1f --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/advancement/recipes/tools/trinket.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:trinket" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:trinket" + ] + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json deleted file mode 100644 index f82c8fda2c..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/akashic_record" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/akashic_record" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json deleted file mode 100644 index 5ee9d46ffb..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/budding_amethyst" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/budding_amethyst" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_boolean.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_boolean.json deleted file mode 100644 index bc173bd32b..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_boolean.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/directrix_boolean" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/directrix_boolean" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json deleted file mode 100644 index a6f48c1d34..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/directrix_redstone" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/directrix_redstone" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json deleted file mode 100644 index 086d039702..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/impetus_look" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/impetus_look" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json deleted file mode 100644 index 04b20e6fc7..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/impetus_rightclick" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/impetus_rightclick" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json deleted file mode 100644 index 135a08cc3f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/impetus_storedplayer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/impetus_storedplayer" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/quench_allay.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/quench_allay.json deleted file mode 100644 index 15691cf319..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/quench_allay.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/quench_allay" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/quench_allay" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_packing.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_packing.json deleted file mode 100644 index 8e0018f519..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_packing.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:amethyst_dust_packing" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_dust_packing" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_unpacking.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_unpacking.json deleted file mode 100644 index c512415070..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_unpacking.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:amethyst_dust_unpacking" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_dust_unpacking" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_tiles.json deleted file mode 100644 index 597cd897de..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_tiles.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:amethyst_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_tiles" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/ancient_scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/ancient_scroll_paper.json deleted file mode 100644 index b6ab3fb1d4..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/ancient_scroll_paper.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:scroll_paper" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:ancient_scroll_paper" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:ancient_scroll_paper" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence.json deleted file mode 100644 index 8571f6d3d4..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_fence" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_fence" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence_gate.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence_gate.json deleted file mode 100644 index aa49266e09..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence_gate.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_fence_gate" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_fence_gate" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_panel.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_panel.json deleted file mode 100644 index 6f6e2c2337..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_panel.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_panel" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_panel" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_planks.json deleted file mode 100644 index 804061465a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_planks.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_logs" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_planks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_planks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_slab.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_slab.json deleted file mode 100644 index 6643da70b9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_slab" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_stairs.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_stairs.json deleted file mode 100644 index 7a5b84d82a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_stairs.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_stairs" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_stairs" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_tile.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_tile.json deleted file mode 100644 index 2ec6b30c1f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_tile.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_tile" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_tile" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_wood.json deleted file mode 100644 index b71516d7ad..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_wood.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:edified_log" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_wood" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_wood" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/scroll_paper.json deleted file mode 100644 index fb582f87d5..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/scroll_paper.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:amethyst_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll_paper" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll_paper" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block.json deleted file mode 100644 index 163e9a2934..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_block" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_block" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block_from_slates.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block_from_slates.json deleted file mode 100644 index 12add8b1a5..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block_from_slates.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_block_from_slates" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_block_from_slates" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json deleted file mode 100644 index 2d335c5e8a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:amethyst_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/amethyst_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/amethyst_tiles" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stripped_edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stripped_edified_wood.json deleted file mode 100644 index d65dddf738..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stripped_edified_wood.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:stripped_edified_log" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stripped_edified_wood" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stripped_edified_wood" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ageing_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ageing_scroll_paper_lantern.json deleted file mode 100644 index 5108125752..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ageing_scroll_paper_lantern.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:scroll_paper_lantern" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:ageing_scroll_paper_lantern" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:ageing_scroll_paper_lantern" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/amethyst_sconce.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/amethyst_sconce.json deleted file mode 100644 index 171b4cc129..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/amethyst_sconce.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:amethyst_sconce" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_sconce" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ancient_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ancient_scroll_paper_lantern.json deleted file mode 100644 index 52289cc5d7..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ancient_scroll_paper_lantern.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:ancient_scroll_paper" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:ancient_scroll_paper_lantern" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:ancient_scroll_paper_lantern" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll.json deleted file mode 100644 index 895f37a270..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_medium.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_medium.json deleted file mode 100644 index 63a98dfc8d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_medium.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll_medium" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll_medium" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_paper_lantern.json deleted file mode 100644 index 41ac798ebc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_paper_lantern.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:scroll_paper" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll_paper_lantern" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll_paper_lantern" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_small.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_small.json deleted file mode 100644 index 5954c5786a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_small.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/slate.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/slate.json deleted file mode 100644 index 3e3481c8c3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/decorations/slate.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/food/sub_sandwich.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/food/sub_sandwich.json deleted file mode 100644 index 1acebe3d17..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/food/sub_sandwich.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:amethyst_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:sub_sandwich" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:sub_sandwich" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/charged.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/charged.json deleted file mode 100644 index b8f39b64f4..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/charged.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:decompose_quenched_shard/charged" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:decompose_quenched_shard/charged" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/dust.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/dust.json deleted file mode 100644 index c4bd1a2c6b..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/dust.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:decompose_quenched_shard/dust" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:decompose_quenched_shard/dust" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/shard.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/shard.json deleted file mode 100644 index b82d6e8ddc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/shard.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:decompose_quenched_shard/shard" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:decompose_quenched_shard/shard" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/default_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/default_colorizer.json deleted file mode 100644 index 4b94e3d969..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/default_colorizer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:default_colorizer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:default_colorizer" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_black.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_black.json deleted file mode 100644 index 68357e8330..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_black.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_black" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_black" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_blue.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_blue.json deleted file mode 100644 index b0cb050ec7..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_blue.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_blue" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_blue" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_brown.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_brown.json deleted file mode 100644 index b1d8d0917c..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_brown.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_brown" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_brown" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_cyan.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_cyan.json deleted file mode 100644 index aa88e65b3a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_cyan.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_cyan" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_cyan" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_gray.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_gray.json deleted file mode 100644 index e77b2b4530..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_gray.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_gray" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_gray" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_green.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_green.json deleted file mode 100644 index aaabb10574..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_green.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_green" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_green" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_blue.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_blue.json deleted file mode 100644 index 4cc0d01d81..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_blue.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_light_blue" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_light_blue" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_gray.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_gray.json deleted file mode 100644 index 7b475a18fe..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_gray.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_light_gray" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_light_gray" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_lime.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_lime.json deleted file mode 100644 index 08e2cf3998..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_lime.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_lime" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_lime" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_magenta.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_magenta.json deleted file mode 100644 index ef137af43d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_magenta.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_magenta" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_magenta" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_orange.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_orange.json deleted file mode 100644 index ba8b485f60..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_orange.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_orange" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_orange" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_pink.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_pink.json deleted file mode 100644 index 27e62c96d5..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_pink.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_pink" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_pink" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_purple.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_purple.json deleted file mode 100644 index 730d25023a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_purple.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_purple" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_purple" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_red.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_red.json deleted file mode 100644 index 532eb81eb6..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_red.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_red" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_red" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_white.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_white.json deleted file mode 100644 index 8decf1fb68..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_white.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_white" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_white" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_yellow.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_yellow.json deleted file mode 100644 index 9d4ee92484..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_yellow.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_yellow" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_yellow" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_agender.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_agender.json deleted file mode 100644 index 0dee46c659..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_agender.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_agender" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_agender" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aroace.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aroace.json deleted file mode 100644 index e2a9be996e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aroace.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_aroace" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_aroace" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aromantic.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aromantic.json deleted file mode 100644 index 8bea973430..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aromantic.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_aromantic" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_aromantic" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_asexual.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_asexual.json deleted file mode 100644 index 935c3b3a13..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_asexual.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_asexual" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_asexual" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_bisexual.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_bisexual.json deleted file mode 100644 index 9766430fc9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_bisexual.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_bisexual" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_bisexual" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demiboy.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demiboy.json deleted file mode 100644 index d1c0e598e0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demiboy.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_demiboy" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_demiboy" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demigirl.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demigirl.json deleted file mode 100644 index b83767cdc9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demigirl.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_demigirl" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_demigirl" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_gay.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_gay.json deleted file mode 100644 index a4d03097a3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_gay.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_gay" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_gay" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderfluid.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderfluid.json deleted file mode 100644 index 3c83445f58..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderfluid.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_genderfluid" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_genderfluid" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderqueer.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderqueer.json deleted file mode 100644 index d0a5c5ee5b..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderqueer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_genderqueer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_genderqueer" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_intersex.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_intersex.json deleted file mode 100644 index 9b1dfd07fa..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_intersex.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_intersex" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_intersex" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_lesbian.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_lesbian.json deleted file mode 100644 index 05a75a9ef3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_lesbian.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_lesbian" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_lesbian" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_nonbinary.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_nonbinary.json deleted file mode 100644 index d8faac779d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_nonbinary.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_nonbinary" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_nonbinary" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_pansexual.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_pansexual.json deleted file mode 100644 index 2938abc3e3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_pansexual.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_pansexual" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_pansexual" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_plural.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_plural.json deleted file mode 100644 index 096a3b8773..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_plural.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_plural" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_plural" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_transgender.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_transgender.json deleted file mode 100644 index ef4569ca9a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_transgender.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_transgender" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_transgender" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/uuid_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/uuid_colorizer.json deleted file mode 100644 index c2e9457bb0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/uuid_colorizer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:uuid_colorizer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:uuid_colorizer" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_bookshelf.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_bookshelf.json deleted file mode 100644 index d000cbc46a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_bookshelf.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:akashic_bookshelf" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:akashic_bookshelf" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_connector.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_connector.json deleted file mode 100644 index 595f53ddba..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_connector.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:akashic_connector" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:akashic_connector" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/directrix/empty.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/directrix/empty.json deleted file mode 100644 index 8632bebbcc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/directrix/empty.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:directrix/empty" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:directrix/empty" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_button.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_button.json deleted file mode 100644 index 191916c5b2..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_button.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_button" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_button" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_door.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_door.json deleted file mode 100644 index ea21e4a47a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_door.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_door" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_door" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_pressure_plate.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_pressure_plate.json deleted file mode 100644 index a9c62b86c9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_pressure_plate.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_pressure_plate" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_pressure_plate" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_trapdoor.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_trapdoor.json deleted file mode 100644 index cc15ca3960..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_trapdoor.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_trapdoor" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_trapdoor" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/impetus/empty.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/impetus/empty.json deleted file mode 100644 index 0343f6bd69..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/redstone/impetus/empty.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:impetus/empty" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:impetus/empty" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/abacus.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/abacus.json deleted file mode 100644 index 7349713cba..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/abacus.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:abacus" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:abacus" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/artifact.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/artifact.json deleted file mode 100644 index 7cc848539e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/artifact.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:artifact" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:artifact" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/cypher.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/cypher.json deleted file mode 100644 index 46fe0a95a4..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/cypher.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:cypher" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:cypher" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus.json deleted file mode 100644 index 4494bd1974..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:focus" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:focus" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus_rotated.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus_rotated.json deleted file mode 100644 index c1d45f0e21..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus_rotated.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:focus_rotated" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:focus_rotated" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/jeweler_hammer.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/jeweler_hammer.json deleted file mode 100644 index 0c38f6dcbd..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/jeweler_hammer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:amethyst_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:jeweler_hammer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:jeweler_hammer" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/lens.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/lens.json deleted file mode 100644 index c6820e5be0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/lens.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:lens" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:lens" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/spellbook.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/spellbook.json deleted file mode 100644 index 9ef640f920..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/spellbook.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_chorus": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:chorus_fruit" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_focus": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:focus" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:spellbook" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_focus", - "has_chorus", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:spellbook" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/acacia.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/acacia.json deleted file mode 100644 index 3517416d4d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/acacia.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/acacia" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/acacia" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/bamboo.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/bamboo.json deleted file mode 100644 index a6fa449db3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/bamboo.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/bamboo" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/bamboo" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/birch.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/birch.json deleted file mode 100644 index ca645b3d2c..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/birch.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/birch" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/birch" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/cherry.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/cherry.json deleted file mode 100644 index a28e8cbc57..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/cherry.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/cherry" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/cherry" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/crimson.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/crimson.json deleted file mode 100644 index 273e6c63c9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/crimson.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/crimson" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/crimson" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/dark_oak.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/dark_oak.json deleted file mode 100644 index 3f85a91af5..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/dark_oak.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/dark_oak" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/dark_oak" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/edified.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/edified.json deleted file mode 100644 index f311992c36..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/edified.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/edified" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/edified" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/jungle.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/jungle.json deleted file mode 100644 index e60ee05a9a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/jungle.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/jungle" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/jungle" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mangrove.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mangrove.json deleted file mode 100644 index 395c776a6e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mangrove.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/mangrove" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/mangrove" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mindsplice.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mindsplice.json deleted file mode 100644 index 70be25e6c0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mindsplice.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/mindsplice" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/mindsplice" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/oak.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/oak.json deleted file mode 100644 index 9a2a7e466c..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/oak.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/oak" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/oak" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/quenched.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/quenched.json deleted file mode 100644 index efa9566aeb..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/quenched.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/quenched" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/quenched" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/spruce.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/spruce.json deleted file mode 100644 index d9a25ac43a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/spruce.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/spruce" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/spruce" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/warped.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/warped.json deleted file mode 100644 index a4cda1f21b..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/warped.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/warped" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/warped" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/thought_knot.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/thought_knot.json deleted file mode 100644 index 86e0897a2d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/thought_knot.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:thought_knot" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:thought_knot" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/trinket.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/trinket.json deleted file mode 100644 index 09a44adcc8..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/tools/trinket.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:trinket" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:trinket" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_bookshelf.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_bookshelf.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_ligature.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_ligature.json new file mode 100644 index 0000000000..02be275bc1 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_ligature.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:akashic_ligature" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/akashic_ligature" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_record.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_record.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_record.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_record.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks_small.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks_small.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_dust_block.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_dust_block.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_dust_block.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_dust_block.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_edified_leaves.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_edified_leaves.json new file mode 100644 index 0000000000..1d66e9bbad --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_edified_leaves.json @@ -0,0 +1,54 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#c:shears" + } + } + ] + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_edified_leaves" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/amethyst_edified_leaves" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_pillar.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_pillar.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_pillar.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_pillar.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_sconce.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_sconce.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_sconce.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_sconce.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_tiles.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_tiles.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_tiles.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper_lantern.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper_lantern.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/aventurine_edified_leaves.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/aventurine_edified_leaves.json new file mode 100644 index 0000000000..19a6706346 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/aventurine_edified_leaves.json @@ -0,0 +1,54 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#c:shears" + } + } + ] + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:aventurine_edified_leaves" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/aventurine_edified_leaves" +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/citrine_edified_leaves.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/citrine_edified_leaves.json new file mode 100644 index 0000000000..8318d3456c --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/citrine_edified_leaves.json @@ -0,0 +1,54 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#c:shears" + } + } + ] + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:citrine_edified_leaves" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/citrine_edified_leaves" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/boolean.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/boolean.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/boolean.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/boolean.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/empty.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/empty.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/empty.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/empty.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/redstone.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/redstone.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/redstone.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/redstone.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_button.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_button.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_button.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_button.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_door.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_door.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_door.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_door.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence_gate.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence_gate.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence_gate.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence_gate.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_amethyst.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_amethyst.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_amethyst.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_amethyst.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_aventurine.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_aventurine.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_aventurine.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_aventurine.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_citrine.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_citrine.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_citrine.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_citrine.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_purple.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_purple.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_purple.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_purple.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_panel.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_panel.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_panel.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_panel.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_planks.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_planks.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_planks.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_pressure_plate.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_pressure_plate.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_pressure_plate.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_pressure_plate.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_slab.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_slab.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_slab.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_slab.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_stairs.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_stairs.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_stairs.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_stairs.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_tile.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_tile.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_tile.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_tile.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_trapdoor.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_trapdoor.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_trapdoor.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_trapdoor.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_wood.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_wood.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/edified_wood.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/empty.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/empty.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/empty.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/empty.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/look.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/look.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/look.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/look.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/redstone.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/redstone.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/redstone.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/redstone.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/rightclick.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/rightclick.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/rightclick.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/rightclick.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay.json new file mode 100644 index 0000000000..92c0175113 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay.json @@ -0,0 +1,69 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:air" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "chances": [ + 0.25, + 0.5, + 0.75, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "hexcasting:quenched_allay_shard" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/quenched_allay" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks_small.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks_small.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_tiles.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_tiles.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper_lantern.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper_lantern.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate.json new file mode 100644 index 0000000000..eeb8f5c955 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate.json @@ -0,0 +1,24 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "hexcasting:pattern" + ], + "source": "block_entity" + } + ], + "name": "hexcasting:slate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks_small.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks_small.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_pillar.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_pillar.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_tiles.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_tiles.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_block.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_block.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_block.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_block.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks_small.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks_small.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks_small.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_pillar.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_pillar.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_pillar.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_pillar.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_tiles.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_tiles.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_tiles.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/slate_tiles.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_log.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_log.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_log.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_log.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_wood.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_wood.json rename to Fabric/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_wood.json diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_table/inject/amethyst_cluster.json b/Fabric/src/generated/resources/data/hexcasting/loot_table/inject/amethyst_cluster.json new file mode 100644 index 0000000000..e87bc89af2 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/loot_table/inject/amethyst_cluster.json @@ -0,0 +1,211 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_dust" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_dust" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + }, + { + "chances": [ + 0.25, + 0.35, + 0.5, + 0.75, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:charged_amethyst" + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + }, + { + "chance": 0.125, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:charged_amethyst" + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:inject/amethyst_cluster" +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_connector.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_connector.json deleted file mode 100644 index 359c43e79e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_connector.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:akashic_connector" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/akashic_connector" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_edified_leaves.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_edified_leaves.json deleted file mode 100644 index 32fb8948ab..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_edified_leaves.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:any_of", - "terms": [ - { - "condition": "minecraft:any_of", - "terms": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "items": [ - "minecraft:shears" - ] - } - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "c:shears" - } - } - ] - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ] - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:amethyst_edified_leaves" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/amethyst_edified_leaves" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/aventurine_edified_leaves.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/aventurine_edified_leaves.json deleted file mode 100644 index a6d08c88dc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/aventurine_edified_leaves.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:any_of", - "terms": [ - { - "condition": "minecraft:any_of", - "terms": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "items": [ - "minecraft:shears" - ] - } - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "c:shears" - } - } - ] - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ] - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:aventurine_edified_leaves" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/aventurine_edified_leaves" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/citrine_edified_leaves.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/citrine_edified_leaves.json deleted file mode 100644 index 5df55816a5..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/citrine_edified_leaves.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:any_of", - "terms": [ - { - "condition": "minecraft:any_of", - "terms": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "items": [ - "minecraft:shears" - ] - } - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "c:shears" - } - } - ] - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ] - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:citrine_edified_leaves" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/citrine_edified_leaves" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay.json deleted file mode 100644 index 86b06b41d9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "conditions": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - ], - "name": "hexcasting:quenched_allay" - }, - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "count": { - "type": "minecraft:uniform", - "max": 4.0, - "min": 2.0 - }, - "function": "minecraft:set_count" - }, - { - "add": true, - "conditions": [ - { - "chances": [ - 0.25, - 0.5, - 0.75, - 1.0 - ], - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune" - } - ], - "count": 1.0, - "function": "minecraft:set_count" - } - ], - "name": "hexcasting:quenched_allay_shard" - } - ] - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/quenched_allay" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate.json deleted file mode 100644 index 6a7e00b7d0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "function": "minecraft:copy_nbt", - "ops": [ - { - "op": "replace", - "source": "pattern", - "target": "BlockEntityTag.pattern" - } - ], - "source": "block_entity" - } - ], - "name": "hexcasting:slate" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/slate" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/loot_tables/inject/amethyst_cluster.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/inject/amethyst_cluster.json deleted file mode 100644 index 78e1601cb1..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/inject/amethyst_cluster.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "minecraft:cluster_max_harvestables" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:amethyst_dust" - } - ], - "functions": [ - { - "add": false, - "count": { - "type": "minecraft:uniform", - "max": 4.0, - "min": 1.0 - }, - "function": "minecraft:set_count" - }, - { - "enchantment": "minecraft:fortune", - "formula": "minecraft:ore_drops", - "function": "minecraft:apply_bonus" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "minecraft:cluster_max_harvestables" - } - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:amethyst_dust" - } - ], - "functions": [ - { - "add": false, - "count": { - "type": "minecraft:uniform", - "max": 2.0, - "min": 0.0 - }, - "function": "minecraft:set_count" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "minecraft:cluster_max_harvestables" - } - }, - { - "chances": [ - 0.25, - 0.35, - 0.5, - 0.75, - 1.0 - ], - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:charged_amethyst" - } - ], - "functions": [ - { - "add": false, - "count": 1.0, - "function": "minecraft:set_count" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "minecraft:cluster_max_harvestables" - } - } - }, - { - "chance": 0.125, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:charged_amethyst" - } - ], - "functions": [ - { - "add": false, - "count": 1.0, - "function": "minecraft:set_count" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:inject/amethyst_cluster" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/abacus.json b/Fabric/src/generated/resources/data/hexcasting/recipe/abacus.json new file mode 100644 index 0000000000..76d393b033 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/abacus.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "minecraft:amethyst_shard" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "WAW", + "SAS", + "WAW" + ], + "result": { + "count": 1, + "id": "hexcasting:abacus" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/ageing_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/recipe/ageing_scroll_paper_lantern.json new file mode 100644 index 0000000000..fca2df35ca --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/ageing_scroll_paper_lantern.json @@ -0,0 +1,45 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + [ + { + "item": "minecraft:brown_dye" + }, + { + "tag": "c:brown_dye" + }, + { + "tag": "c:brown_dyes" + } + ], + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + } + ], + "result": { + "count": 8, + "id": "hexcasting:ancient_scroll_paper_lantern" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/akashic_bookshelf.json b/Fabric/src/generated/resources/data/hexcasting/recipe/akashic_bookshelf.json new file mode 100644 index 0000000000..055ac48308 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/akashic_bookshelf.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "C": { + "item": "minecraft:book" + }, + "L": { + "tag": "hexcasting:edified_logs" + }, + "P": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "LPL", + "CCC", + "LPL" + ], + "result": { + "count": 1, + "id": "hexcasting:akashic_bookshelf" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/akashic_ligature.json b/Fabric/src/generated/resources/data/hexcasting/recipe/akashic_ligature.json new file mode 100644 index 0000000000..bbcc3f83e7 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/akashic_ligature.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "1": { + "item": "hexcasting:amethyst_dust" + }, + "2": { + "item": "minecraft:amethyst_shard" + }, + "3": { + "item": "hexcasting:charged_amethyst" + }, + "L": { + "tag": "hexcasting:edified_logs" + }, + "P": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "LPL", + "123", + "LPL" + ], + "result": { + "count": 4, + "id": "hexcasting:akashic_ligature" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_dust_packing.json b/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_dust_packing.json new file mode 100644 index 0000000000..1da337229f --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_dust_packing.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "X": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + "XX", + "XX" + ], + "result": { + "count": 1, + "id": "hexcasting:amethyst_dust_block" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_dust_unpacking.json b/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_dust_unpacking.json new file mode 100644 index 0000000000..db42cb3711 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_dust_unpacking.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "hexcasting:amethyst_dust_block" + } + ], + "result": { + "count": 4, + "id": "hexcasting:amethyst_dust" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_sconce.json b/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_sconce.json new file mode 100644 index 0000000000..6c20a9e580 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_sconce.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": [ + { + "item": "minecraft:copper_ingot" + }, + { + "tag": "c:copper_ingots" + } + ], + "T": { + "item": "hexcasting:charged_amethyst" + } + }, + "pattern": [ + "T", + "B" + ], + "result": { + "count": 4, + "id": "hexcasting:amethyst_sconce" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_tiles.json new file mode 100644 index 0000000000..300139c437 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/amethyst_tiles.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:amethyst_block" + }, + "D": { + "item": "minecraft:amethyst_block" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:amethyst_tiles" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper.json new file mode 100644 index 0000000000..cef3280ce8 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper.json @@ -0,0 +1,45 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + [ + { + "item": "minecraft:brown_dye" + }, + { + "tag": "c:brown_dye" + }, + { + "tag": "c:brown_dyes" + } + ], + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + } + ], + "result": { + "count": 8, + "id": "hexcasting:ancient_scroll_paper" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..d99d9ba91b --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "minecraft:torch" + }, + "T": { + "item": "hexcasting:ancient_scroll_paper" + } + }, + "pattern": [ + "T", + "B" + ], + "result": { + "count": 1, + "id": "hexcasting:ancient_scroll_paper_lantern" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/artifact.json b/Fabric/src/generated/resources/data/hexcasting/recipe/artifact.json new file mode 100644 index 0000000000..9db7d8ad92 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/artifact.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "D": { + "tag": "minecraft:creeper_drop_music_discs" + }, + "F": [ + { + "item": "minecraft:gold_ingot" + }, + { + "tag": "c:gold_ingots" + } + ] + }, + "pattern": [ + " F ", + "FAF", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:artifact" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/akashic_record.json b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/akashic_record.json new file mode 100644 index 0000000000..750ad2dcfe --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/akashic_record.json @@ -0,0 +1,16 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:akashic_ligature" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 5, + "profession": "minecraft:librarian" + }, + "result": { + "Name": "hexcasting:akashic_record" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/budding_amethyst.json b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/budding_amethyst.json new file mode 100644 index 0000000000..0532b2e5ed --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/budding_amethyst.json @@ -0,0 +1,15 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "minecraft:amethyst_block" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 3 + }, + "result": { + "Name": "minecraft:budding_amethyst" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_boolean.json b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_boolean.json new file mode 100644 index 0000000000..5e97ada05f --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_boolean.json @@ -0,0 +1,21 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:directrix/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 1, + "profession": "minecraft:shepherd" + }, + "result": { + "Name": "hexcasting:directrix/boolean", + "Properties": { + "energized": "false", + "facing": "north", + "state": "neither" + } + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_redstone.json b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_redstone.json new file mode 100644 index 0000000000..afb314d043 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_redstone.json @@ -0,0 +1,21 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:directrix/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 1, + "profession": "minecraft:mason" + }, + "result": { + "Name": "hexcasting:directrix/redstone", + "Properties": { + "energized": "false", + "facing": "north", + "powered": "false" + } + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_look.json b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_look.json new file mode 100644 index 0000000000..7d77364f78 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_look.json @@ -0,0 +1,20 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:impetus/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 2, + "profession": "minecraft:fletcher" + }, + "result": { + "Name": "hexcasting:impetus/look", + "Properties": { + "energized": "false", + "facing": "north" + } + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_rightclick.json b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_rightclick.json new file mode 100644 index 0000000000..02fbae2538 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_rightclick.json @@ -0,0 +1,20 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:impetus/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 2, + "profession": "minecraft:toolsmith" + }, + "result": { + "Name": "hexcasting:impetus/rightclick", + "Properties": { + "energized": "false", + "facing": "north" + } + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_storedplayer.json b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_storedplayer.json new file mode 100644 index 0000000000..f79dca1d11 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_storedplayer.json @@ -0,0 +1,21 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:impetus/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 2, + "profession": "minecraft:cleric" + }, + "result": { + "Name": "hexcasting:impetus/redstone", + "Properties": { + "energized": "false", + "facing": "north", + "powered": "true" + } + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/quench_allay.json b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/quench_allay.json new file mode 100644 index 0000000000..076b4e0745 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/brainsweep/quench_allay.json @@ -0,0 +1,15 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "minecraft:amethyst_block" + }, + "cost": 100000, + "entityIn": { + "type": "hexcasting:entity_type", + "entityType": "minecraft:allay" + }, + "result": { + "Name": "hexcasting:quenched_allay" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/cypher.json b/Fabric/src/generated/resources/data/hexcasting/recipe/cypher.json new file mode 100644 index 0000000000..f45f438c5b --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/cypher.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": [ + { + "item": "minecraft:copper_ingot" + }, + { + "tag": "c:copper_ingots" + } + ], + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " C ", + "CIC", + " C " + ], + "result": { + "count": 1, + "id": "hexcasting:cypher" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/charged.json b/Fabric/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/charged.json new file mode 100644 index 0000000000..4d9e9902e8 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/charged.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "hexcasting:quenched_allay_shard" + }, + { + "item": "hexcasting:charged_amethyst" + } + ], + "result": { + "count": 4, + "id": "hexcasting:charged_amethyst" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/dust.json b/Fabric/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/dust.json new file mode 100644 index 0000000000..5023760773 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/dust.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "hexcasting:quenched_allay_shard" + }, + { + "item": "hexcasting:amethyst_dust" + } + ], + "result": { + "count": 31, + "id": "hexcasting:amethyst_dust" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/shard.json b/Fabric/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/shard.json new file mode 100644 index 0000000000..e441d9bf5f --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/shard.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "hexcasting:quenched_allay_shard" + }, + { + "item": "minecraft:amethyst_shard" + } + ], + "result": { + "count": 7, + "id": "minecraft:amethyst_shard" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/default_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/recipe/default_colorizer.json new file mode 100644 index 0000000000..b61e7ef20a --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/default_colorizer.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "hexcasting:amethyst_dust" + }, + "D": { + "item": "hexcasting:amethyst_dust" + }, + "I": { + "item": "minecraft:copper_ingot" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 1, + "id": "hexcasting:default_colorizer" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/directrix/empty.json b/Fabric/src/generated/resources/data/hexcasting/recipe/directrix/empty.json new file mode 100644 index 0000000000..986fa97d99 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/directrix/empty.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "C": { + "item": "minecraft:comparator" + }, + "O": { + "item": "minecraft:observer" + }, + "S": { + "item": "hexcasting:slate_block" + } + }, + "pattern": [ + "CSS", + "OAO", + "SSC" + ], + "result": { + "count": 1, + "id": "hexcasting:directrix/empty" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_black.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_black.json new file mode 100644 index 0000000000..43dcd86862 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_black.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:black_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_black" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_blue.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_blue.json new file mode 100644 index 0000000000..b9cd3b99c3 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_blue.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:blue_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_blue" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_brown.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_brown.json new file mode 100644 index 0000000000..f02b87049c --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_brown.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:brown_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_brown" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_cyan.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_cyan.json new file mode 100644 index 0000000000..93380132c6 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_cyan.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:cyan_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_cyan" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_gray.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_gray.json new file mode 100644 index 0000000000..c803427d5a --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_gray.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:gray_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_gray" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_green.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_green.json new file mode 100644 index 0000000000..e592b36cca --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_green.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:green_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_green" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_blue.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_blue.json new file mode 100644 index 0000000000..d8eb9b5986 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_blue.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:light_blue_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_light_blue" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_gray.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_gray.json new file mode 100644 index 0000000000..e6efc2af9a --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_gray.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:light_gray_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_light_gray" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_lime.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_lime.json new file mode 100644 index 0000000000..645db81176 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_lime.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:lime_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_lime" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_magenta.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_magenta.json new file mode 100644 index 0000000000..9476c0a098 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_magenta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:magenta_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_magenta" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_orange.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_orange.json new file mode 100644 index 0000000000..f6f815b95f --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_orange.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:orange_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_orange" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_pink.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_pink.json new file mode 100644 index 0000000000..065db19c23 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_pink.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:pink_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_pink" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_purple.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_purple.json new file mode 100644 index 0000000000..85dab6119e --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_purple.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:purple_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_purple" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_red.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_red.json new file mode 100644 index 0000000000..8acba0fc1a --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_red.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:red_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_red" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_white.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_white.json new file mode 100644 index 0000000000..d76ee9ba69 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_white.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:white_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_white" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_yellow.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_yellow.json new file mode 100644 index 0000000000..35ffbdd8df --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/dye_colorizer_yellow.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:yellow_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_yellow" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dynamicseal_focus.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dynamicseal_focus.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/recipes/dynamicseal_focus.json rename to Fabric/src/generated/resources/data/hexcasting/recipe/dynamicseal_focus.json diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json b/Fabric/src/generated/resources/data/hexcasting/recipe/dynamicseal_spellbook.json similarity index 100% rename from Neoforge/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json rename to Fabric/src/generated/resources/data/hexcasting/recipe/dynamicseal_spellbook.json diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_button.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_button.json new file mode 100644 index 0000000000..10ad25b4aa --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_button.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "ingredients": [ + { + "tag": "hexcasting:edified_planks" + } + ], + "result": { + "count": 1, + "id": "hexcasting:edified_button" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_door.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_door.json new file mode 100644 index 0000000000..6ff2941615 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_door.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WW", + "WW", + "WW" + ], + "result": { + "count": 3, + "id": "hexcasting:edified_door" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_fence.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_fence.json new file mode 100644 index 0000000000..f1a7c7ec45 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WSW", + "WSW" + ], + "result": { + "count": 3, + "id": "hexcasting:edified_fence" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_fence_gate.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_fence_gate.json new file mode 100644 index 0000000000..a38d45ca38 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_fence_gate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "SWS", + "SWS" + ], + "result": { + "count": 1, + "id": "hexcasting:edified_fence_gate" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_panel.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_panel.json new file mode 100644 index 0000000000..0baf420f31 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_panel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "tag": "hexcasting:edified_planks" + }, + "D": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "DCD", + "C C", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:edified_panel" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_planks.json new file mode 100644 index 0000000000..7ea641db71 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_planks.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "tag": "hexcasting:edified_logs" + } + ], + "result": { + "count": 4, + "id": "hexcasting:edified_planks" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_pressure_plate.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_pressure_plate.json new file mode 100644 index 0000000000..fb80df82d1 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_pressure_plate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WW" + ], + "result": { + "count": 1, + "id": "hexcasting:edified_pressure_plate" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_slab.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_slab.json new file mode 100644 index 0000000000..efda8df52a --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WWW" + ], + "result": { + "count": 6, + "id": "hexcasting:edified_slab" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_stairs.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_stairs.json new file mode 100644 index 0000000000..ca2e03f9c3 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "result": { + "count": 4, + "id": "hexcasting:edified_stairs" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_tile.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_tile.json new file mode 100644 index 0000000000..bfca8c3437 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_tile.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WW ", + "W W", + " WW" + ], + "result": { + "count": 6, + "id": "hexcasting:edified_tile" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_trapdoor.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_trapdoor.json new file mode 100644 index 0000000000..89928fcc73 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_trapdoor.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WWW", + "WWW" + ], + "result": { + "count": 2, + "id": "hexcasting:edified_trapdoor" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_wood.json new file mode 100644 index 0000000000..4e95e0bdc6 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/edified_wood.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "item": "hexcasting:edified_log" + } + }, + "pattern": [ + "WW", + "WW" + ], + "result": { + "count": 3, + "id": "hexcasting:edified_wood" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/focus.json b/Fabric/src/generated/resources/data/hexcasting/recipe/focus.json new file mode 100644 index 0000000000..011cde4d82 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/focus.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "G": [ + { + "item": "minecraft:glowstone_dust" + }, + { + "tag": "c:glowstone_dusts" + } + ], + "L": { + "item": "minecraft:leather" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "GLG", + "PAP", + "GLG" + ], + "result": { + "count": 1, + "id": "hexcasting:focus" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/focus_rotated.json b/Fabric/src/generated/resources/data/hexcasting/recipe/focus_rotated.json new file mode 100644 index 0000000000..b91b4363b9 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/focus_rotated.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "G": [ + { + "item": "minecraft:glowstone_dust" + }, + { + "tag": "c:glowstone_dusts" + } + ], + "L": { + "item": "minecraft:leather" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "GPG", + "LAL", + "GPG" + ], + "result": { + "count": 1, + "id": "hexcasting:focus" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/impetus/empty.json b/Fabric/src/generated/resources/data/hexcasting/recipe/impetus/empty.json new file mode 100644 index 0000000000..b5d3b9fd5c --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/impetus/empty.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "B": { + "item": "minecraft:iron_bars" + }, + "P": { + "item": "minecraft:purpur_block" + }, + "S": { + "item": "hexcasting:slate_block" + } + }, + "pattern": [ + "PSS", + "BAB", + "SSP" + ], + "result": { + "count": 1, + "id": "hexcasting:impetus/empty" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/jeweler_hammer.json b/Fabric/src/generated/resources/data/hexcasting/recipe/jeweler_hammer.json new file mode 100644 index 0000000000..e1ec585bb6 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/jeweler_hammer.json @@ -0,0 +1,42 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "minecraft:amethyst_shard" + }, + "I": [ + { + "item": "minecraft:iron_ingot" + }, + { + "tag": "c:iron_ingots" + } + ], + "N": [ + { + "item": "minecraft:iron_nugget" + }, + { + "tag": "c:iron_nuggets" + } + ], + "S": [ + { + "item": "minecraft:stick" + }, + { + "tag": "c:wood_sticks" + } + ] + }, + "pattern": [ + "IAN", + " S ", + " S " + ], + "result": { + "count": 1, + "id": "hexcasting:jeweler_hammer" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/lens.json b/Fabric/src/generated/resources/data/hexcasting/recipe/lens.json new file mode 100644 index 0000000000..d7e33ac36b --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/lens.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": { + "item": "minecraft:glass" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " C ", + "CIC", + " C " + ], + "result": { + "count": 1, + "id": "hexcasting:lens" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_agender.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_agender.json new file mode 100644 index 0000000000..d5401c0952 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_agender.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:glass" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_agender" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aroace.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aroace.json new file mode 100644 index 0000000000..25c32f412c --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aroace.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:wheat_seeds" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_aroace" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aromantic.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aromantic.json new file mode 100644 index 0000000000..ab923e9b61 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aromantic.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:arrow" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_aromantic" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_asexual.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_asexual.json new file mode 100644 index 0000000000..c41a3223de --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_asexual.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:bread" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_asexual" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_bisexual.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_bisexual.json new file mode 100644 index 0000000000..157dff5b64 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_bisexual.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:wheat" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_bisexual" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demiboy.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demiboy.json new file mode 100644 index 0000000000..c79d6fd805 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demiboy.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:raw_iron" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_demiboy" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demigirl.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demigirl.json new file mode 100644 index 0000000000..4a87fb83dd --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demigirl.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:raw_copper" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_demigirl" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_gay.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_gay.json new file mode 100644 index 0000000000..3922bf5fa1 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_gay.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:stone_brick_wall" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_gay" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderfluid.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderfluid.json new file mode 100644 index 0000000000..788be0d074 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderfluid.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:water_bucket" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_genderfluid" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderqueer.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderqueer.json new file mode 100644 index 0000000000..db56478852 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderqueer.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:glass_bottle" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_genderqueer" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_intersex.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_intersex.json new file mode 100644 index 0000000000..0cf8605f6e --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_intersex.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:azalea" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_intersex" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_lesbian.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_lesbian.json new file mode 100644 index 0000000000..60faeb98cb --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_lesbian.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:honeycomb" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_lesbian" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_nonbinary.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_nonbinary.json new file mode 100644 index 0000000000..1592908ece --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_nonbinary.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:moss_block" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_nonbinary" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_plural.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_plural.json new file mode 100644 index 0000000000..662aaf38fc --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_plural.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:repeater" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_plural" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_transgender.json b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_transgender.json new file mode 100644 index 0000000000..cce2b91ea8 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/pride_colorizer_transgender.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:egg" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_transgender" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/scroll.json b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll.json new file mode 100644 index 0000000000..cf7a4fcfb1 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "PPA", + "PPP", + "PPP" + ], + "result": { + "count": 1, + "id": "hexcasting:scroll" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_medium.json b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_medium.json new file mode 100644 index 0000000000..85b2a98f34 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_medium.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + " A", + "PP ", + "PP " + ], + "result": { + "count": 1, + "id": "hexcasting:scroll_medium" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_paper.json new file mode 100644 index 0000000000..1feb96a530 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_paper.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:paper" + }, + "D": { + "item": "minecraft:paper" + }, + "I": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:scroll_paper" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_paper_lantern.json new file mode 100644 index 0000000000..5434f4c7f1 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_paper_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "minecraft:torch" + }, + "T": { + "item": "hexcasting:scroll_paper" + } + }, + "pattern": [ + "T", + "B" + ], + "result": { + "count": 1, + "id": "hexcasting:scroll_paper_lantern" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_small.json b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_small.json new file mode 100644 index 0000000000..c64a3e544a --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/scroll_small.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + " A", + "P " + ], + "result": { + "count": 1, + "id": "hexcasting:scroll_small" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/slate.json b/Fabric/src/generated/resources/data/hexcasting/recipe/slate.json new file mode 100644 index 0000000000..eb718972c2 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/slate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "S": { + "item": "minecraft:deepslate" + } + }, + "pattern": [ + " A ", + "SSS" + ], + "result": { + "count": 6, + "id": "hexcasting:slate" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/slate_block.json b/Fabric/src/generated/resources/data/hexcasting/recipe/slate_block.json new file mode 100644 index 0000000000..975fea26a0 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/slate_block.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:deepslate" + }, + "D": { + "item": "minecraft:deepslate" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:slate_block" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/slate_block_from_slates.json b/Fabric/src/generated/resources/data/hexcasting/recipe/slate_block_from_slates.json new file mode 100644 index 0000000000..92bf412fdf --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/slate_block_from_slates.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "hexcasting:slate" + } + }, + "pattern": [ + "S", + "S" + ], + "result": { + "count": 1, + "id": "hexcasting:slate_block" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/spellbook.json b/Fabric/src/generated/resources/data/hexcasting/recipe/spellbook.json new file mode 100644 index 0000000000..0d8bbb5971 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/spellbook.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "B": { + "item": "minecraft:writable_book" + }, + "F": { + "item": "minecraft:chorus_fruit" + }, + "N": [ + { + "item": "minecraft:gold_nugget" + }, + { + "tag": "c:gold_nuggets" + } + ] + }, + "pattern": [ + "NBA", + "NFA", + "NBA" + ], + "result": { + "count": 1, + "id": "hexcasting:spellbook" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/acacia.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/acacia.json new file mode 100644 index 0000000000..a5e01a9c9a --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/acacia.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/acacia" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/bamboo.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/bamboo.json new file mode 100644 index 0000000000..8c648a860c --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/bamboo.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/bamboo" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/birch.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/birch.json new file mode 100644 index 0000000000..2cee68c976 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/birch.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/birch" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/cherry.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/cherry.json new file mode 100644 index 0000000000..fb19b26271 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/cherry.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/cherry" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/crimson.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/crimson.json new file mode 100644 index 0000000000..6f8b4dd09e --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/crimson.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/crimson" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/dark_oak.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/dark_oak.json new file mode 100644 index 0000000000..b4a9aea823 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/dark_oak.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/dark_oak" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/edified.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/edified.json new file mode 100644 index 0000000000..29378f8085 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/edified.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "hexcasting:edified_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/edified" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/jungle.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/jungle.json new file mode 100644 index 0000000000..a3b382cf11 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/jungle.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/jungle" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/mangrove.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/mangrove.json new file mode 100644 index 0000000000..2ad01c0d69 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/mangrove.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/mangrove" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/mindsplice.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/mindsplice.json new file mode 100644 index 0000000000..41c9e8abb0 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/mindsplice.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "hexcasting:brainswept_circle_components" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/mindsplice" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/oak.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/oak.json new file mode 100644 index 0000000000..75d6d9daab --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/oak.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/oak" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/quenched.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/quenched.json new file mode 100644 index 0000000000..91fd1fc452 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/quenched.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "hexcasting:quenched_allay_shard" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/quenched" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/spruce.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/spruce.json new file mode 100644 index 0000000000..0ab7166a60 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/spruce.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/spruce" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/staff/warped.json b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/warped.json new file mode 100644 index 0000000000..8a71b96aaf --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/staff/warped.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/warped" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/stonecutting/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/recipe/stonecutting/amethyst_tiles.json new file mode 100644 index 0000000000..7eb40a9ada --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/stonecutting/amethyst_tiles.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:amethyst_block" + }, + "result": { + "count": 1, + "id": "hexcasting:amethyst_tiles" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/stripped_edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/recipe/stripped_edified_wood.json new file mode 100644 index 0000000000..0ccb5ae8e2 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/stripped_edified_wood.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "item": "hexcasting:stripped_edified_log" + } + }, + "pattern": [ + "WW", + "WW" + ], + "result": { + "count": 3, + "id": "hexcasting:stripped_edified_wood" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/sub_sandwich.json b/Fabric/src/generated/resources/data/hexcasting/recipe/sub_sandwich.json new file mode 100644 index 0000000000..82a511fde4 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/sub_sandwich.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "minecraft:amethyst_shard" + }, + "B": { + "item": "minecraft:bread" + }, + "C": { + "item": "minecraft:cooked_beef" + }, + "S": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " SA", + " C ", + " B " + ], + "result": { + "count": 1, + "id": "hexcasting:sub_sandwich" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/thought_knot.json b/Fabric/src/generated/resources/data/hexcasting/recipe/thought_knot.json new file mode 100644 index 0000000000..d89ad83310 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/thought_knot.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "equipment", + "ingredients": [ + { + "item": "hexcasting:amethyst_dust" + }, + { + "item": "minecraft:string" + } + ], + "result": { + "count": 1, + "id": "hexcasting:thought_knot" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/trinket.json b/Fabric/src/generated/resources/data/hexcasting/recipe/trinket.json new file mode 100644 index 0000000000..f2e371553d --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/trinket.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": [ + { + "item": "minecraft:iron_ingot" + }, + { + "tag": "c:iron_ingots" + } + ], + "I": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + " C ", + "CIC", + " C " + ], + "result": { + "count": 1, + "id": "hexcasting:trinket" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipe/uuid_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/recipe/uuid_colorizer.json new file mode 100644 index 0000000000..235a2aff68 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/recipe/uuid_colorizer.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "hexcasting:amethyst_dust" + }, + "D": { + "item": "hexcasting:amethyst_dust" + }, + "I": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 1, + "id": "hexcasting:uuid_colorizer" + } +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/abacus.json b/Fabric/src/generated/resources/data/hexcasting/recipes/abacus.json deleted file mode 100644 index 0b922907fc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/abacus.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "tag": "minecraft:planks" - } - }, - "pattern": [ - "WAW", - "SAS", - "WAW" - ], - "result": { - "item": "hexcasting:abacus" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/ageing_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/recipes/ageing_scroll_paper_lantern.json deleted file mode 100644 index 9014a11a36..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/ageing_scroll_paper_lantern.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "ingredients": [ - [ - { - "item": "minecraft:brown_dye" - }, - { - "tag": "c:brown_dye" - }, - { - "tag": "c:brown_dyes" - } - ], - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - } - ], - "result": { - "count": 8, - "item": "hexcasting:ancient_scroll_paper_lantern" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/akashic_bookshelf.json b/Fabric/src/generated/resources/data/hexcasting/recipes/akashic_bookshelf.json deleted file mode 100644 index 20ea2d020a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/akashic_bookshelf.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "C": { - "item": "minecraft:book" - }, - "L": { - "tag": "hexcasting:edified_logs" - }, - "P": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "LPL", - "CCC", - "LPL" - ], - "result": { - "item": "hexcasting:akashic_bookshelf" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/akashic_connector.json b/Fabric/src/generated/resources/data/hexcasting/recipes/akashic_connector.json deleted file mode 100644 index 218b59c739..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/akashic_connector.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "1": { - "item": "hexcasting:amethyst_dust" - }, - "2": { - "item": "minecraft:amethyst_shard" - }, - "3": { - "item": "hexcasting:charged_amethyst" - }, - "L": { - "tag": "hexcasting:edified_logs" - }, - "P": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "LPL", - "123", - "LPL" - ], - "result": { - "count": 4, - "item": "hexcasting:akashic_connector" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_dust_packing.json b/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_dust_packing.json deleted file mode 100644 index a3fdd6a2bf..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_dust_packing.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "X": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - "XX", - "XX" - ], - "result": { - "item": "hexcasting:amethyst_dust_block" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_dust_unpacking.json b/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_dust_unpacking.json deleted file mode 100644 index 414db2b6f2..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_dust_unpacking.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:amethyst_dust_block" - } - ], - "result": { - "count": 4, - "item": "hexcasting:amethyst_dust" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_sconce.json b/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_sconce.json deleted file mode 100644 index 408880cf39..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_sconce.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "B": [ - { - "item": "minecraft:copper_ingot" - }, - { - "tag": "c:copper_ingots" - } - ], - "T": { - "item": "hexcasting:charged_amethyst" - } - }, - "pattern": [ - "T", - "B" - ], - "result": { - "count": 4, - "item": "hexcasting:amethyst_sconce" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_tiles.json deleted file mode 100644 index d41a67a785..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_tiles.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "C": { - "item": "minecraft:amethyst_block" - }, - "D": { - "item": "minecraft:amethyst_block" - }, - "I": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "count": 8, - "item": "hexcasting:amethyst_tiles" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper.json deleted file mode 100644 index 237738b7ee..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - [ - { - "item": "minecraft:brown_dye" - }, - { - "tag": "c:brown_dye" - }, - { - "tag": "c:brown_dyes" - } - ], - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - } - ], - "result": { - "count": 8, - "item": "hexcasting:ancient_scroll_paper" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper_lantern.json deleted file mode 100644 index 743cc6dddf..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper_lantern.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "B": { - "item": "minecraft:torch" - }, - "T": { - "item": "hexcasting:ancient_scroll_paper" - } - }, - "pattern": [ - "T", - "B" - ], - "result": { - "item": "hexcasting:ancient_scroll_paper_lantern" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/artifact.json b/Fabric/src/generated/resources/data/hexcasting/recipes/artifact.json deleted file mode 100644 index 24e47285dd..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/artifact.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "D": { - "tag": "minecraft:music_discs" - }, - "F": [ - { - "item": "minecraft:gold_ingot" - }, - { - "tag": "c:gold_ingots" - } - ] - }, - "pattern": [ - " F ", - "FAF", - " D " - ], - "result": { - "item": "hexcasting:artifact" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/akashic_record.json b/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/akashic_record.json deleted file mode 100644 index 6ff7558133..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/akashic_record.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:akashic_connector" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 5, - "profession": "librarian" - }, - "result": { - "name": "hexcasting:akashic_record" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/budding_amethyst.json b/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/budding_amethyst.json deleted file mode 100644 index b58a6ec996..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/budding_amethyst.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "minecraft:amethyst_block" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 3 - }, - "result": { - "name": "minecraft:budding_amethyst" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_boolean.json b/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_boolean.json deleted file mode 100644 index fd1c128f51..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_boolean.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:directrix/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 1, - "profession": "shepherd" - }, - "result": { - "name": "hexcasting:directrix/boolean", - "properties": { - "energized": "false", - "facing": "north", - "state": "neither" - } - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_redstone.json b/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_redstone.json deleted file mode 100644 index 3cfe40b7c0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_redstone.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:directrix/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 1, - "profession": "mason" - }, - "result": { - "name": "hexcasting:directrix/redstone", - "properties": { - "energized": "false", - "facing": "north", - "powered": "false" - } - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_look.json b/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_look.json deleted file mode 100644 index 59338fc079..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_look.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:impetus/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 2, - "profession": "fletcher" - }, - "result": { - "name": "hexcasting:impetus/look", - "properties": { - "energized": "false", - "facing": "north" - } - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_rightclick.json b/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_rightclick.json deleted file mode 100644 index 5a106bd801..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_rightclick.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:impetus/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 2, - "profession": "toolsmith" - }, - "result": { - "name": "hexcasting:impetus/rightclick", - "properties": { - "energized": "false", - "facing": "north" - } - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_storedplayer.json b/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_storedplayer.json deleted file mode 100644 index 1bef4d4633..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_storedplayer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:impetus/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 2, - "profession": "cleric" - }, - "result": { - "name": "hexcasting:impetus/redstone", - "properties": { - "energized": "false", - "facing": "north", - "powered": "true" - } - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/quench_allay.json b/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/quench_allay.json deleted file mode 100644 index d7943e7a49..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/brainsweep/quench_allay.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "minecraft:amethyst_block" - }, - "cost": 100000, - "entityIn": { - "type": "entity_type", - "entityType": "minecraft:allay" - }, - "result": { - "name": "hexcasting:quenched_allay" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/create/crushing/amethyst_shard.json b/Fabric/src/generated/resources/data/hexcasting/recipes/compat/create/crushing/amethyst_shard.json deleted file mode 100644 index 49c7336a81..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/create/crushing/amethyst_shard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "create" - ] - } - ], - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:amethyst_shard" - } - ], - "processingTime": 150, - "results": [ - { - "count": 4, - "item": "hexcasting:amethyst_dust" - }, - { - "chance": 0.5, - "item": "hexcasting:amethyst_dust" - } - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_door.json b/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_door.json deleted file mode 100644 index 69b4010db5..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_door.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "farmersdelight" - ] - } - ], - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_door" - } - ], - "result": [ - { - "item": "hexcasting:edified_planks" - } - ], - "tool": { - "type": "farmersdelight:tool", - "tag": "c:tools/axes" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_trapdoor.json b/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_trapdoor.json deleted file mode 100644 index 4c873b6e03..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_trapdoor.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "farmersdelight" - ] - } - ], - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_trapdoor" - } - ], - "result": [ - { - "item": "hexcasting:edified_planks" - } - ], - "tool": { - "type": "farmersdelight:tool", - "tag": "c:tools/axes" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_wood.json b/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_wood.json deleted file mode 100644 index 69e8a265bf..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_wood.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "farmersdelight" - ] - } - ], - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_wood" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_wood" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool", - "tag": "c:tools/axes" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log.json b/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log.json deleted file mode 100644 index 6efdf08fb9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "farmersdelight" - ] - } - ], - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool", - "tag": "c:tools/axes" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_amethyst.json b/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_amethyst.json deleted file mode 100644 index 4d6103190c..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_amethyst.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "farmersdelight" - ] - } - ], - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log_amethyst" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool", - "tag": "c:tools/axes" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_aventurine.json b/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_aventurine.json deleted file mode 100644 index d9d042afcb..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_aventurine.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "farmersdelight" - ] - } - ], - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log_aventurine" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool", - "tag": "c:tools/axes" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_citrine.json b/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_citrine.json deleted file mode 100644 index 9ee0d9a40e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_citrine.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "farmersdelight" - ] - } - ], - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log_citrine" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool", - "tag": "c:tools/axes" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_purple.json b/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_purple.json deleted file mode 100644 index 375b7e4160..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_purple.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "farmersdelight" - ] - } - ], - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log_purple" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool", - "tag": "c:tools/axes" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/cypher.json b/Fabric/src/generated/resources/data/hexcasting/recipes/cypher.json deleted file mode 100644 index 952b734751..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/cypher.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "C": [ - { - "item": "minecraft:copper_ingot" - }, - { - "tag": "c:copper_ingots" - } - ], - "I": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "result": { - "item": "hexcasting:cypher" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/charged.json b/Fabric/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/charged.json deleted file mode 100644 index 9521bacbca..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/charged.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_shard" - }, - { - "item": "hexcasting:charged_amethyst" - } - ], - "result": { - "count": 4, - "item": "hexcasting:charged_amethyst" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/dust.json b/Fabric/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/dust.json deleted file mode 100644 index 4a52d88ccf..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/dust.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_shard" - }, - { - "item": "hexcasting:amethyst_dust" - } - ], - "result": { - "count": 31, - "item": "hexcasting:amethyst_dust" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/shard.json b/Fabric/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/shard.json deleted file mode 100644 index af22d06105..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/shard.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_shard" - }, - { - "item": "minecraft:amethyst_shard" - } - ], - "result": { - "count": 7, - "item": "minecraft:amethyst_shard" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/default_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/recipes/default_colorizer.json deleted file mode 100644 index 133b5b03bd..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/default_colorizer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "hexcasting:amethyst_dust" - }, - "D": { - "item": "hexcasting:amethyst_dust" - }, - "I": { - "item": "minecraft:copper_ingot" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "item": "hexcasting:default_colorizer" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/directrix/empty.json b/Fabric/src/generated/resources/data/hexcasting/recipes/directrix/empty.json deleted file mode 100644 index b622fd8844..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/directrix/empty.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "C": { - "item": "minecraft:comparator" - }, - "O": { - "item": "minecraft:observer" - }, - "S": { - "item": "hexcasting:slate_block" - } - }, - "pattern": [ - "CSS", - "OAO", - "SSC" - ], - "result": { - "item": "hexcasting:directrix/empty" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_black.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_black.json deleted file mode 100644 index 4131cc5643..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_black.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:black_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_black" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_blue.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_blue.json deleted file mode 100644 index f9476f986d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_blue.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:blue_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_blue" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_brown.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_brown.json deleted file mode 100644 index 3d5459144d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_brown.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:brown_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_brown" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_cyan.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_cyan.json deleted file mode 100644 index 7f5167cb35..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_cyan.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:cyan_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_cyan" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_gray.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_gray.json deleted file mode 100644 index c491dd7650..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_gray.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:gray_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_gray" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_green.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_green.json deleted file mode 100644 index 96665a82f9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_green.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:green_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_green" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_blue.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_blue.json deleted file mode 100644 index 85d69c57b3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_blue.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:light_blue_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_light_blue" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_gray.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_gray.json deleted file mode 100644 index 2d66ef7c2a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_gray.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:light_gray_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_light_gray" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_lime.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_lime.json deleted file mode 100644 index f35899f58f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_lime.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:lime_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_lime" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_magenta.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_magenta.json deleted file mode 100644 index 0449c7a303..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_magenta.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:magenta_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_magenta" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_orange.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_orange.json deleted file mode 100644 index fd2b480a12..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_orange.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:orange_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_orange" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_pink.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_pink.json deleted file mode 100644 index e208a43556..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_pink.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:pink_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_pink" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_purple.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_purple.json deleted file mode 100644 index da671f3ea5..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_purple.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:purple_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_purple" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_red.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_red.json deleted file mode 100644 index 3ff5f19d65..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_red.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:red_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_red" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_white.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_white.json deleted file mode 100644 index 8902cb1a1e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_white.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:white_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_white" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_yellow.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_yellow.json deleted file mode 100644 index 1bddee39eb..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dye_colorizer_yellow.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:yellow_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_yellow" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_button.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_button.json deleted file mode 100644 index 6e250ed1b2..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_button.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "redstone", - "ingredients": [ - { - "tag": "hexcasting:edified_planks" - } - ], - "result": { - "item": "hexcasting:edified_button" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_door.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_door.json deleted file mode 100644 index 899954c7ee..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_door.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WW", - "WW", - "WW" - ], - "result": { - "count": 3, - "item": "hexcasting:edified_door" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_fence.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_fence.json deleted file mode 100644 index 25458e77e7..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_fence.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "S": { - "item": "minecraft:stick" - }, - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WSW", - "WSW" - ], - "result": { - "count": 3, - "item": "hexcasting:edified_fence" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_fence_gate.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_fence_gate.json deleted file mode 100644 index 799b582fb9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_fence_gate.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "S": { - "item": "minecraft:stick" - }, - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "SWS", - "SWS" - ], - "result": { - "item": "hexcasting:edified_fence_gate" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_panel.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_panel.json deleted file mode 100644 index af912d5628..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_panel.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "C": { - "tag": "hexcasting:edified_planks" - }, - "D": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "DCD", - "C C", - "DCD" - ], - "result": { - "count": 8, - "item": "hexcasting:edified_panel" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_planks.json deleted file mode 100644 index 10317d4b79..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_planks.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "tag": "hexcasting:edified_logs" - } - ], - "result": { - "count": 4, - "item": "hexcasting:edified_planks" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_pressure_plate.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_pressure_plate.json deleted file mode 100644 index 3a1d77b05a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_pressure_plate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WW" - ], - "result": { - "item": "hexcasting:edified_pressure_plate" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_slab.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_slab.json deleted file mode 100644 index 83458a02bc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_slab.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WWW" - ], - "result": { - "count": 6, - "item": "hexcasting:edified_slab" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_stairs.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_stairs.json deleted file mode 100644 index cd17064167..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_stairs.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "W ", - "WW ", - "WWW" - ], - "result": { - "count": 4, - "item": "hexcasting:edified_stairs" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_tile.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_tile.json deleted file mode 100644 index a19f9d35b0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_tile.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WW ", - "W W", - " WW" - ], - "result": { - "count": 6, - "item": "hexcasting:edified_tile" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_trapdoor.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_trapdoor.json deleted file mode 100644 index fbe3f9b3da..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_trapdoor.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WWW", - "WWW" - ], - "result": { - "count": 2, - "item": "hexcasting:edified_trapdoor" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/recipes/edified_wood.json deleted file mode 100644 index 17a530245a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/edified_wood.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "item": "hexcasting:edified_log" - } - }, - "pattern": [ - "WW", - "WW" - ], - "result": { - "count": 3, - "item": "hexcasting:edified_wood" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/focus.json b/Fabric/src/generated/resources/data/hexcasting/recipes/focus.json deleted file mode 100644 index 6c717fab81..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/focus.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "G": [ - { - "item": "minecraft:glowstone_dust" - }, - { - "tag": "c:glowstone_dusts" - } - ], - "L": { - "item": "minecraft:leather" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - "GLG", - "PAP", - "GLG" - ], - "result": { - "item": "hexcasting:focus" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/focus_rotated.json b/Fabric/src/generated/resources/data/hexcasting/recipes/focus_rotated.json deleted file mode 100644 index 64b5c1fd81..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/focus_rotated.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "G": [ - { - "item": "minecraft:glowstone_dust" - }, - { - "tag": "c:glowstone_dusts" - } - ], - "L": { - "item": "minecraft:leather" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - "GPG", - "LAL", - "GPG" - ], - "result": { - "item": "hexcasting:focus" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/impetus/empty.json b/Fabric/src/generated/resources/data/hexcasting/recipes/impetus/empty.json deleted file mode 100644 index c0f772d643..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/impetus/empty.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "B": { - "item": "minecraft:iron_bars" - }, - "P": { - "item": "minecraft:purpur_block" - }, - "S": { - "item": "hexcasting:slate_block" - } - }, - "pattern": [ - "PSS", - "BAB", - "SSP" - ], - "result": { - "item": "hexcasting:impetus/empty" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/jeweler_hammer.json b/Fabric/src/generated/resources/data/hexcasting/recipes/jeweler_hammer.json deleted file mode 100644 index 8832d19167..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/jeweler_hammer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "I": [ - { - "item": "minecraft:iron_ingot" - }, - { - "tag": "c:iron_ingots" - } - ], - "N": [ - { - "item": "minecraft:iron_nugget" - }, - { - "tag": "c:iron_nuggets" - } - ], - "S": [ - { - "item": "minecraft:stick" - }, - { - "tag": "c:wood_sticks" - } - ] - }, - "pattern": [ - "IAN", - " S ", - " S " - ], - "result": { - "item": "hexcasting:jeweler_hammer" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/lens.json b/Fabric/src/generated/resources/data/hexcasting/recipes/lens.json deleted file mode 100644 index e91c62a012..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/lens.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "C": { - "item": "minecraft:glass" - }, - "I": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "result": { - "item": "hexcasting:lens" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_agender.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_agender.json deleted file mode 100644 index d92f22f1df..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_agender.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:glass" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_agender" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aroace.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aroace.json deleted file mode 100644 index cc747fec3e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aroace.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:wheat_seeds" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_aroace" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aromantic.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aromantic.json deleted file mode 100644 index 421af44c47..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aromantic.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:arrow" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_aromantic" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_asexual.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_asexual.json deleted file mode 100644 index 75245d5013..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_asexual.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:bread" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_asexual" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_bisexual.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_bisexual.json deleted file mode 100644 index 3f13a25e91..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_bisexual.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:wheat" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_bisexual" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demiboy.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demiboy.json deleted file mode 100644 index 9ff3ece1ec..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demiboy.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:raw_iron" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_demiboy" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demigirl.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demigirl.json deleted file mode 100644 index e8a8322040..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demigirl.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:raw_copper" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_demigirl" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_gay.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_gay.json deleted file mode 100644 index da08d7d2e0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_gay.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:stone_brick_wall" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_gay" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderfluid.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderfluid.json deleted file mode 100644 index ee84a87e50..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderfluid.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:water_bucket" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_genderfluid" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderqueer.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderqueer.json deleted file mode 100644 index a5d706b3f3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderqueer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:glass_bottle" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_genderqueer" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_intersex.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_intersex.json deleted file mode 100644 index 592a3f5cf2..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_intersex.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:azalea" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_intersex" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_lesbian.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_lesbian.json deleted file mode 100644 index eefd174c3b..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_lesbian.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:honeycomb" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_lesbian" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_nonbinary.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_nonbinary.json deleted file mode 100644 index 87d59afe53..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_nonbinary.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:moss_block" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_nonbinary" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_pansexual.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_pansexual.json deleted file mode 100644 index d5f1d3054f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_pansexual.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "type": "hexcasting:mod_conditional", - "default": { - "item": "minecraft:carrot" - }, - "if_loaded": { - "item": "farmersdelight:skillet" - }, - "modid": "farmersdelight" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_pansexual" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_plural.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_plural.json deleted file mode 100644 index 9b616724e0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_plural.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:repeater" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_plural" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_transgender.json b/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_transgender.json deleted file mode 100644 index cb09eaa35e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/pride_colorizer_transgender.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:egg" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_transgender" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll.json b/Fabric/src/generated/resources/data/hexcasting/recipes/scroll.json deleted file mode 100644 index 50fa3bb410..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "hexcasting:amethyst_dust" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - "PPA", - "PPP", - "PPP" - ], - "result": { - "item": "hexcasting:scroll" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_medium.json b/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_medium.json deleted file mode 100644 index ad3445812d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_medium.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "hexcasting:amethyst_dust" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - " A", - "PP ", - "PP " - ], - "result": { - "item": "hexcasting:scroll_medium" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_paper.json deleted file mode 100644 index 18c3c67bec..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_paper.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "C": { - "item": "minecraft:paper" - }, - "D": { - "item": "minecraft:paper" - }, - "I": { - "item": "minecraft:amethyst_shard" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "count": 8, - "item": "hexcasting:scroll_paper" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_paper_lantern.json deleted file mode 100644 index 3b9aa6a140..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_paper_lantern.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "B": { - "item": "minecraft:torch" - }, - "T": { - "item": "hexcasting:scroll_paper" - } - }, - "pattern": [ - "T", - "B" - ], - "result": { - "item": "hexcasting:scroll_paper_lantern" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_small.json b/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_small.json deleted file mode 100644 index 1772485731..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/scroll_small.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "hexcasting:amethyst_dust" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - " A", - "P " - ], - "result": { - "item": "hexcasting:scroll_small" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate.json deleted file mode 100644 index 43863d1aa2..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "hexcasting:amethyst_dust" - }, - "S": { - "item": "minecraft:deepslate" - } - }, - "pattern": [ - " A ", - "SSS" - ], - "result": { - "count": 6, - "item": "hexcasting:slate" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_block.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_block.json deleted file mode 100644 index 5bd7d2052f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_block.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "C": { - "item": "minecraft:deepslate" - }, - "D": { - "item": "minecraft:deepslate" - }, - "I": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "count": 8, - "item": "hexcasting:slate_block" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_block_from_slates.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_block_from_slates.json deleted file mode 100644 index a04d33319a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_block_from_slates.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "S": { - "item": "hexcasting:slate" - } - }, - "pattern": [ - "S", - "S" - ], - "result": { - "item": "hexcasting:slate_block" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/spellbook.json b/Fabric/src/generated/resources/data/hexcasting/recipes/spellbook.json deleted file mode 100644 index f3dcf64681..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/spellbook.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "B": { - "item": "minecraft:writable_book" - }, - "F": { - "item": "minecraft:chorus_fruit" - }, - "N": [ - { - "item": "minecraft:gold_nugget" - }, - { - "tag": "c:gold_nuggets" - } - ] - }, - "pattern": [ - "NBA", - "NFA", - "NBA" - ], - "result": { - "item": "hexcasting:spellbook" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/acacia.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/acacia.json deleted file mode 100644 index b6dcd43429..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/acacia.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:acacia_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/acacia" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/bamboo.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/bamboo.json deleted file mode 100644 index 2796a8b049..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/bamboo.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:bamboo_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/bamboo" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/birch.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/birch.json deleted file mode 100644 index 7c91ab627a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/birch.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:birch_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/birch" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/cherry.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/cherry.json deleted file mode 100644 index 36a96851b0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/cherry.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:cherry_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/cherry" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/crimson.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/crimson.json deleted file mode 100644 index 105a164cfc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/crimson.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:crimson_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/crimson" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/dark_oak.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/dark_oak.json deleted file mode 100644 index 14ed432aa3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/dark_oak.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:dark_oak_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/dark_oak" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/edified.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/edified.json deleted file mode 100644 index 8ce0918491..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/edified.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "hexcasting:edified_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/edified" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/jungle.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/jungle.json deleted file mode 100644 index 383db50fce..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/jungle.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:jungle_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/jungle" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/mangrove.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/mangrove.json deleted file mode 100644 index 33fb46a8ab..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/mangrove.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:mangrove_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/mangrove" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/mindsplice.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/mindsplice.json deleted file mode 100644 index 8b14081c0c..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/mindsplice.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "tag": "hexcasting:brainswept_circle_components" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/mindsplice" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/oak.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/oak.json deleted file mode 100644 index 5c8e796b5a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/oak.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:oak_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/oak" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/quenched.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/quenched.json deleted file mode 100644 index 170c8373fc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/quenched.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "hexcasting:quenched_allay_shard" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/quenched" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/spruce.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/spruce.json deleted file mode 100644 index 3670939402..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/spruce.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:spruce_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/spruce" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/warped.json b/Fabric/src/generated/resources/data/hexcasting/recipes/staff/warped.json deleted file mode 100644 index c8f1b7ce6a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/staff/warped.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:warped_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/warped" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_tiles.json deleted file mode 100644 index 020b0ec65f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_tiles.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "item": "minecraft:amethyst_block" - }, - "result": "hexcasting:amethyst_tiles" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stripped_edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stripped_edified_wood.json deleted file mode 100644 index c0cab6f42f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stripped_edified_wood.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "item": "hexcasting:stripped_edified_log" - } - }, - "pattern": [ - "WW", - "WW" - ], - "result": { - "count": 3, - "item": "hexcasting:stripped_edified_wood" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/sub_sandwich.json b/Fabric/src/generated/resources/data/hexcasting/recipes/sub_sandwich.json deleted file mode 100644 index 937deabc39..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/sub_sandwich.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "B": { - "item": "minecraft:bread" - }, - "C": { - "item": "minecraft:cooked_beef" - }, - "S": { - "item": "minecraft:stick" - } - }, - "pattern": [ - " SA", - " C ", - " B " - ], - "result": { - "item": "hexcasting:sub_sandwich" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/thought_knot.json b/Fabric/src/generated/resources/data/hexcasting/recipes/thought_knot.json deleted file mode 100644 index 2f2c9f9504..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/thought_knot.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "equipment", - "ingredients": [ - { - "item": "hexcasting:amethyst_dust" - }, - { - "item": "minecraft:string" - } - ], - "result": { - "item": "hexcasting:thought_knot" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/trinket.json b/Fabric/src/generated/resources/data/hexcasting/recipes/trinket.json deleted file mode 100644 index ce2ab679a7..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/trinket.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "C": [ - { - "item": "minecraft:iron_ingot" - }, - { - "tag": "c:iron_ingots" - } - ], - "I": { - "item": "minecraft:amethyst_shard" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "result": { - "item": "hexcasting:trinket" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/uuid_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/recipes/uuid_colorizer.json deleted file mode 100644 index 418123f8b7..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/uuid_colorizer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "hexcasting:amethyst_dust" - }, - "D": { - "item": "hexcasting:amethyst_dust" - }, - "I": { - "item": "minecraft:amethyst_shard" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "item": "hexcasting:uuid_colorizer" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/action/can_start_enlighten.json b/Fabric/src/generated/resources/data/hexcasting/tags/action/can_start_enlighten.json deleted file mode 100644 index 86a6cd44ac..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/action/can_start_enlighten.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:lightning", - "hexcasting:flight", - "hexcasting:create_lava", - "hexcasting:teleport/great", - "hexcasting:sentinel/create/great", - "hexcasting:dispel_rain", - "hexcasting:summon_rain", - "hexcasting:brainsweep", - "hexcasting:craft/battery", - "hexcasting:potion/regeneration", - "hexcasting:potion/night_vision", - "hexcasting:potion/absorption", - "hexcasting:potion/haste", - "hexcasting:potion/strength" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/action/per_world_pattern.json b/Fabric/src/generated/resources/data/hexcasting/tags/action/per_world_pattern.json deleted file mode 100644 index 86a6cd44ac..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/action/per_world_pattern.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:lightning", - "hexcasting:flight", - "hexcasting:create_lava", - "hexcasting:teleport/great", - "hexcasting:sentinel/create/great", - "hexcasting:dispel_rain", - "hexcasting:summon_rain", - "hexcasting:brainsweep", - "hexcasting:craft/battery", - "hexcasting:potion/regeneration", - "hexcasting:potion/night_vision", - "hexcasting:potion/absorption", - "hexcasting:potion/haste", - "hexcasting:potion/strength" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/action/requires_enlightenment.json b/Fabric/src/generated/resources/data/hexcasting/tags/action/requires_enlightenment.json deleted file mode 100644 index 86a6cd44ac..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/action/requires_enlightenment.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:lightning", - "hexcasting:flight", - "hexcasting:create_lava", - "hexcasting:teleport/great", - "hexcasting:sentinel/create/great", - "hexcasting:dispel_rain", - "hexcasting:summon_rain", - "hexcasting:brainsweep", - "hexcasting:craft/battery", - "hexcasting:potion/regeneration", - "hexcasting:potion/night_vision", - "hexcasting:potion/absorption", - "hexcasting:potion/haste", - "hexcasting:potion/strength" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/block/brainswept_circle_components.json b/Fabric/src/generated/resources/data/hexcasting/tags/block/brainswept_circle_components.json new file mode 100644 index 0000000000..aa71f4b195 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/block/brainswept_circle_components.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#hexcasting:impeti", + "#hexcasting:directrices" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/block/cheap_to_break_block.json b/Fabric/src/generated/resources/data/hexcasting/tags/block/cheap_to_break_block.json new file mode 100644 index 0000000000..7fc52a816b --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/block/cheap_to_break_block.json @@ -0,0 +1,6 @@ +{ + "values": [ + "hexcasting:conjured_block", + "hexcasting:conjured_light" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/block/directrices.json b/Fabric/src/generated/resources/data/hexcasting/tags/block/directrices.json new file mode 100644 index 0000000000..824259f178 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/block/directrices.json @@ -0,0 +1,6 @@ +{ + "values": [ + "hexcasting:directrix/redstone", + "hexcasting:directrix/boolean" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/block/edified_logs.json b/Fabric/src/generated/resources/data/hexcasting/tags/block/edified_logs.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/block/edified_logs.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/block/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/tags/block/edified_planks.json new file mode 100644 index 0000000000..36cc46d6db --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/block/edified_planks.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/block/impeti.json b/Fabric/src/generated/resources/data/hexcasting/tags/block/impeti.json new file mode 100644 index 0000000000..358990d5b4 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/block/impeti.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:impetus/look", + "hexcasting:impetus/rightclick", + "hexcasting:impetus/redstone" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/block/water_plants.json b/Fabric/src/generated/resources/data/hexcasting/tags/block/water_plants.json new file mode 100644 index 0000000000..0f2bcab34f --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/block/water_plants.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:kelp", + "minecraft:kelp_plant", + "minecraft:seagrass", + "minecraft:tall_seagrass" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/brainswept_circle_components.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/brainswept_circle_components.json deleted file mode 100644 index ea830ffa1d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/brainswept_circle_components.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "#hexcasting:impeti", - "#hexcasting:directrices" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json deleted file mode 100644 index 61cb019a11..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:conjured_block", - "hexcasting:conjured_light" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/directrices.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/directrices.json deleted file mode 100644 index d30f04cb6f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/directrices.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:directrix/redstone", - "hexcasting:directrix/boolean" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/edified_logs.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/edified_logs.json deleted file mode 100644 index 8e226d8922..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/edified_logs.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_log", - "hexcasting:edified_log_amethyst", - "hexcasting:edified_log_aventurine", - "hexcasting:edified_log_citrine", - "hexcasting:edified_log_purple", - "hexcasting:stripped_edified_log", - "hexcasting:edified_wood", - "hexcasting:stripped_edified_wood" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/edified_planks.json deleted file mode 100644 index 39c375c539..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/edified_planks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_planks", - "hexcasting:edified_panel", - "hexcasting:edified_tile" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/impeti.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/impeti.json deleted file mode 100644 index 0555067291..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/impeti.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:impetus/look", - "hexcasting:impetus/rightclick", - "hexcasting:impetus/redstone" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/water_plants.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/water_plants.json deleted file mode 100644 index 036f0507d4..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/water_plants.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:kelp", - "minecraft:kelp_plant", - "minecraft:seagrass", - "minecraft:tall_seagrass" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/hexcasting/action/can_start_enlighten.json b/Fabric/src/generated/resources/data/hexcasting/tags/hexcasting/action/can_start_enlighten.json new file mode 100644 index 0000000000..3113294d13 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/hexcasting/action/can_start_enlighten.json @@ -0,0 +1,18 @@ +{ + "values": [ + "hexcasting:lightning", + "hexcasting:flight", + "hexcasting:create_lava", + "hexcasting:teleport/great", + "hexcasting:sentinel/create/great", + "hexcasting:dispel_rain", + "hexcasting:summon_rain", + "hexcasting:brainsweep", + "hexcasting:craft/battery", + "hexcasting:potion/regeneration", + "hexcasting:potion/night_vision", + "hexcasting:potion/absorption", + "hexcasting:potion/haste", + "hexcasting:potion/strength" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json b/Fabric/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json new file mode 100644 index 0000000000..3113294d13 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json @@ -0,0 +1,18 @@ +{ + "values": [ + "hexcasting:lightning", + "hexcasting:flight", + "hexcasting:create_lava", + "hexcasting:teleport/great", + "hexcasting:sentinel/create/great", + "hexcasting:dispel_rain", + "hexcasting:summon_rain", + "hexcasting:brainsweep", + "hexcasting:craft/battery", + "hexcasting:potion/regeneration", + "hexcasting:potion/night_vision", + "hexcasting:potion/absorption", + "hexcasting:potion/haste", + "hexcasting:potion/strength" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json b/Fabric/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json new file mode 100644 index 0000000000..3113294d13 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json @@ -0,0 +1,18 @@ +{ + "values": [ + "hexcasting:lightning", + "hexcasting:flight", + "hexcasting:create_lava", + "hexcasting:teleport/great", + "hexcasting:sentinel/create/great", + "hexcasting:dispel_rain", + "hexcasting:summon_rain", + "hexcasting:brainsweep", + "hexcasting:craft/battery", + "hexcasting:potion/regeneration", + "hexcasting:potion/night_vision", + "hexcasting:potion/absorption", + "hexcasting:potion/haste", + "hexcasting:potion/strength" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/item/brainswept_circle_components.json b/Fabric/src/generated/resources/data/hexcasting/tags/item/brainswept_circle_components.json new file mode 100644 index 0000000000..aa71f4b195 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/item/brainswept_circle_components.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#hexcasting:impeti", + "#hexcasting:directrices" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/item/directrices.json b/Fabric/src/generated/resources/data/hexcasting/tags/item/directrices.json new file mode 100644 index 0000000000..824259f178 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/item/directrices.json @@ -0,0 +1,6 @@ +{ + "values": [ + "hexcasting:directrix/redstone", + "hexcasting:directrix/boolean" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/item/edified_logs.json b/Fabric/src/generated/resources/data/hexcasting/tags/item/edified_logs.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/item/edified_logs.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/item/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/tags/item/edified_planks.json new file mode 100644 index 0000000000..36cc46d6db --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/item/edified_planks.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/item/grants_root_advancement.json b/Fabric/src/generated/resources/data/hexcasting/tags/item/grants_root_advancement.json new file mode 100644 index 0000000000..1f7070a707 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/item/grants_root_advancement.json @@ -0,0 +1,8 @@ +{ + "values": [ + "hexcasting:amethyst_dust", + "minecraft:amethyst_shard", + "hexcasting:charged_amethyst", + "hexcasting:creative_unlocker" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/item/impeti.json b/Fabric/src/generated/resources/data/hexcasting/tags/item/impeti.json new file mode 100644 index 0000000000..358990d5b4 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/item/impeti.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:impetus/look", + "hexcasting:impetus/rightclick", + "hexcasting:impetus/redstone" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/item/phial_base.json b/Fabric/src/generated/resources/data/hexcasting/tags/item/phial_base.json new file mode 100644 index 0000000000..52ac4c0c96 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/item/phial_base.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:glass_bottle" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/item/seal_materials.json b/Fabric/src/generated/resources/data/hexcasting/tags/item/seal_materials.json new file mode 100644 index 0000000000..674a370049 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/item/seal_materials.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:honeycomb" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/item/staves.json b/Fabric/src/generated/resources/data/hexcasting/tags/item/staves.json new file mode 100644 index 0000000000..29f4595c62 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/item/staves.json @@ -0,0 +1,18 @@ +{ + "values": [ + "hexcasting:staff/edified", + "hexcasting:staff/oak", + "hexcasting:staff/spruce", + "hexcasting:staff/birch", + "hexcasting:staff/jungle", + "hexcasting:staff/acacia", + "hexcasting:staff/dark_oak", + "hexcasting:staff/crimson", + "hexcasting:staff/warped", + "hexcasting:staff/mangrove", + "hexcasting:staff/cherry", + "hexcasting:staff/bamboo", + "hexcasting:staff/quenched", + "hexcasting:staff/mindsplice" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/items/brainswept_circle_components.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/brainswept_circle_components.json deleted file mode 100644 index ea830ffa1d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/brainswept_circle_components.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "#hexcasting:impeti", - "#hexcasting:directrices" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/items/directrices.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/directrices.json deleted file mode 100644 index d30f04cb6f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/directrices.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:directrix/redstone", - "hexcasting:directrix/boolean" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/items/edified_logs.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/edified_logs.json deleted file mode 100644 index 8e226d8922..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/edified_logs.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_log", - "hexcasting:edified_log_amethyst", - "hexcasting:edified_log_aventurine", - "hexcasting:edified_log_citrine", - "hexcasting:edified_log_purple", - "hexcasting:stripped_edified_log", - "hexcasting:edified_wood", - "hexcasting:stripped_edified_wood" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/items/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/edified_planks.json deleted file mode 100644 index 39c375c539..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/edified_planks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_planks", - "hexcasting:edified_panel", - "hexcasting:edified_tile" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/items/grants_root_advancement.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/grants_root_advancement.json deleted file mode 100644 index 76ab3105e8..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/grants_root_advancement.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:amethyst_dust", - "minecraft:amethyst_shard", - "hexcasting:charged_amethyst", - "hexcasting:creative_unlocker" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/items/impeti.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/impeti.json deleted file mode 100644 index 0555067291..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/impeti.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:impetus/look", - "hexcasting:impetus/rightclick", - "hexcasting:impetus/redstone" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/items/phial_base.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/phial_base.json deleted file mode 100644 index b435278f57..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/phial_base.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:glass_bottle" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/items/seal_materials.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/seal_materials.json deleted file mode 100644 index ae13fc414c..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/seal_materials.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:honeycomb" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/items/staves.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/staves.json deleted file mode 100644 index eba74d80db..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/staves.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:staff/edified", - "hexcasting:staff/oak", - "hexcasting:staff/spruce", - "hexcasting:staff/birch", - "hexcasting:staff/jungle", - "hexcasting:staff/acacia", - "hexcasting:staff/dark_oak", - "hexcasting:staff/crimson", - "hexcasting:staff/warped", - "hexcasting:staff/mangrove", - "hexcasting:staff/cherry", - "hexcasting:staff/bamboo", - "hexcasting:staff/quenched", - "hexcasting:staff/mindsplice" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/buttons.json b/Fabric/src/generated/resources/data/minecraft/tags/block/buttons.json new file mode 100644 index 0000000000..672bbc1a69 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_button" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/crystal_sound_blocks.json b/Fabric/src/generated/resources/data/minecraft/tags/block/crystal_sound_blocks.json new file mode 100644 index 0000000000..7a23dc1ec1 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/crystal_sound_blocks.json @@ -0,0 +1,8 @@ +{ + "values": [ + "hexcasting:conjured_light", + "hexcasting:conjured_block", + "hexcasting:amethyst_tiles", + "hexcasting:amethyst_sconce" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/doors.json b/Fabric/src/generated/resources/data/minecraft/tags/block/doors.json new file mode 100644 index 0000000000..e5614ff46f --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/doors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_door" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/fence_gates.json b/Fabric/src/generated/resources/data/minecraft/tags/block/fence_gates.json new file mode 100644 index 0000000000..f27c95c784 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/fence_gates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_fence_gate" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/fences.json b/Fabric/src/generated/resources/data/minecraft/tags/block/fences.json new file mode 100644 index 0000000000..269de59e0a --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/fences.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_fence" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/leaves.json b/Fabric/src/generated/resources/data/minecraft/tags/block/leaves.json new file mode 100644 index 0000000000..ff8e420cc6 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/leaves.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:amethyst_edified_leaves", + "hexcasting:aventurine_edified_leaves", + "hexcasting:citrine_edified_leaves" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/logs.json b/Fabric/src/generated/resources/data/minecraft/tags/block/logs.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/logs.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json b/Fabric/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/axe.json b/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/axe.json new file mode 100644 index 0000000000..0d6037e186 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/axe.json @@ -0,0 +1,25 @@ +{ + "values": [ + "hexcasting:akashic_record", + "hexcasting:akashic_bookshelf", + "hexcasting:akashic_ligature", + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood", + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile", + "hexcasting:edified_door", + "hexcasting:edified_trapdoor", + "hexcasting:edified_slab", + "hexcasting:edified_button", + "hexcasting:edified_stairs", + "hexcasting:edified_fence", + "hexcasting:edified_fence_gate" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/hoe.json b/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/hoe.json new file mode 100644 index 0000000000..ff8e420cc6 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/hoe.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:amethyst_edified_leaves", + "hexcasting:aventurine_edified_leaves", + "hexcasting:citrine_edified_leaves" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json new file mode 100644 index 0000000000..a8b1c2eb67 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,30 @@ +{ + "values": [ + "hexcasting:slate_block", + "hexcasting:slate_tiles", + "hexcasting:slate_bricks", + "hexcasting:slate_bricks_small", + "hexcasting:slate_pillar", + "hexcasting:slate", + "hexcasting:directrix/empty", + "hexcasting:directrix/redstone", + "hexcasting:directrix/boolean", + "hexcasting:impetus/empty", + "hexcasting:impetus/rightclick", + "hexcasting:impetus/look", + "hexcasting:impetus/redstone", + "hexcasting:amethyst_tiles", + "hexcasting:amethyst_bricks", + "hexcasting:amethyst_bricks_small", + "hexcasting:amethyst_pillar", + "hexcasting:slate_amethyst_tiles", + "hexcasting:slate_amethyst_bricks", + "hexcasting:slate_amethyst_bricks_small", + "hexcasting:slate_amethyst_pillar", + "hexcasting:amethyst_sconce", + "hexcasting:quenched_allay", + "hexcasting:quenched_allay_tiles", + "hexcasting:quenched_allay_bricks", + "hexcasting:quenched_allay_bricks_small" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json b/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json new file mode 100644 index 0000000000..02d08df2b3 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:amethyst_dust_block" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/planks.json b/Fabric/src/generated/resources/data/minecraft/tags/block/planks.json new file mode 100644 index 0000000000..36cc46d6db --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/planks.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/pressure_plates.json b/Fabric/src/generated/resources/data/minecraft/tags/block/pressure_plates.json new file mode 100644 index 0000000000..8880072112 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/pressure_plates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_pressure_plate" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/slabs.json b/Fabric/src/generated/resources/data/minecraft/tags/block/slabs.json new file mode 100644 index 0000000000..af4c10b029 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/slabs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_slab" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/stairs.json b/Fabric/src/generated/resources/data/minecraft/tags/block/stairs.json new file mode 100644 index 0000000000..c2e7fad75b --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/stairs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_stairs" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/trapdoors.json b/Fabric/src/generated/resources/data/minecraft/tags/block/trapdoors.json new file mode 100644 index 0000000000..0e9f576897 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/trapdoors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_trapdoor" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/unstable_bottom_center.json b/Fabric/src/generated/resources/data/minecraft/tags/block/unstable_bottom_center.json new file mode 100644 index 0000000000..f27c95c784 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/unstable_bottom_center.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_fence_gate" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_buttons.json b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_buttons.json new file mode 100644 index 0000000000..672bbc1a69 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_button" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_doors.json b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_doors.json new file mode 100644 index 0000000000..e5614ff46f --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_doors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_door" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_fences.json b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_fences.json new file mode 100644 index 0000000000..117722b2be --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_fences.json @@ -0,0 +1,6 @@ +{ + "values": [ + "hexcasting:edified_fence", + "hexcasting:edified_fence" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_pressure_plates.json b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_pressure_plates.json new file mode 100644 index 0000000000..8880072112 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_pressure_plates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_pressure_plate" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_slabs.json b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_slabs.json new file mode 100644 index 0000000000..af4c10b029 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_slabs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_slab" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_stairs.json b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_stairs.json new file mode 100644 index 0000000000..c2e7fad75b --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_stairs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_stairs" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_trapdoors.json b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_trapdoors.json new file mode 100644 index 0000000000..0e9f576897 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/block/wooden_trapdoors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_trapdoor" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/buttons.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/buttons.json deleted file mode 100644 index 93d13da5f5..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/buttons.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_button" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json deleted file mode 100644 index 694b24cf8a..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:conjured_light", - "hexcasting:conjured_block", - "hexcasting:amethyst_tiles", - "hexcasting:amethyst_sconce" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/doors.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/doors.json deleted file mode 100644 index d63af5102c..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/doors.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_door" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/fence_gates.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/fence_gates.json deleted file mode 100644 index 4dff358b03..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/fence_gates.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_fence_gate" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/fences.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/fences.json deleted file mode 100644 index f64ac53060..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/fences.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_fence" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/leaves.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/leaves.json deleted file mode 100644 index d0139bd0b9..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/leaves.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:amethyst_edified_leaves", - "hexcasting:aventurine_edified_leaves", - "hexcasting:citrine_edified_leaves" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/logs.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/logs.json deleted file mode 100644 index 8e226d8922..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/logs.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_log", - "hexcasting:edified_log_amethyst", - "hexcasting:edified_log_aventurine", - "hexcasting:edified_log_citrine", - "hexcasting:edified_log_purple", - "hexcasting:stripped_edified_log", - "hexcasting:edified_wood", - "hexcasting:stripped_edified_wood" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/logs_that_burn.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/logs_that_burn.json deleted file mode 100644 index 8e226d8922..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/logs_that_burn.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_log", - "hexcasting:edified_log_amethyst", - "hexcasting:edified_log_aventurine", - "hexcasting:edified_log_citrine", - "hexcasting:edified_log_purple", - "hexcasting:stripped_edified_log", - "hexcasting:edified_wood", - "hexcasting:stripped_edified_wood" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json deleted file mode 100644 index 87aeaeea67..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:akashic_record", - "hexcasting:akashic_bookshelf", - "hexcasting:akashic_connector", - "hexcasting:edified_log", - "hexcasting:edified_log_amethyst", - "hexcasting:edified_log_aventurine", - "hexcasting:edified_log_citrine", - "hexcasting:edified_log_purple", - "hexcasting:stripped_edified_log", - "hexcasting:edified_wood", - "hexcasting:stripped_edified_wood", - "hexcasting:edified_planks", - "hexcasting:edified_panel", - "hexcasting:edified_tile", - "hexcasting:edified_door", - "hexcasting:edified_trapdoor", - "hexcasting:edified_slab", - "hexcasting:edified_button", - "hexcasting:edified_stairs", - "hexcasting:edified_fence", - "hexcasting:edified_fence_gate" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json deleted file mode 100644 index d0139bd0b9..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:amethyst_edified_leaves", - "hexcasting:aventurine_edified_leaves", - "hexcasting:citrine_edified_leaves" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json deleted file mode 100644 index 71a25063c6..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:slate_block", - "hexcasting:slate_tiles", - "hexcasting:slate_bricks", - "hexcasting:slate_bricks_small", - "hexcasting:slate_pillar", - "hexcasting:slate", - "hexcasting:directrix/empty", - "hexcasting:directrix/redstone", - "hexcasting:directrix/boolean", - "hexcasting:impetus/empty", - "hexcasting:impetus/rightclick", - "hexcasting:impetus/look", - "hexcasting:impetus/redstone", - "hexcasting:amethyst_tiles", - "hexcasting:amethyst_bricks", - "hexcasting:amethyst_bricks_small", - "hexcasting:amethyst_pillar", - "hexcasting:slate_amethyst_tiles", - "hexcasting:slate_amethyst_bricks", - "hexcasting:slate_amethyst_bricks_small", - "hexcasting:slate_amethyst_pillar", - "hexcasting:amethyst_sconce", - "hexcasting:quenched_allay", - "hexcasting:quenched_allay_tiles", - "hexcasting:quenched_allay_bricks", - "hexcasting:quenched_allay_bricks_small" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/shovel.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/shovel.json deleted file mode 100644 index 39b4fe0254..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/shovel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:amethyst_dust_block" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/planks.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/planks.json deleted file mode 100644 index 39c375c539..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/planks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_planks", - "hexcasting:edified_panel", - "hexcasting:edified_tile" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/pressure_plates.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/pressure_plates.json deleted file mode 100644 index 9701e8c0a0..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/pressure_plates.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_pressure_plate" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/slabs.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/slabs.json deleted file mode 100644 index b4894f4197..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/slabs.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_slab" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/stairs.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/stairs.json deleted file mode 100644 index f91ba79b2a..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/stairs.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_stairs" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/trapdoors.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/trapdoors.json deleted file mode 100644 index 1d0b4a8b68..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/trapdoors.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_trapdoor" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/unstable_bottom_center.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/unstable_bottom_center.json deleted file mode 100644 index 4dff358b03..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/unstable_bottom_center.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_fence_gate" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_buttons.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_buttons.json deleted file mode 100644 index 93d13da5f5..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_buttons.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_button" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_doors.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_doors.json deleted file mode 100644 index d63af5102c..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_doors.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_door" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_fences.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_fences.json deleted file mode 100644 index ca68ade542..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_fences.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_fence", - "hexcasting:edified_fence" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json deleted file mode 100644 index 9701e8c0a0..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_pressure_plate" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json deleted file mode 100644 index b4894f4197..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_slab" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json deleted file mode 100644 index f91ba79b2a..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_stairs" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_trapdoors.json b/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_trapdoors.json deleted file mode 100644 index 1d0b4a8b68..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/blocks/wooden_trapdoors.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_trapdoor" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/buttons.json b/Fabric/src/generated/resources/data/minecraft/tags/item/buttons.json new file mode 100644 index 0000000000..672bbc1a69 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_button" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/doors.json b/Fabric/src/generated/resources/data/minecraft/tags/item/doors.json new file mode 100644 index 0000000000..e5614ff46f --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/doors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_door" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/leaves.json b/Fabric/src/generated/resources/data/minecraft/tags/item/leaves.json new file mode 100644 index 0000000000..ff8e420cc6 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/leaves.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:amethyst_edified_leaves", + "hexcasting:aventurine_edified_leaves", + "hexcasting:citrine_edified_leaves" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/logs.json b/Fabric/src/generated/resources/data/minecraft/tags/item/logs.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/logs.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/logs_that_burn.json b/Fabric/src/generated/resources/data/minecraft/tags/item/logs_that_burn.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/logs_that_burn.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/planks.json b/Fabric/src/generated/resources/data/minecraft/tags/item/planks.json new file mode 100644 index 0000000000..36cc46d6db --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/planks.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/slabs.json b/Fabric/src/generated/resources/data/minecraft/tags/item/slabs.json new file mode 100644 index 0000000000..af4c10b029 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/slabs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_slab" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/trapdoors.json b/Fabric/src/generated/resources/data/minecraft/tags/item/trapdoors.json new file mode 100644 index 0000000000..0e9f576897 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/trapdoors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_trapdoor" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_buttons.json b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_buttons.json new file mode 100644 index 0000000000..672bbc1a69 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_button" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_doors.json b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_doors.json new file mode 100644 index 0000000000..e5614ff46f --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_doors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_door" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_pressure_plates.json b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_pressure_plates.json new file mode 100644 index 0000000000..8880072112 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_pressure_plates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_pressure_plate" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_slabs.json b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_slabs.json new file mode 100644 index 0000000000..af4c10b029 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_slabs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_slab" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_trapdoors.json b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_trapdoors.json new file mode 100644 index 0000000000..0e9f576897 --- /dev/null +++ b/Fabric/src/generated/resources/data/minecraft/tags/item/wooden_trapdoors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_trapdoor" + ] +} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/buttons.json b/Fabric/src/generated/resources/data/minecraft/tags/items/buttons.json deleted file mode 100644 index 93d13da5f5..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/buttons.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_button" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/doors.json b/Fabric/src/generated/resources/data/minecraft/tags/items/doors.json deleted file mode 100644 index d63af5102c..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/doors.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_door" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/leaves.json b/Fabric/src/generated/resources/data/minecraft/tags/items/leaves.json deleted file mode 100644 index d0139bd0b9..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/leaves.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:amethyst_edified_leaves", - "hexcasting:aventurine_edified_leaves", - "hexcasting:citrine_edified_leaves" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/logs.json b/Fabric/src/generated/resources/data/minecraft/tags/items/logs.json deleted file mode 100644 index 8e226d8922..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/logs.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_log", - "hexcasting:edified_log_amethyst", - "hexcasting:edified_log_aventurine", - "hexcasting:edified_log_citrine", - "hexcasting:edified_log_purple", - "hexcasting:stripped_edified_log", - "hexcasting:edified_wood", - "hexcasting:stripped_edified_wood" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/logs_that_burn.json b/Fabric/src/generated/resources/data/minecraft/tags/items/logs_that_burn.json deleted file mode 100644 index 8e226d8922..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/logs_that_burn.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_log", - "hexcasting:edified_log_amethyst", - "hexcasting:edified_log_aventurine", - "hexcasting:edified_log_citrine", - "hexcasting:edified_log_purple", - "hexcasting:stripped_edified_log", - "hexcasting:edified_wood", - "hexcasting:stripped_edified_wood" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/planks.json b/Fabric/src/generated/resources/data/minecraft/tags/items/planks.json deleted file mode 100644 index 39c375c539..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/planks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_planks", - "hexcasting:edified_panel", - "hexcasting:edified_tile" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/slabs.json b/Fabric/src/generated/resources/data/minecraft/tags/items/slabs.json deleted file mode 100644 index b4894f4197..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/slabs.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_slab" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/trapdoors.json b/Fabric/src/generated/resources/data/minecraft/tags/items/trapdoors.json deleted file mode 100644 index 1d0b4a8b68..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/trapdoors.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_trapdoor" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_buttons.json b/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_buttons.json deleted file mode 100644 index 93d13da5f5..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_buttons.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_button" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_doors.json b/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_doors.json deleted file mode 100644 index d63af5102c..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_doors.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_door" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_pressure_plates.json b/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_pressure_plates.json deleted file mode 100644 index 9701e8c0a0..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_pressure_plates.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_pressure_plate" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json b/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json deleted file mode 100644 index b4894f4197..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_slab" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_trapdoors.json b/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_trapdoors.json deleted file mode 100644 index 1d0b4a8b68..0000000000 --- a/Fabric/src/generated/resources/data/minecraft/tags/items/wooden_trapdoors.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:edified_trapdoor" - ] -} \ No newline at end of file diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexClientInitializer.kt b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexClientInitializer.kt index 2ad2ec1d4a..0d24725fd0 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexClientInitializer.kt +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexClientInitializer.kt @@ -13,7 +13,7 @@ import at.petrak.hexcasting.fabric.network.FabricPacketHandler import at.petrak.hexcasting.interop.HexInterop import net.fabricmc.api.ClientModInitializer import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents -import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry +import net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry import net.fabricmc.fabric.api.client.rendering.v1.* @@ -31,10 +31,10 @@ object FabricHexClientInitializer : ClientModInitializer { FabricPacketHandler.initClient() WorldRenderEvents.AFTER_TRANSLUCENT.register { ctx -> - HexAdditionalRenderers.overlayLevel(ctx.matrixStack(), ctx.tickDelta()) + HexAdditionalRenderers.overlayLevel(ctx.matrixStack(), ctx.tickCounter().gameTimeDeltaTicks) } HudRenderCallback.EVENT.register(HexAdditionalRenderers::overlayGui) - WorldRenderEvents.START.register { ClientTickCounter.renderTickStart(it.tickDelta()) } + WorldRenderEvents.START.register { ClientTickCounter.renderTickStart(it.tickCounter().gameTimeDeltaTicks) } ClientTickEvents.END_CLIENT_TICK.register { ClientTickCounter.clientTickEnd() ShiftScrollListener.clientTickEnd() @@ -71,6 +71,10 @@ object FabricHexClientInitializer : ClientModInitializer { RegisterClientStuff.registerColorProviders( { colorizer, item -> ColorProviderRegistry.ITEM.register(colorizer, item) }, { colorizer, block -> ColorProviderRegistry.BLOCK.register(colorizer, block) }) - ModelLoadingRegistry.INSTANCE.registerModelProvider(RegisterClientStuff::onModelRegister) + ModelLoadingPlugin.register { + context -> RegisterClientStuff.onModelRegister { + id -> context.addModels(id) + } + } } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexConfig.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexConfig.java index a49ab760f3..f7e8137b9b 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexConfig.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexConfig.java @@ -15,6 +15,7 @@ import me.shedaniel.autoconfig.serializer.PartitioningSerializer; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.RandomSource; import net.minecraft.util.Mth; import net.minecraft.world.level.Level; @@ -181,13 +182,16 @@ public static final class Server implements HexConfig.ServerConfigAccess, Config @ConfigEntry.Gui.Tooltip private List circleActionDenyList = List.of(); @ConfigEntry.Gui.Tooltip + private boolean greaterTeleportSplatsItems = DEFAULT_GREATER_TELEPORT_SPLATS_ITEMS; + @ConfigEntry.Gui.Tooltip private boolean villagersOffendedByMindMurder = DEFAULT_VILLAGERS_DISLIKE_MIND_MURDER; @ConfigEntry.Gui.Tooltip private boolean doesTrueNameHaveAmbit = DEFAULT_TRUE_NAME_HAS_AMBIT; - - @ConfigEntry.Gui.Tooltip private List tpDimDenylist = DEFAULT_DIM_TP_DENYLIST; + + @ConfigEntry.Gui.Tooltip + private double traderScrollChance = DEFAULT_TRADER_SCROLL_CHANCE; // ModMenu bad and doesn't like java objects in here so we do stupid string parsing @ConfigEntry.Gui.Tooltip @@ -209,17 +213,28 @@ public static final class Server implements HexConfig.ServerConfigAccess, Config @ConfigEntry.Gui.Tooltip private double loreChance = HexLootHandler.DEFAULT_LORE_CHANCE; + @ConfigEntry.Gui.Tooltip + private List cypherInjectionsRaw = HexLootHandler.DEFAULT_CYPHER_INJECTS + .stream() + .map(ResourceLocation::toString) + .toList(); + @ConfigEntry.Gui.Excluded + private transient List cypherInjections; + @ConfigEntry.Gui.Tooltip + private double cypherChance = HexLootHandler.DEFAULT_CYPHER_CHANCE; + @Override public void validatePostLoad() throws ValidationException { this.maxOpCount = Math.max(this.maxOpCount, 0); this.maxSpellCircleLength = Math.max(this.maxSpellCircleLength, 4); + this.traderScrollChance = Mth.clamp(this.traderScrollChance, 0.0, 1.0); this.scrollInjections = new Object2IntOpenHashMap<>(); try { for (var auugh : this.scrollInjectionsRaw) { String[] split = auugh.split(" "); - ResourceLocation loc = new ResourceLocation(split[0]); + ResourceLocation loc = ResourceLocation.parse(split[0]); int count = Integer.parseInt(split[1]); this.scrollInjections.put(loc, count); } @@ -231,7 +246,7 @@ public void validatePostLoad() throws ValidationException { this.loreInjections = new ArrayList<>(); try { for (var table : this.loreInjectionsRaw) { - ResourceLocation loc = new ResourceLocation(table); + ResourceLocation loc = ResourceLocation.parse(table); this.loreInjections.add(loc); } } catch (Exception e) { @@ -239,6 +254,18 @@ public void validatePostLoad() throws ValidationException { } this.loreChance = Mth.clamp(this.loreChance, 0.0, 1.0); + + this.cypherInjections = new ArrayList<>(); + try { + for (var table : this.cypherInjectionsRaw) { + ResourceLocation loc = ResourceLocation.parse(table); + this.cypherInjections.add(loc); + } + } catch (Exception e) { + throw new ValidationException("Bad parsing of cypher injects", e); + } + + this.cypherChance = Mth.clamp(this.cypherChance, 0.0, 1.0); } @Override @@ -266,6 +293,9 @@ public boolean isActionAllowedInCircles(ResourceLocation actionID) { return noneMatch(circleActionDenyList, actionID); } + @Override + public boolean doesGreaterTeleportSplatItems() { return greaterTeleportSplatsItems; } + @Override public boolean doVillagersTakeOffenseAtMindMurder() { return villagersOffendedByMindMurder; @@ -281,6 +311,10 @@ public boolean trueNameHasAmbit() { return doesTrueNameHaveAmbit; } + public double traderScrollChance() { + return traderScrollChance; + } + /** * Returns -1 if none is found */ @@ -292,8 +326,16 @@ public boolean shouldInjectLore(ResourceLocation lootTable) { return anyMatchResLoc(this.loreInjections, lootTable); } - public double getLoreChance() { + public double loreChance() { return loreChance; } + + public boolean shouldInjectCyphers(ResourceLocation lootTable) { + return anyMatchResLoc(this.cypherInjections, lootTable); + } + + public double cypherChance() { + return cypherChance; + } } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt index 19e676136c..8b0f36220a 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt @@ -1,16 +1,29 @@ package at.petrak.hexcasting.fabric import at.petrak.hexcasting.api.HexAPI.modLoc +import at.petrak.hexcasting.api.addldata.ADMediaHolder import at.petrak.hexcasting.api.advancements.HexAdvancementTriggers +import at.petrak.hexcasting.api.casting.ActionRegistryEntry +import at.petrak.hexcasting.api.casting.iota.DoubleIota +import at.petrak.hexcasting.api.item.HexHolderItem +import at.petrak.hexcasting.api.item.IotaHolderItem +import at.petrak.hexcasting.api.item.PigmentItem +import at.petrak.hexcasting.api.item.VariantItem +import at.petrak.hexcasting.api.misc.MediaConstants +import at.petrak.hexcasting.api.mod.HexConfig import at.petrak.hexcasting.api.mod.HexStatistics +import at.petrak.hexcasting.api.mod.HexTags +import at.petrak.hexcasting.api.utils.isOfTag import at.petrak.hexcasting.common.blocks.behavior.HexComposting import at.petrak.hexcasting.common.blocks.behavior.HexStrippables import at.petrak.hexcasting.common.casting.PatternRegistryManifest import at.petrak.hexcasting.common.casting.actions.spells.OpFlight import at.petrak.hexcasting.common.casting.actions.spells.great.OpAltiora -import at.petrak.hexcasting.common.command.PatternResLocArgument +import at.petrak.hexcasting.common.command.PatternResKeyArgument import at.petrak.hexcasting.common.entities.HexEntities import at.petrak.hexcasting.common.items.ItemJewelerHammer +import at.petrak.hexcasting.common.items.magic.ItemMediaBattery +import at.petrak.hexcasting.common.items.storage.ItemScroll import at.petrak.hexcasting.common.lib.* import at.petrak.hexcasting.common.lib.hex.* import at.petrak.hexcasting.common.misc.AkashicTreeGrower @@ -18,14 +31,26 @@ import at.petrak.hexcasting.common.misc.BrainsweepingEvents import at.petrak.hexcasting.common.misc.PlayerPositionRecorder import at.petrak.hexcasting.common.misc.RegisterMisc import at.petrak.hexcasting.common.recipe.HexRecipeStuffRegistry +import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredients +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredients +import at.petrak.hexcasting.fabric.cc.HexCardinalComponents +import at.petrak.hexcasting.fabric.cc.adimpl.CCHexHolder +import at.petrak.hexcasting.fabric.cc.adimpl.CCIotaHolder +import at.petrak.hexcasting.fabric.cc.adimpl.CCItemIotaHolder +import at.petrak.hexcasting.fabric.cc.adimpl.CCMediaHolder +import at.petrak.hexcasting.fabric.cc.adimpl.CCPigment +import at.petrak.hexcasting.fabric.cc.adimpl.CCVariantItem import at.petrak.hexcasting.fabric.event.VillagerConversionCallback import at.petrak.hexcasting.fabric.loot.FabricHexLootModJankery import at.petrak.hexcasting.fabric.network.FabricPacketHandler import at.petrak.hexcasting.fabric.recipe.FabricModConditionalIngredient +import at.petrak.hexcasting.fabric.recipe.FabricUnsealedIngredient import at.petrak.hexcasting.fabric.storage.FabricImpetusStorage +import at.petrak.hexcasting.fabric.xplat.FabricXplatImpl import at.petrak.hexcasting.interop.HexInterop import at.petrak.hexcasting.xplat.IXplatAbstractions -import io.github.tropheusj.serialization_hooks.ingredient.IngredientDeserializer +import com.samsthenerd.inline.utils.EntityCradle +import com.samsthenerd.inline.utils.cradles.EntTypeCradle import net.fabricmc.api.ModInitializer import net.fabricmc.fabric.api.command.v2.ArgumentTypeRegistry import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback @@ -34,23 +59,38 @@ import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents import net.fabricmc.fabric.api.event.player.AttackBlockCallback import net.fabricmc.fabric.api.event.player.UseEntityCallback +import net.fabricmc.fabric.api.item.v1.DefaultItemComponentEvents import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents -import net.fabricmc.fabric.api.loot.v2.LootTableEvents +import net.fabricmc.fabric.api.loot.v3.LootTableEvents +import net.fabricmc.fabric.api.`object`.builder.v1.entity.FabricDefaultAttributeRegistry +import net.fabricmc.fabric.api.recipe.v1.ingredient.CustomIngredientSerializer import net.fabricmc.fabric.api.registry.FlammableBlockRegistry import net.minecraft.commands.synchronization.SingletonArgumentInfo import net.minecraft.core.Registry import net.minecraft.core.registries.BuiltInRegistries +import net.minecraft.resources.ResourceKey import net.minecraft.resources.ResourceLocation import net.minecraft.world.InteractionResult +import net.minecraft.world.entity.EntityType import net.minecraft.world.entity.player.Player +import net.minecraft.world.item.Item +import net.minecraft.world.item.ItemStack +import net.minecraft.world.item.Items +import net.minecraft.world.level.block.Blocks import net.minecraft.world.level.block.state.properties.BlockSetType +import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction +import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator import java.util.function.BiConsumer +import java.util.function.Function object FabricHexInitializer : ModInitializer { lateinit var CONFIG: FabricHexConfig override fun onInitialize() { this.CONFIG = FabricHexConfig.setup() + // workaround for Inline EntTypeCradles not being available on server, related to https://github.com/SamsTheNerd/inline/issues/34 + EntTypeCradle.fromTypeId(ResourceLocation.fromNamespaceAndPath("minecraft", "pig")).get().getType(); + FabricPacketHandler.initPackets() FabricPacketHandler.init() initListeners() @@ -59,14 +99,22 @@ object FabricHexInitializer : ModInitializer { ArgumentTypeRegistry.registerArgumentType( modLoc("pattern"), - PatternResLocArgument::class.java, - SingletonArgumentInfo.contextFree { PatternResLocArgument.id() } + PatternResKeyArgument::class.java, + SingletonArgumentInfo.contextFree { PatternResKeyArgument.id() } ) - HexAdvancementTriggers.registerTriggers() + HexAdvancementTriggers.registerTriggers(bind(BuiltInRegistries.TRIGGER_TYPES)) HexComposting.setup() HexStrippables.init() FabricImpetusStorage.registerStorage() + LootTableEvents.MODIFY.register { key, tableBuilder, source, lookup -> + if (Blocks.AMETHYST_CLUSTER.lootTable.equals(key)) { + tableBuilder.modifyPools { pool -> + pool.apply(SetItemCountFunction.setCount(UniformGenerator.between(1.0f, 2.0f))) + } + } + } + HexInterop.init() RegisterMisc.register() } @@ -95,8 +143,8 @@ object FabricHexInitializer : ModInitializer { CommandRegistrationCallback.EVENT.register { dp, _, _ -> HexCommands.register(dp) } - LootTableEvents.MODIFY.register { _, _, id, supplier, _ -> - FabricHexLootModJankery.lootLoad(id, supplier::withPool) + LootTableEvents.MODIFY.register { key, builder, _, _ -> + FabricHexLootModJankery.lootLoad(key, builder::withPool) } EntityElytraEvents.CUSTOM.register { target, _ -> @@ -108,30 +156,67 @@ object FabricHexInitializer : ModInitializer { } } - ItemGroupEvents.MODIFY_ENTRIES_ALL.register { tab, entries -> - HexBlocks.registerBlockCreativeTab(entries::accept, tab) - HexItems.registerItemCreativeTab(entries, tab) + ItemGroupEvents.modifyEntriesEvent(HexCreativeTabs.SCROLLS_KEY).register { r -> + val keyList = ArrayList?>() + val regi = FabricXplatImpl.INSTANCE.getActionRegistry() + for (key in regi.registryKeySet()) if (isOfTag( + regi, + key, + HexTags.Actions.PER_WORLD_PATTERN + ) + ) keyList.add(key) + keyList.sortWith(Comparator.comparing?, ResourceLocation?>(Function { obj: ResourceKey? -> obj!!.location() })) + for (key in keyList) { + r.accept( + ItemScroll.withPerWorldPattern( + ItemStack(HexItems.SCROLL_LARGE), + key + ) + ) + } + } + ItemGroupEvents.modifyEntriesEvent(HexCreativeTabs.HEX_KEY).register { r -> + for (item in this.itemsToAddToCreativeTab) { + if (item is ItemMediaBattery) { + r.accept(HexItems.BATTERY_DUST_STACK.get()) + r.accept(HexItems.BATTERY_SHARD_STACK.get()) + r.accept(HexItems.BATTERY_CRYSTAL_STACK.get()) + r.accept(HexItems.BATTERY_QUENCHED_SHARD_STACK.get()) + r.accept(HexItems.BATTERY_QUENCHED_BLOCK_STACK.get()) + } else { + r.accept(item) + } + } } } private fun initRegistries() { - fabricOnlyRegistration() - HexBlockSetTypes.registerBlocks(BlockSetType::register) HexCreativeTabs.registerCreativeTabs(bind(BuiltInRegistries.CREATIVE_MODE_TAB)) HexSounds.registerSounds(bind(BuiltInRegistries.SOUND_EVENT)) HexBlocks.registerBlocks(bind(BuiltInRegistries.BLOCK)) - HexBlocks.registerBlockItems(bind(BuiltInRegistries.ITEM)) + HexBlocks.registerBlockItems(boundForItem) HexBlockEntities.registerTiles(bind(BuiltInRegistries.BLOCK_ENTITY_TYPE)) - HexItems.registerItems(bind(BuiltInRegistries.ITEM)) - Registry.register(IngredientDeserializer.REGISTRY, FabricModConditionalIngredient.ID, FabricModConditionalIngredient.Deserializer.INSTANCE) + HexItems.registerItems(boundForItem) + // Registry.register(IngredientDeserializer.REGISTRY, FabricModConditionalIngredient.ID, FabricModConditionalIngredient.Deserializer.INSTANCE) + CustomIngredientSerializer.register(FabricUnsealedIngredient.Serializer.INSTANCE); + CustomIngredientSerializer.register(FabricModConditionalIngredient.Serializer.INSTANCE); HexEntities.registerEntities(bind(BuiltInRegistries.ENTITY_TYPE)) - HexAttributes.register(bind(BuiltInRegistries.ATTRIBUTE)) - HexMobEffects.register(bind(BuiltInRegistries.MOB_EFFECT)) - HexPotions.register(bind(BuiltInRegistries.POTION)) + HexAttributes.register() + FabricDefaultAttributeRegistry.register(EntityType.PLAYER, + Player.createAttributes() + .add(HexAttributes.GRID_ZOOM) + .add(HexAttributes.SCRY_SIGHT) + .add(HexAttributes.FEEBLE_MIND) + .add(HexAttributes.AMBIT_RADIUS) + .add(HexAttributes.MEDIA_CONSUMPTION_MODIFIER) + .add(HexAttributes.SENTINEL_RADIUS)) + HexMobEffects.register() + HexPotions.registerPotions(bind(BuiltInRegistries.POTION)) + HexDataComponents.registerDataComponents(bind(BuiltInRegistries.DATA_COMPONENT_TYPE)) HexRecipeStuffRegistry.registerSerializers(bind(BuiltInRegistries.RECIPE_SERIALIZER)) HexRecipeStuffRegistry.registerTypes(bind(BuiltInRegistries.RECIPE_TYPE)) @@ -146,6 +231,9 @@ object FabricHexInitializer : ModInitializer { HexArithmetics.register(bind(IXplatAbstractions.INSTANCE.arithmeticRegistry)) HexContinuationTypes.registerContinuations(bind(IXplatAbstractions.INSTANCE.continuationTypeRegistry)) HexEvalSounds.register(bind(IXplatAbstractions.INSTANCE.evalSoundRegistry)) + StateIngredients.register(bind(IXplatAbstractions.INSTANCE.stateIngredientRegistry)) + BrainsweepeeIngredients.register(bind(IXplatAbstractions.INSTANCE.brainsweepeeIngredientRegistry)) + // Because of Java's lazy-loading of classes, can't use Kotlin static initialization for // any calls that will eventually touch FeatureUtils.register(), as the growers here do, @@ -156,18 +244,70 @@ object FabricHexInitializer : ModInitializer { butYouCouldBeFire() HexStatistics.register() + + fabricOnlyRegistration() } // sorry lex (not sorry) private fun fabricOnlyRegistration() { -// if (GravityApiInterop.isActive()) { -// HexActions.make("interop/gravity/get", -// ActionRegistryEntry(HexPattern.fromAngles("wawawddew", HexDir.NORTH_EAST), OpGetGravity)) -// HexActions.make("interop/gravity/set", -// ActionRegistryEntry(HexPattern.fromAngles("wdwdwaaqw", HexDir.NORTH_WEST), OpChangeGravity)) -// } + for (item in BuiltInRegistries.ITEM) { + if (item is PigmentItem) { + HexCardinalComponents.PIGMENT_ITEM_LOOKUP.registerForItems({ + item, _ -> CCPigment.ItemBased(item); + }, item) + } + if (item is IotaHolderItem) { + HexCardinalComponents.IOTA_HOLDER_LOOKUP.registerForItems({ + item, _ -> CCItemIotaHolder.ItemBased(item); + }, item) + } + if (item is HexHolderItem) { + HexCardinalComponents.HEX_HOLDER_LOOKUP.registerForItems({ + item, _ -> CCHexHolder.ItemBased(item); + }, item) + } + if (item is VariantItem) { + HexCardinalComponents.VARIANT_ITEM_LOOKUP.registerForItems({ + item, _ -> CCVariantItem.ItemBased(item); + }, item) + } + } + + HexCardinalComponents.MEDIA_HOLDER_LOOKUP.registerForItems({ + stack, _ -> CCMediaHolder.Static({ HexConfig.common().dustMediaAmount() }, ADMediaHolder.AMETHYST_DUST_PRIORITY, stack) + }, HexItems.AMETHYST_DUST) + + HexCardinalComponents.MEDIA_HOLDER_LOOKUP.registerForItems({ + stack, _ -> CCMediaHolder.Static({ HexConfig.common().shardMediaAmount() }, ADMediaHolder.AMETHYST_SHARD_PRIORITY, stack) + }, Items.AMETHYST_SHARD) + + HexCardinalComponents.MEDIA_HOLDER_LOOKUP.registerForItems({ + stack, _ -> CCMediaHolder.Static({ HexConfig.common().chargedCrystalMediaAmount() }, ADMediaHolder.CHARGED_AMETHYST_PRIORITY, stack) + }, HexItems.CHARGED_AMETHYST) + + HexCardinalComponents.MEDIA_HOLDER_LOOKUP.registerForItems({ + stack, _ -> CCMediaHolder.Static({ MediaConstants.QUENCHED_SHARD_UNIT }, ADMediaHolder.QUENCHED_SHARD_PRIORITY, stack) + }, HexItems.QUENCHED_SHARD) + + HexCardinalComponents.MEDIA_HOLDER_LOOKUP.registerForItems({ + stack, _ -> CCMediaHolder.Static({ MediaConstants.QUENCHED_BLOCK_UNIT }, ADMediaHolder.QUENCHED_ALLAY_PRIORITY, stack) + }, HexBlocks.QUENCHED_ALLAY.asItem()) + + HexCardinalComponents.IOTA_HOLDER_LOOKUP.registerForItems({ + stack, _ -> CCItemIotaHolder.Static(stack) { + return@Static DoubleIota(Math.PI) + } + }, Items.PUMPKIN_PIE) + } + + private val itemsToAddToCreativeTab : MutableSet = mutableSetOf() + + private val boundForItem : BiConsumer = BiConsumer { + t, id -> this.itemsToAddToCreativeTab.add(t) + Registry.register(BuiltInRegistries.ITEM, id, t) } + private fun butYouCouldBeFire() { val flameOn = FlammableBlockRegistry.getDefaultInstance() for (log in listOf( diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCAltiora.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCAltiora.java index 17d1489f76..66efacd5ff 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCAltiora.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCAltiora.java @@ -1,8 +1,9 @@ package at.petrak.hexcasting.fabric.cc; import at.petrak.hexcasting.api.player.AltioraAbility; -import dev.onyxstudios.cca.api.v3.component.Component; -import dev.onyxstudios.cca.api.v3.component.sync.AutoSyncedComponent; +import net.minecraft.core.HolderLookup; +import org.ladysnake.cca.api.v3.component.Component; +import org.ladysnake.cca.api.v3.component.sync.AutoSyncedComponent; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.player.Player; import org.jetbrains.annotations.Nullable; @@ -34,7 +35,7 @@ public void setAltiora(AltioraAbility altiora) { } @Override - public void readFromNbt(CompoundTag tag) { + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { var allowed = tag.getBoolean(TAG_ALLOWED); if (!allowed) { this.altiora = null; @@ -45,7 +46,7 @@ public void readFromNbt(CompoundTag tag) { } @Override - public void writeToNbt(CompoundTag tag) { + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { tag.putBoolean(TAG_ALLOWED, this.altiora != null); if (this.altiora != null) { tag.putInt(TAG_GRACE, this.altiora.gracePeriod()); diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCBrainswept.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCBrainswept.java index 34406f7421..a948055463 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCBrainswept.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCBrainswept.java @@ -1,7 +1,9 @@ package at.petrak.hexcasting.fabric.cc; -import dev.onyxstudios.cca.api.v3.component.Component; -import dev.onyxstudios.cca.api.v3.component.sync.AutoSyncedComponent; +import net.minecraft.core.HolderLookup; +import net.minecraft.network.RegistryFriendlyByteBuf; +import org.ladysnake.cca.api.v3.component.Component; +import org.ladysnake.cca.api.v3.component.sync.AutoSyncedComponent; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.world.entity.LivingEntity; @@ -28,19 +30,19 @@ public void setBrainswept(boolean brainswept) { } @Override - public void applySyncPacket(FriendlyByteBuf buf) { + public void applySyncPacket(RegistryFriendlyByteBuf buf) { AutoSyncedComponent.super.applySyncPacket(buf); if (owner instanceof Mob mob && brainswept) mob.removeFreeWill(); } @Override - public void readFromNbt(CompoundTag tag) { + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { this.brainswept = tag.getBoolean(TAG_BRAINSWEPT); } @Override - public void writeToNbt(CompoundTag tag) { + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { tag.putBoolean(TAG_BRAINSWEPT, this.brainswept); } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCClientCastingStack.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCClientCastingStack.java index 90fbadffeb..7552956809 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCClientCastingStack.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCClientCastingStack.java @@ -1,8 +1,9 @@ package at.petrak.hexcasting.fabric.cc; import at.petrak.hexcasting.api.client.ClientCastingStack; -import dev.onyxstudios.cca.api.v3.component.Component; -import dev.onyxstudios.cca.api.v3.component.tick.ClientTickingComponent; +import net.minecraft.core.HolderLookup; +import org.ladysnake.cca.api.v3.component.Component; +import org.ladysnake.cca.api.v3.component.tick.ClientTickingComponent; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.player.Player; @@ -23,8 +24,8 @@ public void clientTick() { } @Override - public void readFromNbt(CompoundTag tag) { } + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { } @Override - public void writeToNbt(CompoundTag tag) { } + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredPigment.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredPigment.java index 7eaf3b5ba1..23ed124124 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredPigment.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFavoredPigment.java @@ -1,8 +1,9 @@ package at.petrak.hexcasting.fabric.cc; import at.petrak.hexcasting.api.pigment.FrozenPigment; -import dev.onyxstudios.cca.api.v3.component.Component; -import dev.onyxstudios.cca.api.v3.component.sync.AutoSyncedComponent; +import net.minecraft.core.HolderLookup; +import org.ladysnake.cca.api.v3.component.Component; +import org.ladysnake.cca.api.v3.component.sync.AutoSyncedComponent; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.player.Player; import org.jetbrains.annotations.Nullable; @@ -33,12 +34,12 @@ public FrozenPigment setPigment(@Nullable FrozenPigment pigment) { } @Override - public void readFromNbt(CompoundTag tag) { - this.pigment = FrozenPigment.fromNBT(tag.getCompound(TAG_PIGMENT)); + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + } @Override - public void writeToNbt(CompoundTag tag) { - tag.put(TAG_PIGMENT, this.pigment.serializeToNBT()); + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFlight.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFlight.java index e7747fac3f..629585a13d 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFlight.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCFlight.java @@ -2,7 +2,8 @@ import at.petrak.hexcasting.api.player.FlightAbility; import at.petrak.hexcasting.api.utils.HexUtils; -import dev.onyxstudios.cca.api.v3.component.Component; +import net.minecraft.core.HolderLookup; +import org.ladysnake.cca.api.v3.component.Component; import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceKey; @@ -37,14 +38,14 @@ public void setFlight(FlightAbility flight) { } @Override - public void readFromNbt(CompoundTag tag) { + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { var allowed = tag.getBoolean(TAG_ALLOWED); if (!allowed) { this.flight = null; } else { var timeLeft = tag.getInt(TAG_TIME_LEFT); var dim = ResourceKey.create(Registries.DIMENSION, - new ResourceLocation(tag.getString(TAG_DIMENSION))); + ResourceLocation.parse(tag.getString(TAG_DIMENSION))); var origin = HexUtils.vecFromNBT(tag.getCompound(TAG_ORIGIN)); var radius = tag.getDouble(TAG_RADIUS); this.flight = new FlightAbility(timeLeft, dim, origin, radius); @@ -52,7 +53,7 @@ public void readFromNbt(CompoundTag tag) { } @Override - public void writeToNbt(CompoundTag tag) { + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { tag.putBoolean(TAG_ALLOWED, this.flight != null); if (this.flight != null) { tag.putInt(TAG_TIME_LEFT, this.flight.timeLeft()); diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCPatterns.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCPatterns.java index 6faa0f70d8..34097cf2aa 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCPatterns.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCPatterns.java @@ -1,7 +1,9 @@ package at.petrak.hexcasting.fabric.cc; import at.petrak.hexcasting.api.casting.eval.ResolvedPattern; -import dev.onyxstudios.cca.api.v3.component.Component; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.NbtOps; +import org.ladysnake.cca.api.v3.component.Component; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; @@ -33,22 +35,22 @@ public void setPatterns(List patterns) { } @Override - public void readFromNbt(CompoundTag tag) { + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { ListTag patternsTag = tag.getList(TAG_PATTERNS, Tag.TAG_COMPOUND); List patterns = new ArrayList<>(patternsTag.size()); for (int i = 0; i < patternsTag.size(); i++) { - patterns.add(ResolvedPattern.fromNBT(patternsTag.getCompound(i))); + patterns.add(ResolvedPattern.CODEC.parse(NbtOps.INSTANCE, patternsTag.getCompound(i)).getOrThrow()); } this.patterns = patterns; } @Override - public void writeToNbt(CompoundTag tag) { + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { var listTag = new ListTag(); for (ResolvedPattern pattern : patterns) { - listTag.add(pattern.serializeToNBT()); + listTag.add(ResolvedPattern.CODEC.encode(pattern, NbtOps.INSTANCE, new CompoundTag()).getOrThrow()); } tag.put(TAG_PATTERNS, listTag); } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCSentinel.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCSentinel.java index d5925796fb..e0db645188 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCSentinel.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCSentinel.java @@ -2,8 +2,9 @@ import at.petrak.hexcasting.api.player.Sentinel; import at.petrak.hexcasting.api.utils.HexUtils; -import dev.onyxstudios.cca.api.v3.component.Component; -import dev.onyxstudios.cca.api.v3.component.sync.AutoSyncedComponent; +import net.minecraft.core.HolderLookup; +import org.ladysnake.cca.api.v3.component.Component; +import org.ladysnake.cca.api.v3.component.sync.AutoSyncedComponent; import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceKey; @@ -36,13 +37,13 @@ public void setSentinel(Sentinel sentinel) { } @Override - public void readFromNbt(CompoundTag tag) { + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { var hasSentinel = tag.getBoolean(TAG_HAS_SENTINEL); if (hasSentinel) { var extendsRange = tag.getBoolean(TAG_EXTENDS_RANGE); var position = HexUtils.vecFromNBT(tag.getCompound(TAG_POSITION)); var dim = ResourceKey.create(Registries.DIMENSION, - new ResourceLocation(tag.getString(TAG_DIMENSION))); + ResourceLocation.parse(tag.getString(TAG_DIMENSION))); this.sentinel = new Sentinel(extendsRange, position, dim); } else { this.sentinel = null; @@ -50,7 +51,7 @@ public void readFromNbt(CompoundTag tag) { } @Override - public void writeToNbt(CompoundTag tag) { + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { tag.putBoolean(TAG_HAS_SENTINEL, this.sentinel != null); if (this.sentinel != null) { tag.putBoolean(TAG_EXTENDS_RANGE, this.sentinel.extendsRange()); diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCStaffcastImage.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCStaffcastImage.java index bb6018946f..5fd49a0bdf 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCStaffcastImage.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/CCStaffcastImage.java @@ -3,14 +3,16 @@ import at.petrak.hexcasting.api.casting.eval.env.StaffCastEnv; import at.petrak.hexcasting.api.casting.eval.vm.CastingImage; import at.petrak.hexcasting.api.casting.eval.vm.CastingVM; -import dev.onyxstudios.cca.api.v3.component.Component; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.NbtOps; +import org.ladysnake.cca.api.v3.component.Component; import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import org.jetbrains.annotations.Nullable; public class CCStaffcastImage implements Component { - public static final String TAG_HARNESS = "harness"; + public static final String TAG_VM = "harness"; private final ServerPlayer owner; private CompoundTag lazyLoadedTag = new CompoundTag(); @@ -25,7 +27,7 @@ public CCStaffcastImage(ServerPlayer owner) { public CastingVM getVM(InteractionHand hand) { var img = this.lazyLoadedTag.isEmpty() ? new CastingImage() - : CastingImage.loadFromNbt(this.lazyLoadedTag, this.owner.serverLevel()); + : CastingImage.getCODEC().parse(NbtOps.INSTANCE, lazyLoadedTag).getOrThrow(); var env = new StaffCastEnv(this.owner, hand); return new CastingVM(img, env); } @@ -34,16 +36,16 @@ public void setImage(@Nullable CastingImage image) { this.lazyLoadedTag = image == null ? new CompoundTag() - : image.serializeToNbt(); + : (CompoundTag) CastingImage.getCODEC().encode(image, NbtOps.INSTANCE, new CompoundTag()).getOrThrow(); } @Override - public void readFromNbt(CompoundTag tag) { - this.lazyLoadedTag = tag.getCompound(TAG_HARNESS); + public void readFromNbt(CompoundTag tag, HolderLookup.Provider provider) { + this.lazyLoadedTag = tag.getCompound(TAG_VM); } @Override - public void writeToNbt(CompoundTag tag) { - tag.put(TAG_HARNESS, this.lazyLoadedTag); + public void writeToNbt(CompoundTag tag, HolderLookup.Provider provider) { + tag.put(TAG_VM, this.lazyLoadedTag); } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/HexCardinalComponents.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/HexCardinalComponents.java index fd2f5978e1..27f647d864 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/HexCardinalComponents.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/HexCardinalComponents.java @@ -1,29 +1,24 @@ package at.petrak.hexcasting.fabric.cc; -import at.petrak.hexcasting.api.addldata.ADMediaHolder; -import at.petrak.hexcasting.api.addldata.ItemDelegatingEntityIotaHolder; -import at.petrak.hexcasting.api.casting.iota.DoubleIota; +import at.petrak.hexcasting.api.addldata.*; import at.petrak.hexcasting.api.item.*; -import at.petrak.hexcasting.api.misc.MediaConstants; -import at.petrak.hexcasting.api.mod.HexConfig; import at.petrak.hexcasting.common.entities.EntityWallScroll; -import at.petrak.hexcasting.common.lib.HexBlocks; -import at.petrak.hexcasting.common.lib.HexItems; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.fabric.cc.adimpl.*; -import dev.onyxstudios.cca.api.v3.component.ComponentFactory; -import dev.onyxstudios.cca.api.v3.component.ComponentKey; -import dev.onyxstudios.cca.api.v3.component.ComponentRegistry; -import dev.onyxstudios.cca.api.v3.entity.EntityComponentFactoryRegistry; -import dev.onyxstudios.cca.api.v3.entity.EntityComponentInitializer; -import dev.onyxstudios.cca.api.v3.entity.RespawnCopyStrategy; -import dev.onyxstudios.cca.api.v3.item.ItemComponentFactoryRegistry; -import dev.onyxstudios.cca.api.v3.item.ItemComponentInitializer; +import net.fabricmc.fabric.api.lookup.v1.item.ItemApiLookup; +import org.ladysnake.cca.api.v3.component.ComponentFactory; +import org.ladysnake.cca.api.v3.component.ComponentKey; +import org.ladysnake.cca.api.v3.component.ComponentRegistry; +import org.ladysnake.cca.api.v3.entity.EntityComponentFactoryRegistry; +import org.ladysnake.cca.api.v3.entity.EntityComponentInitializer; +import org.ladysnake.cca.api.v3.entity.RespawnCopyStrategy; +import org.ladysnake.cca.api.v3.item.ItemComponentInitializer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.decoration.ItemFrame; import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.item.Items; +import org.ladysnake.cca.api.v3.item.ItemComponentMigrationRegistry; import java.util.function.Function; @@ -63,6 +58,16 @@ public class HexCardinalComponents implements EntityComponentInitializer, ItemCo public static final ComponentKey VARIANT_ITEM = ComponentRegistry.getOrCreate(modLoc("variant_item"), CCVariantItem.class); + public static final ItemApiLookup MEDIA_HOLDER_LOOKUP = ItemApiLookup.get(modLoc("media_holder_item"), ADMediaHolder.class, Void.class); + + public static final ItemApiLookup IOTA_HOLDER_LOOKUP = ItemApiLookup.get(modLoc("iota_holder_item"), ADIotaHolder.class, Void.class); + + public static final ItemApiLookup PIGMENT_ITEM_LOOKUP = ItemApiLookup.get(modLoc("pigment_item"), ADPigment.class, Void.class); + + public static final ItemApiLookup HEX_HOLDER_LOOKUP = ItemApiLookup.get(modLoc("hex_holder_item"), ADHexHolder.class, Void.class); + + public static final ItemApiLookup VARIANT_ITEM_LOOKUP = ItemApiLookup.get(modLoc("variant_item"), ADVariantItem.class, Void.class); + @Override public void registerEntityComponentFactories(EntityComponentFactoryRegistry registry) { registry.registerFor(Mob.class, BRAINSWEPT, CCBrainswept::new); @@ -85,35 +90,18 @@ public void registerEntityComponentFactories(EntityComponentFactoryRegistry regi } @Override - public void registerItemComponentFactories(ItemComponentFactoryRegistry registry) { - registry.register(i -> i instanceof PigmentItem, PIGMENT, CCPigment.ItemBased::new); + public void registerItemComponentMigrations(ItemComponentMigrationRegistry registry) { + registry.registerMigration(modLoc("pigment"), HexDataComponents.PIGMENT); - registry.register(i -> i instanceof IotaHolderItem, IOTA_HOLDER, CCItemIotaHolder.ItemBased::new); + registry.registerMigration(modLoc("iota_holder"), HexDataComponents.IOTA); // oh havoc, you think you're so funny // the worst part is you're /right/ - registry.register(Items.PUMPKIN_PIE, IOTA_HOLDER, stack -> new CCItemIotaHolder.Static(stack, - s -> new DoubleIota(Math.PI * s.getCount()))); - - registry.register(i -> i instanceof MediaHolderItem, MEDIA_HOLDER, CCMediaHolder.ItemBased::new); - registry.register(HexItems.AMETHYST_DUST, MEDIA_HOLDER, s -> new CCMediaHolder.Static( - () -> HexConfig.common().dustMediaAmount(), ADMediaHolder.AMETHYST_DUST_PRIORITY, s - )); - registry.register(Items.AMETHYST_SHARD, MEDIA_HOLDER, s -> new CCMediaHolder.Static( - () -> HexConfig.common().shardMediaAmount(), ADMediaHolder.AMETHYST_SHARD_PRIORITY, s - )); - registry.register(HexItems.CHARGED_AMETHYST, MEDIA_HOLDER, s -> new CCMediaHolder.Static( - () -> HexConfig.common().chargedCrystalMediaAmount(), ADMediaHolder.CHARGED_AMETHYST_PRIORITY, s - )); - registry.register(HexItems.QUENCHED_SHARD.asItem(), MEDIA_HOLDER, s -> new CCMediaHolder.Static( - () -> MediaConstants.QUENCHED_SHARD_UNIT, ADMediaHolder.QUENCHED_SHARD_PRIORITY, s - )); - registry.register(HexBlocks.QUENCHED_ALLAY.asItem(), MEDIA_HOLDER, s -> new CCMediaHolder.Static( - () -> MediaConstants.QUENCHED_BLOCK_UNIT, ADMediaHolder.QUENCHED_ALLAY_PRIORITY, s - )); - - registry.register(i -> i instanceof HexHolderItem, HEX_HOLDER, CCHexHolder.ItemBased::new); - - registry.register(i -> i instanceof VariantItem, VARIANT_ITEM, CCVariantItem.ItemBased::new); + + registry.registerMigration(modLoc("media_holder"), HexDataComponents.MEDIA); + + registry.registerMigration(modLoc("hex_holder"), HexDataComponents.PATTERNS); + + registry.registerMigration(modLoc("variant_item"), HexDataComponents.VARIANT); } private ComponentFactory wrapItemEntityDelegate(Function provider) { } @Override - public @Nullable CompoundTag readIotaTag() { - var iota = this.provider.apply(this.stack); - return iota == null ? null : IotaType.serialize(iota); + public @Nullable Iota readIota() { + return this.provider.apply(this.stack); } @Override @@ -73,5 +84,15 @@ public boolean writeable() { public boolean writeIota(@Nullable Iota datum, boolean simulate) { return false; } + + @Override + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + + } + + @Override + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + + } } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCMediaHolder.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCMediaHolder.java index b4ff6ed091..7a565fa4fe 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCMediaHolder.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCMediaHolder.java @@ -2,15 +2,17 @@ import at.petrak.hexcasting.api.addldata.ADMediaHolder; import at.petrak.hexcasting.api.item.MediaHolderItem; -import at.petrak.hexcasting.fabric.cc.HexCardinalComponents; -import dev.onyxstudios.cca.api.v3.item.ItemComponent; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import org.ladysnake.cca.api.v3.component.Component; import net.minecraft.world.item.ItemStack; import java.util.function.Supplier; -public abstract class CCMediaHolder extends ItemComponent implements ADMediaHolder { +public abstract class CCMediaHolder implements ADMediaHolder, Component { + final ItemStack stack; public CCMediaHolder(ItemStack stack) { - super(stack, HexCardinalComponents.MEDIA_HOLDER); + this.stack = stack; } public static class ItemBased extends CCMediaHolder { @@ -68,6 +70,16 @@ public long withdrawMedia(long cost, boolean simulate) { public long insertMedia(long amount, boolean simulate) { return this.mediaHolder.insertMedia(this.stack, amount, simulate); } + + @Override + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + + } + + @Override + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + + } } public static class Static extends CCMediaHolder { @@ -128,5 +140,15 @@ public long withdrawMedia(long cost, boolean simulate) { } return itemsUsed * worth; } + + @Override + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + + } + + @Override + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + + } } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCPigment.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCPigment.java index 3247810fb2..a2274897dc 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCPigment.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCPigment.java @@ -4,7 +4,7 @@ import at.petrak.hexcasting.api.item.PigmentItem; import at.petrak.hexcasting.api.pigment.ColorProvider; import at.petrak.hexcasting.fabric.cc.HexCardinalComponents; -import dev.onyxstudios.cca.api.v3.item.ItemComponent; +import org.ladysnake.cca.api.v3.component.TransientComponent; import net.minecraft.world.item.ItemStack; import java.util.UUID; @@ -12,9 +12,12 @@ /** * The pigment itself */ -public abstract class CCPigment extends ItemComponent implements ADPigment { +public abstract class CCPigment implements ADPigment, TransientComponent { + + public final ItemStack stack; + public CCPigment(ItemStack stack) { - super(stack, HexCardinalComponents.PIGMENT); + this.stack = stack; } public static class ItemBased extends CCPigment { diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCVariantItem.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCVariantItem.java index 281dfb8014..57a40eb67b 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCVariantItem.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/cc/adimpl/CCVariantItem.java @@ -3,12 +3,16 @@ import at.petrak.hexcasting.api.addldata.ADVariantItem; import at.petrak.hexcasting.api.item.VariantItem; import at.petrak.hexcasting.fabric.cc.HexCardinalComponents; -import dev.onyxstudios.cca.api.v3.item.ItemComponent; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.Item; +import org.ladysnake.cca.api.v3.component.Component; import net.minecraft.world.item.ItemStack; -public abstract class CCVariantItem extends ItemComponent implements ADVariantItem { +public abstract class CCVariantItem implements ADVariantItem, Component { + final ItemStack stack; public CCVariantItem(ItemStack stack) { - super(stack, HexCardinalComponents.VARIANT_ITEM); + this.stack = stack; } public static class ItemBased extends CCVariantItem { @@ -37,5 +41,15 @@ public int getVariant() { public void setVariant(int variant) { variantItem.setVariant(this.stack, variant); } + + @Override + public void readFromNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + + } + + @Override + public void writeToNbt(CompoundTag tag, HolderLookup.Provider registryLookup) { + + } } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricConditionsBuilder.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricConditionsBuilder.java index eb4f16aa78..3b6821fd9e 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricConditionsBuilder.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricConditionsBuilder.java @@ -1,25 +1,26 @@ package at.petrak.hexcasting.fabric.datagen; import at.petrak.hexcasting.datagen.IXplatConditionsBuilder; -import com.google.gson.JsonObject; -import net.fabricmc.fabric.api.resource.conditions.v1.ConditionJsonProvider; -import net.fabricmc.fabric.api.resource.conditions.v1.DefaultResourceConditions; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.fabricmc.fabric.api.resource.conditions.v1.ResourceCondition; +import net.fabricmc.fabric.api.resource.conditions.v1.ResourceConditions; import net.fabricmc.fabric.impl.datagen.FabricDataGenHelper; -import net.minecraft.advancements.CriterionTriggerInstance; -import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementHolder; +import net.minecraft.advancements.Criterion; import net.minecraft.data.recipes.RecipeBuilder; +import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; -import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.item.crafting.Recipe; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; -import java.util.function.Consumer; public class HexFabricConditionsBuilder implements IXplatConditionsBuilder { - private final List conditions = new ArrayList<>(); + private final List conditions = new ArrayList<>(); private final RecipeBuilder parent; public HexFabricConditionsBuilder(RecipeBuilder parent) { @@ -28,18 +29,18 @@ public HexFabricConditionsBuilder(RecipeBuilder parent) { @Override public IXplatConditionsBuilder whenModLoaded(String modid) { - conditions.add(DefaultResourceConditions.allModsLoaded(modid)); + conditions.add(ResourceConditions.allModsLoaded(modid)); return this; } @Override public IXplatConditionsBuilder whenModMissing(String modid) { - conditions.add(DefaultResourceConditions.not(DefaultResourceConditions.allModsLoaded(modid))); + conditions.add(ResourceConditions.not(ResourceConditions.allModsLoaded(modid))); return this; } @Override - public RecipeBuilder unlockedBy(@NotNull String string, @NotNull CriterionTriggerInstance criterionTriggerInstance) { + public RecipeBuilder unlockedBy(@NotNull String string, @NotNull Criterion criterionTriggerInstance) { return parent.unlockedBy(string, criterionTriggerInstance); } @@ -55,40 +56,20 @@ public Item getResult() { @Override @SuppressWarnings("UnstableApiUsage") - public void save(@NotNull Consumer consumer, @NotNull ResourceLocation resourceLocation) { - Consumer withConditions = json -> { - FabricDataGenHelper.addConditions(json, conditions.toArray(new ConditionJsonProvider[0])); - - consumer.accept(new FinishedRecipe() { - @Override - public void serializeRecipeData(@NotNull JsonObject jsonObject) { - json.serializeRecipeData(jsonObject); - ConditionJsonProvider[] conditions = FabricDataGenHelper.consumeConditions(json); - ConditionJsonProvider.write(jsonObject, conditions); - } - - @Override - public ResourceLocation getId() { - return json.getId(); - } - - @Override - public RecipeSerializer getType() { - return json.getType(); - } - - @Nullable - @Override - public JsonObject serializeAdvancement() { - return json.serializeAdvancement(); - } - - @Nullable - @Override - public ResourceLocation getAdvancementId() { - return json.getAdvancementId(); - } - }); + public void save(@NotNull RecipeOutput consumer, @NotNull ResourceLocation resourceLocation) { + ResourceCondition[] array = conditions.toArray(ResourceCondition[]::new); + + RecipeOutput withConditions = new RecipeOutput() { + @Override + public void accept(ResourceLocation resourceLocation, Recipe recipe, @Nullable AdvancementHolder advancementHolder) { + FabricDataGenHelper.addConditions(consumer, array); + consumer.accept(resourceLocation, recipe, advancementHolder); + } + + @Override + public Advancement.Builder advancement() { + return consumer.advancement(); + } }; parent.save(withConditions, resourceLocation); diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java index 6bf539423a..c559c45eb8 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java @@ -8,11 +8,14 @@ import at.petrak.hexcasting.datagen.tag.HexActionTagProvider; import at.petrak.hexcasting.datagen.tag.HexBlockTagProvider; import at.petrak.hexcasting.datagen.tag.HexItemTagProvider; +import at.petrak.hexcasting.fabric.FabricHexInitializer; import at.petrak.hexcasting.fabric.recipe.FabricModConditionalIngredient; +import at.petrak.hexcasting.fabric.xplat.FabricXplatImpl; import at.petrak.hexcasting.xplat.IXplatAbstractions; import com.google.gson.JsonObject; import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; +import net.minecraft.core.RegistrySetBuilder; import net.minecraft.core.registries.Registries; import net.minecraft.data.loot.LootTableProvider; import net.minecraft.resources.ResourceLocation; @@ -33,20 +36,21 @@ public void onInitializeDataGenerator(FabricDataGenerator gen) { var pack = gen.createPack(); var xtags = IXplatAbstractions.INSTANCE.tags(); + var provider = gen.getRegistries(); - pack.addProvider((FabricDataGenerator.Pack.Factory) x -> new HexplatRecipes(x, INGREDIENTS, HexFabricConditionsBuilder::new)); + pack.addProvider((FabricDataGenerator.Pack.Factory) x -> new HexplatRecipes(x, provider, INGREDIENTS, HexFabricConditionsBuilder::new)); var btagProviderWrapper = new BlockTagProviderWrapper(); // CURSED pack.addProvider((output, lookup) -> { btagProviderWrapper.provider = new HexBlockTagProvider(output, lookup, xtags); return btagProviderWrapper.provider; }); - pack.addProvider((output, lookup) -> new HexItemTagProvider(output, lookup, btagProviderWrapper.provider, xtags)); + pack.addProvider((output, lookup) -> new HexItemTagProvider(output, lookup, btagProviderWrapper.provider.contentsGetter(), xtags)); pack.addProvider(HexActionTagProvider::new); pack.addProvider((FabricDataGenerator.Pack.Factory) (output) -> new LootTableProvider( - output, Set.of(), List.of(new LootTableProvider.SubProviderEntry(HexLootTables::new, LootContextParamSets.ALL_PARAMS)) + output, Set.of(), List.of(new LootTableProvider.SubProviderEntry(HexLootTables::new, LootContextParamSets.ALL_PARAMS)), provider )); } @@ -117,10 +121,10 @@ public EnumMap dyes() { new Ingredient.ItemValue(new ItemStack(DyeItem.byColor(col))), new Ingredient.TagValue( TagKey.create(Registries.ITEM, - new ResourceLocation("c", col.getSerializedName() + "_dye"))), + ResourceLocation.fromNamespaceAndPath("c", col.getSerializedName() + "_dye"))), new Ingredient.TagValue( TagKey.create(Registries.ITEM, - new ResourceLocation("c", col.getSerializedName() + "_dyes")) + ResourceLocation.fromNamespaceAndPath("c", col.getSerializedName() + "_dyes")) )))); } return out; @@ -162,6 +166,11 @@ private static TagKey tag(String s) { } private static TagKey tag(String namespace, String s) { - return TagKey.create(Registries.ITEM, new ResourceLocation(namespace, s)); + return TagKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(namespace, s)); + } + + @Override + public void buildRegistry(RegistrySetBuilder registryBuilder) { + } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/accessories/AccessoriesApiInterop.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/accessories/AccessoriesApiInterop.java new file mode 100644 index 0000000000..666d6cccac --- /dev/null +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/accessories/AccessoriesApiInterop.java @@ -0,0 +1,47 @@ +package at.petrak.hexcasting.fabric.interop.accessories; + +import at.petrak.hexcasting.api.misc.DiscoveryHandlers; +import at.petrak.hexcasting.common.items.HexBaubleItem; +import at.petrak.hexcasting.common.items.magic.ItemCreativeUnlocker; +import at.petrak.hexcasting.common.lib.HexItems; +import io.wispforest.accessories.api.AccessoriesAPI; +import io.wispforest.accessories.api.AccessoriesCapability; +import io.wispforest.accessories.api.Accessory; +import io.wispforest.accessories.api.attributes.AccessoryAttributeBuilder; +import io.wispforest.accessories.api.slot.SlotReference; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.world.item.ItemStack; + +import static io.wispforest.accessories.api.client.AccessoriesRendererRegistry.registerRenderer; + +public class AccessoriesApiInterop { + public static void init() { + BuiltInRegistries.ITEM.stream().forEach(item -> { + if (item instanceof HexBaubleItem bauble) { + AccessoriesAPI.registerAccessory(item, new Accessory() { + @Override + public void getDynamicModifiers(ItemStack stack, SlotReference slot, AccessoryAttributeBuilder builder) { + bauble.getHexBaubleAttrs(stack).forEach(builder::addExclusive); + } + }); + } + }); + + + DiscoveryHandlers.addDebugItemDiscoverer((player, type) -> { + AccessoriesCapability slots = AccessoriesCapability.get(player); + if (slots != null) { + var stack2 = slots.getEquipped(stack -> ItemCreativeUnlocker.isDebug(stack, type)); + if (stack2 != null) return stack2.getFirst().stack(); + } + return ItemStack.EMPTY; + }); + } + + @Environment(EnvType.CLIENT) + public static void clientInit() { + registerRenderer(HexItems.SCRYING_LENS, LensAccessoryRenderer::new); + } +} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/accessories/LensAccessoryRenderer.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/accessories/LensAccessoryRenderer.java new file mode 100644 index 0000000000..2e80525fe5 --- /dev/null +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/accessories/LensAccessoryRenderer.java @@ -0,0 +1,46 @@ +package at.petrak.hexcasting.fabric.interop.accessories; + +import at.petrak.hexcasting.common.lib.HexItems; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Axis; +import io.wispforest.accessories.api.client.AccessoryRenderer; +import io.wispforest.accessories.api.slot.SlotReference; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.EntityModel; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; + +/** + * @author WireSegal + * Created at 9:50 AM on 7/25/22. + */ +public class LensAccessoryRenderer implements AccessoryRenderer { + @Override + @SuppressWarnings("unchecked") + public void render(ItemStack stack, SlotReference slotReference, PoseStack matrices, EntityModel model, MultiBufferSource multiBufferSource, int light, float v, float v1, float v2, float v3, float v4, float v5) { + if (stack.is(HexItems.SCRYING_LENS) && + model instanceof PlayerModel playerModel && slotReference.entity() instanceof Player) { + + // from https://github.com/Creators-of-Create/Create/blob/ee33823ed0b5084af10ed131a1626ce71db4c07e/src/main/java/com/simibubi/create/compat/curios/GogglesCurioRenderer.java + + // Translate and rotate with our head + matrices.pushPose(); + + // Translate and scale to our head + matrices.translate(0, 0, 0.3); + matrices.mulPose(Axis.ZP.rotationDegrees(180.0f)); + matrices.scale(0.625f, 0.625f, 0.625f); + + // Render + var instance = Minecraft.getInstance(); + instance.getItemRenderer().renderStatic(stack, ItemDisplayContext.HEAD, + light, OverlayTexture.NO_OVERLAY, matrices, multiBufferSource, instance.level, 0); + matrices.popPose(); + } + } +} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/BrainsweepeeEmiStack.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/BrainsweepeeEmiStack.java index 4fd6772fa9..ef5a1d6124 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/BrainsweepeeEmiStack.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/BrainsweepeeEmiStack.java @@ -9,6 +9,7 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.core.component.DataComponentPatch; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -25,9 +26,7 @@ public class BrainsweepeeEmiStack extends EmiStack { public BrainsweepeeEmiStack(BrainsweepeeIngredient ingr) { this.ingredient = ingr; - - var bareId = this.ingredient.getSomeKindOfReasonableIDForEmi(); - this.id = modLoc(bareId); + this.id = modLoc(this.ingredient.getSomeKindOfReasonableIDForEmi()); } @Override @@ -41,7 +40,7 @@ public boolean isEmpty() { } @Override - public CompoundTag getNbt() { + public DataComponentPatch getComponentChanges() { return null; } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiPhialRecipe.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiPhialRecipe.java index 2e74629169..e3a2bfde60 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiPhialRecipe.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiPhialRecipe.java @@ -2,7 +2,6 @@ import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.interop.utils.PhialRecipeStackBuilder; -import dev.emi.emi.EmiUtil; import dev.emi.emi.api.recipe.EmiRecipe; import dev.emi.emi.api.recipe.EmiRecipeCategory; import dev.emi.emi.api.stack.EmiIngredient; @@ -12,6 +11,8 @@ import org.jetbrains.annotations.Nullable; import java.util.List; +import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; import java.util.stream.Collectors; import static at.petrak.hexcasting.api.HexAPI.modLoc; @@ -23,7 +24,7 @@ public class EmiPhialRecipe implements EmiRecipe { private final EmiIngredient bottle; private final EmiIngredient outputs; - private final int uniq = EmiUtil.RANDOM.nextInt(); + private final int uniq = ThreadLocalRandom.current().nextInt(); public EmiPhialRecipe() { var stacks = PhialRecipeStackBuilder.createStacks(); diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/HexEMIPlugin.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/HexEMIPlugin.java index 3c10fb9d4f..a1aa0cf4bd 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/HexEMIPlugin.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/HexEMIPlugin.java @@ -10,7 +10,9 @@ import dev.emi.emi.api.render.EmiTexture; import dev.emi.emi.api.stack.EmiIngredient; import dev.emi.emi.api.stack.EmiStack; +import net.minecraft.core.Holder; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.crafting.RecipeHolder; import static at.petrak.hexcasting.api.HexAPI.modLoc; @@ -44,13 +46,13 @@ public void register(EmiRegistry registry) { registry.addWorkstation(PHIAL, EmiIngredient.of(HexTags.Items.STAVES)); registry.addWorkstation(EDIFY, EmiIngredient.of(HexTags.Items.STAVES)); - for (BrainsweepRecipe recipe : registry.getRecipeManager() + for (RecipeHolder recipe : registry.getRecipeManager() .getAllRecipesFor(HexRecipeStuffRegistry.BRAINSWEEP_TYPE)) { - var inputBlocks = EmiIngredient.of(recipe.blockIn().getDisplayedStacks().stream() + var inputBlocks = EmiIngredient.of(recipe.value().blockIn().getDisplayedStacks().stream() .map(EmiStack::of).toList()); - var inputEntity = new BrainsweepeeEmiStack(recipe.entityIn()); - var output = EmiStack.of(recipe.result().getBlock()); - registry.addRecipe(new EmiBrainsweepRecipe(inputBlocks, inputEntity, output, recipe.getId())); + var inputEntity = new BrainsweepeeEmiStack(recipe.value().entityIn()); + var output = EmiStack.of(recipe.value().result().getBlock()); + registry.addRecipe(new EmiBrainsweepRecipe(inputBlocks, inputEntity, output, recipe.id())); } if (PhialRecipeStackBuilder.shouldAddRecipe()) { diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/trinkets/LensTrinketRenderer.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/trinkets/LensTrinketRenderer.java deleted file mode 100644 index 805905d03f..0000000000 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/trinkets/LensTrinketRenderer.java +++ /dev/null @@ -1,54 +0,0 @@ -package at.petrak.hexcasting.fabric.interop.trinkets; - -import at.petrak.hexcasting.common.lib.HexItems; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Axis; -import dev.emi.trinkets.api.SlotReference; -import dev.emi.trinkets.api.client.TrinketRenderer; -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.EntityModel; -import net.minecraft.client.model.PlayerModel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.block.model.ItemTransforms; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemDisplayContext; -import net.minecraft.world.item.ItemStack; - -/** - * @author WireSegal - * Created at 9:50 AM on 7/25/22. - */ -public class LensTrinketRenderer implements TrinketRenderer { - @Override - @SuppressWarnings("unchecked") - public void render(ItemStack stack, SlotReference slotReference, EntityModel model, - PoseStack matrices, MultiBufferSource multiBufferSource, int light, LivingEntity entity, - float limbAngle, float limbDistance, float tickDelta, float animationProgress, - float headYaw, float headPitch) { - if (stack.is(HexItems.SCRYING_LENS) && - model instanceof PlayerModel playerModel && - entity instanceof AbstractClientPlayer player) { - - // from https://github.com/Creators-of-Create/Create/blob/ee33823ed0b5084af10ed131a1626ce71db4c07e/src/main/java/com/simibubi/create/compat/curios/GogglesCurioRenderer.java - - // Translate and rotate with our head - matrices.pushPose(); - TrinketRenderer.followBodyRotations(entity, playerModel); - TrinketRenderer.translateToFace(matrices, playerModel, player, headYaw, headPitch); - - // Translate and scale to our head - matrices.translate(0, 0, 0.3); - matrices.mulPose(Axis.ZP.rotationDegrees(180.0f)); - matrices.scale(0.625f, 0.625f, 0.625f); - - // Render - var instance = Minecraft.getInstance(); - instance.getItemRenderer().renderStatic(stack, ItemDisplayContext.HEAD, - light, OverlayTexture.NO_OVERLAY, matrices, multiBufferSource, instance.level, 0); - matrices.popPose(); - } - } - -} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/trinkets/TrinketsApiInterop.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/trinkets/TrinketsApiInterop.java deleted file mode 100644 index 54e51ed446..0000000000 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/trinkets/TrinketsApiInterop.java +++ /dev/null @@ -1,58 +0,0 @@ -package at.petrak.hexcasting.fabric.interop.trinkets; - -import at.petrak.hexcasting.api.misc.DiscoveryHandlers; -import at.petrak.hexcasting.common.items.HexBaubleItem; -import at.petrak.hexcasting.common.items.magic.ItemCreativeUnlocker; -import at.petrak.hexcasting.common.lib.HexItems; -import com.google.common.collect.Multimap; -import dev.emi.trinkets.api.SlotReference; -import dev.emi.trinkets.api.Trinket; -import dev.emi.trinkets.api.TrinketComponent; -import dev.emi.trinkets.api.TrinketsApi; -import dev.emi.trinkets.api.client.TrinketRendererRegistry; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.ai.attributes.Attribute; -import net.minecraft.world.entity.ai.attributes.AttributeModifier; -import net.minecraft.world.item.ItemStack; - -import java.util.Optional; -import java.util.UUID; - -public class TrinketsApiInterop { - public static void init() { - BuiltInRegistries.ITEM.stream().forEach(item -> { - if (item instanceof HexBaubleItem bauble) { - TrinketsApi.registerTrinket(item, new Trinket() { - @Override - public Multimap getModifiers(ItemStack stack, SlotReference slot, - LivingEntity entity, UUID uuid) { - var map = Trinket.super.getModifiers(stack, slot, entity, uuid); - map.putAll(bauble.getHexBaubleAttrs(stack)); - return map; - } - }); - } - }); - - - DiscoveryHandlers.addDebugItemDiscoverer((player, type) -> { - Optional optional = TrinketsApi.getTrinketComponent(player); - if (optional.isPresent()) { - TrinketComponent component = optional.get(); - var equipped = component.getEquipped(stack -> ItemCreativeUnlocker.isDebug(stack, type)); - if (!equipped.isEmpty()) { - return equipped.get(0).getB(); - } - } - return ItemStack.EMPTY; - }); - } - - @Environment(EnvType.CLIENT) - public static void clientInit() { - TrinketRendererRegistry.registerRenderer(HexItems.SCRYING_LENS, new LensTrinketRenderer()); - } -} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/loot/FabricHexLootModJankery.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/loot/FabricHexLootModJankery.java index 5aadc8df41..ecf41ed746 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/loot/FabricHexLootModJankery.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/loot/FabricHexLootModJankery.java @@ -2,18 +2,22 @@ import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.common.loot.AddPerWorldPatternToScrollFunc; +import at.petrak.hexcasting.common.loot.AddHexToAncientCypherFunc; import at.petrak.hexcasting.fabric.FabricHexInitializer; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Blocks; 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.entries.LootTableReference; +import net.minecraft.world.level.storage.loot.entries.NestedLootTable; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; import org.jetbrains.annotations.NotNull; +import java.util.List; import java.util.function.Consumer; import static at.petrak.hexcasting.api.HexAPI.modLoc; @@ -22,32 +26,36 @@ public class FabricHexLootModJankery { public static final ResourceLocation FUNC_AMETHYST_SHARD_REDUCER = modLoc("amethyst_shard_reducer"); - public static void lootLoad(ResourceLocation id, Consumer addPool) { + public static void lootLoad(ResourceKey id, Consumer addPool) { if (id.equals(Blocks.AMETHYST_CLUSTER.getLootTable())) { addPool.accept(makeAmethystInjectPool()); } - int countRange = FabricHexInitializer.CONFIG.server.scrollRangeForLootTable(id); + int countRange = FabricHexInitializer.CONFIG.server.scrollRangeForLootTable(id.location()); if (countRange != -1) { addPool.accept(makeScrollAddPool(countRange)); } - if (FabricHexInitializer.CONFIG.server.shouldInjectLore(id)) { - addPool.accept(makeLoreAddPool(FabricHexInitializer.CONFIG.server.getLoreChance())); + if (FabricHexInitializer.CONFIG.server.shouldInjectLore(id.location())) { + addPool.accept(makeLoreAddPool(FabricHexInitializer.CONFIG.server.loreChance())); + } + + if (FabricHexInitializer.CONFIG.server.shouldInjectCyphers(id.location())) { + addPool.accept(makeCypherAddPool(FabricHexInitializer.CONFIG.server.cypherChance())); } } @NotNull private static LootPool.Builder makeAmethystInjectPool() { return LootPool.lootPool() - .add(LootTableReference.lootTableReference(TABLE_INJECT_AMETHYST_CLUSTER)); + .add(NestedLootTable.lootTableReference(TABLE_INJECT_AMETHYST_CLUSTER)); } private static LootPool.Builder makeScrollAddPool(int range) { return LootPool.lootPool() .setRolls(UniformGenerator.between(-range, range)) .add(LootItem.lootTableItem(HexItems.SCROLL_LARGE)) - .apply(() -> new AddPerWorldPatternToScrollFunc(new LootItemCondition[0])); + .apply(() -> new AddPerWorldPatternToScrollFunc(List.of(new LootItemCondition[0]))); } private static LootPool.Builder makeLoreAddPool(double chance) { @@ -56,4 +64,12 @@ private static LootPool.Builder makeLoreAddPool(double chance) { .setRolls(ConstantValue.exactly(1)) .add(LootItem.lootTableItem(HexItems.LORE_FRAGMENT)); } + + private static LootPool.Builder makeCypherAddPool(double chance) { + return LootPool.lootPool() + .when(LootItemRandomChanceCondition.randomChance((float) chance)) + .setRolls(ConstantValue.exactly(1)) + .add(LootItem.lootTableItem(HexItems.ANCIENT_CYPHER)) + .apply(() -> new AddHexToAncientCypherFunc(List.of(new LootItemCondition[0]))); + } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricClipContextMixin.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricClipContextMixin.java index d2793487d0..098f8ae603 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricClipContextMixin.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricClipContextMixin.java @@ -11,12 +11,12 @@ @Mixin(ClipContext.class) public abstract class FabricClipContextMixin { - @Redirect(method = "", + @Redirect(method = "(Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/world/level/ClipContext$Block;Lnet/minecraft/world/level/ClipContext$Fluid;Lnet/minecraft/world/entity/Entity;)V", at = @At( value = "INVOKE", target = "Lnet/minecraft/world/phys/shapes/CollisionContext;of" + "(Lnet/minecraft/world/entity/Entity;)Lnet/minecraft/world/phys/shapes/CollisionContext;")) - public CollisionContext hex$getCollisionContext(Entity entity) { + private static CollisionContext hex$getCollisionContext(Entity entity) { if (entity == null) return CollisionContext.empty(); return CollisionContext.of(entity); diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricEnchantmentTableBlockMixin.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricEnchantmentTableBlockMixin.java index 09bc4ac83c..27d70e7619 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricEnchantmentTableBlockMixin.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricEnchantmentTableBlockMixin.java @@ -3,14 +3,14 @@ import at.petrak.hexcasting.xplat.IForgeLikeBlock; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.EnchantmentTableBlock; +import net.minecraft.world.level.block.EnchantingTableBlock; import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -@Mixin(EnchantmentTableBlock.class) +@Mixin(EnchantingTableBlock.class) public class FabricEnchantmentTableBlockMixin { @Inject(method = "isValidBookShelf", at = @At("HEAD"), cancellable = true) private static void treatAsBookshelf(Level level, BlockPos blockPos, BlockPos blockPos2, CallbackInfoReturnable cir) { diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricMixinReloadableServerResources.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricMixinReloadableServerResources.java deleted file mode 100644 index 70b6bc2113..0000000000 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricMixinReloadableServerResources.java +++ /dev/null @@ -1,40 +0,0 @@ -package at.petrak.hexcasting.fabric.mixin; - -import at.petrak.hexcasting.api.HexAPI; -import at.petrak.hexcasting.fabric.loot.FabricHexLootModJankery; -import at.petrak.hexcasting.mixin.accessor.AccessorLootTable; -import net.minecraft.server.ReloadableServerResources; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.storage.loot.LootDataId; -import net.minecraft.world.level.storage.loot.LootDataType; -import net.minecraft.world.level.storage.loot.functions.LootItemFunctions; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -import java.util.Arrays; -import java.util.concurrent.CompletableFuture; - -@Mixin(ReloadableServerResources.class) -public class FabricMixinReloadableServerResources { - // Add the amethyst shard - @Inject(method = "loadResources", at = @At("RETURN"), cancellable = true) - private static void onLoadResources(CallbackInfoReturnable> cir) { - cir.setReturnValue(cir.getReturnValue().thenApply((rsr) -> { - var amethystTable = rsr.getLootData().getLootTable(Blocks.AMETHYST_CLUSTER.getLootTable()); - var theCoolerAmethystTable = (AccessorLootTable) amethystTable; - var oldFuncs = theCoolerAmethystTable.hex$getFunctions(); - var newFuncs = Arrays.copyOf(oldFuncs, oldFuncs.length + 1); - var shardReducer = rsr.getLootData().getElement(new LootDataId<>(LootDataType.MODIFIER, FabricHexLootModJankery.FUNC_AMETHYST_SHARD_REDUCER)); - if (shardReducer != null) { - newFuncs[newFuncs.length - 1] = shardReducer; - theCoolerAmethystTable.hex$setFunctions(newFuncs); - theCoolerAmethystTable.hex$setCompositeFunction(LootItemFunctions.compose(newFuncs)); - } else { - HexAPI.LOGGER.warn("{} was not found?", FabricHexLootModJankery.FUNC_AMETHYST_SHARD_REDUCER); - } - return rsr; - })); - } -} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricPlayerMixin.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricPlayerMixin.java deleted file mode 100644 index 2c7584663f..0000000000 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricPlayerMixin.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.petrak.hexcasting.fabric.mixin; - -import at.petrak.hexcasting.common.lib.HexAttributes; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.ai.attributes.AttributeSupplier; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(Player.class) -public abstract class FabricPlayerMixin extends LivingEntity { - protected FabricPlayerMixin(EntityType entityType, Level level) { - super(entityType, level); - } - - @Inject(at = @At("RETURN"), method = "createAttributes") - private static void hex$addAttributes(CallbackInfoReturnable cir) { - var out = cir.getReturnValue(); - out.add(HexAttributes.GRID_ZOOM); - out.add(HexAttributes.SCRY_SIGHT); - } -} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/client/FabricModelManagerMixin.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/client/FabricModelManagerMixin.java index b644801a83..2c856a896f 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/client/FabricModelManagerMixin.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/client/FabricModelManagerMixin.java @@ -1,9 +1,11 @@ package at.petrak.hexcasting.fabric.mixin.client; import at.petrak.hexcasting.client.RegisterClientStuff; +import com.llamalad7.mixinextras.sugar.Local; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.util.profiling.ProfilerFiller; @@ -14,21 +16,21 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; +import java.util.HashMap; import java.util.Map; // https://github.com/VazkiiMods/Botania/blob/986dff2e8cd9f40f7e4d6ed7b30c98944bdb3b87/Fabric/src/main/java/vazkii/botania/fabric/mixin/client/ModelManagerFabricMixin.java#L34 @Mixin(ModelManager.class) public class FabricModelManagerMixin { @Shadow - private Map bakedRegistry; + private Map bakedRegistry; @Inject(at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/client/resources/model/ModelBakery;" + - "getBakedTopLevelModels()Ljava/util/Map;", shift = At.Shift.AFTER), - method = "Lnet/minecraft/client/resources/model/ModelManager;apply(" + - "Lnet/minecraft/client/resources/model/ModelManager$ReloadState;" + - "Lnet/minecraft/util/profiling/ProfilerFiller;)V", - locals = LocalCapture.CAPTURE_FAILEXCEPTION) - private void onModelBake(ModelManager.ReloadState reloadState, ProfilerFiller profiler, CallbackInfo ci, ModelBakery modelLoader) { - RegisterClientStuff.onModelBake(modelLoader, this.bakedRegistry); + "getBakedTopLevelModels()Ljava/util/Map;", shift = At.Shift.AFTER), + method = "apply(Lnet/minecraft/client/resources/model/ModelManager$ReloadState;Lnet/minecraft/util/profiling/ProfilerFiller;)V" + ) + private void onModelBake(ModelManager.ReloadState reloadState, ProfilerFiller profiler, CallbackInfo ci, @Local ModelBakery modelLoader) { + Map newRegistry = new HashMap<>(this.bakedRegistry); + RegisterClientStuff.onModelBake(modelLoader, newRegistry); } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/network/FabricPacketHandler.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/network/FabricPacketHandler.java index 3a6b1af179..c6ded2f815 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/network/FabricPacketHandler.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/network/FabricPacketHandler.java @@ -2,8 +2,11 @@ import at.petrak.hexcasting.common.msgs.*; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import org.apache.logging.log4j.util.TriConsumer; @@ -12,41 +15,55 @@ import java.util.function.Function; public class FabricPacketHandler { + public static void initPackets() { + PayloadTypeRegistry.playC2S().register(MsgShiftScrollC2S.TYPE, MsgShiftScrollC2S.STREAM_CODEC); + PayloadTypeRegistry.playC2S().register(MsgNewSpellPatternC2S.TYPE, MsgNewSpellPatternC2S.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgNewSpellPatternS2C.TYPE, MsgNewSpellPatternS2C.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgOpenSpellGuiS2C.TYPE, MsgOpenSpellGuiS2C.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgBeepS2C.TYPE, MsgBeepS2C.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgShiftScrollC2S.TYPE, MsgShiftScrollC2S.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgCastParticleS2C.TYPE, MsgCastParticleS2C.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgBlinkS2C.TYPE, MsgBlinkS2C.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgClearSpiralPatternsS2C.TYPE, MsgClearSpiralPatternsS2C.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgNewWallScrollS2C.TYPE, MsgNewWallScrollS2C.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgRecalcWallScrollDisplayS2C.TYPE, MsgRecalcWallScrollDisplayS2C.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(MsgNewSpiralPatternsS2C.TYPE, MsgNewSpiralPatternsS2C.STREAM_CODEC); + } + public static void init() { - ServerPlayNetworking.registerGlobalReceiver(MsgNewSpellPatternC2S.ID, - makeServerBoundHandler(MsgNewSpellPatternC2S::deserialize, MsgNewSpellPatternC2S::handle)); - ServerPlayNetworking.registerGlobalReceiver( - MsgShiftScrollC2S.ID, makeServerBoundHandler(MsgShiftScrollC2S::deserialize, MsgShiftScrollC2S::handle)); + ServerPlayNetworking.registerGlobalReceiver(MsgShiftScrollC2S.TYPE, + makeServerBoundHandler(MsgShiftScrollC2S::handle)); + ServerPlayNetworking.registerGlobalReceiver(MsgNewSpellPatternC2S.TYPE, + makeServerBoundHandler(MsgNewSpellPatternC2S::handle)); } - private static ServerPlayNetworking.PlayChannelHandler makeServerBoundHandler( - Function decoder, TriConsumer handle) { - return (server, player, _handler, buf, _responseSender) -> handle.accept(decoder.apply(buf), server, player); + private static ServerPlayNetworking.PlayPayloadHandler makeServerBoundHandler( + TriConsumer handle) { + return (payload, context) -> handle.accept(payload, context.server(), context.player()); } public static void initClient() { - ClientPlayNetworking.registerGlobalReceiver(MsgNewSpellPatternS2C.ID, - makeClientBoundHandler(MsgNewSpellPatternS2C::deserialize, MsgNewSpellPatternS2C::handle)); + ClientPlayNetworking.registerGlobalReceiver(MsgNewSpellPatternS2C.TYPE, + makeClientBoundHandler(MsgNewSpellPatternS2C::handle)); ClientPlayNetworking.registerGlobalReceiver( - MsgBlinkS2C.ID, makeClientBoundHandler(MsgBlinkS2C::deserialize, MsgBlinkS2C::handle)); - ClientPlayNetworking.registerGlobalReceiver(MsgCastParticleS2C.ID, - makeClientBoundHandler(MsgCastParticleS2C::deserialize, MsgCastParticleS2C::handle)); - ClientPlayNetworking.registerGlobalReceiver(MsgOpenSpellGuiS2C.ID, - makeClientBoundHandler(MsgOpenSpellGuiS2C::deserialize, MsgOpenSpellGuiS2C::handle)); - ClientPlayNetworking.registerGlobalReceiver(MsgBeepS2C.ID, - makeClientBoundHandler(MsgBeepS2C::deserialize, MsgBeepS2C::handle)); - ClientPlayNetworking.registerGlobalReceiver(MsgNewWallScrollS2C.ID, - makeClientBoundHandler(MsgNewWallScrollS2C::deserialize, MsgNewWallScrollS2C::handle)); - ClientPlayNetworking.registerGlobalReceiver(MsgRecalcWallScrollDisplayS2C.ID, - makeClientBoundHandler(MsgRecalcWallScrollDisplayS2C::deserialize, MsgRecalcWallScrollDisplayS2C::handle)); - ClientPlayNetworking.registerGlobalReceiver(MsgNewSpiralPatternsS2C.ID, - makeClientBoundHandler(MsgNewSpiralPatternsS2C::deserialize, MsgNewSpiralPatternsS2C::handle)); - ClientPlayNetworking.registerGlobalReceiver(MsgClearSpiralPatternsS2C.ID, - makeClientBoundHandler(MsgClearSpiralPatternsS2C::deserialize, MsgClearSpiralPatternsS2C::handle)); + MsgBlinkS2C.TYPE, makeClientBoundHandler(MsgBlinkS2C::handle)); + ClientPlayNetworking.registerGlobalReceiver(MsgCastParticleS2C.TYPE, + makeClientBoundHandler(MsgCastParticleS2C::handle)); + ClientPlayNetworking.registerGlobalReceiver(MsgOpenSpellGuiS2C.TYPE, + makeClientBoundHandler(MsgOpenSpellGuiS2C::handle)); + ClientPlayNetworking.registerGlobalReceiver(MsgBeepS2C.TYPE, + makeClientBoundHandler(MsgBeepS2C::handle)); + ClientPlayNetworking.registerGlobalReceiver(MsgNewWallScrollS2C.TYPE, + makeClientBoundHandler(MsgNewWallScrollS2C::handle)); + ClientPlayNetworking.registerGlobalReceiver(MsgRecalcWallScrollDisplayS2C.TYPE, + makeClientBoundHandler(MsgRecalcWallScrollDisplayS2C::handle)); + ClientPlayNetworking.registerGlobalReceiver(MsgNewSpiralPatternsS2C.TYPE, + makeClientBoundHandler(MsgNewSpiralPatternsS2C::handle)); + ClientPlayNetworking.registerGlobalReceiver(MsgClearSpiralPatternsS2C.TYPE, + makeClientBoundHandler(MsgClearSpiralPatternsS2C::handle)); } - private static ClientPlayNetworking.PlayChannelHandler makeClientBoundHandler( - Function decoder, Consumer handler) { - return (_client, _handler, buf, _responseSender) -> handler.accept(decoder.apply(buf)); + private static ClientPlayNetworking.PlayPayloadHandler makeClientBoundHandler(Consumer handler) { + return (payload, context) -> handler.accept(payload); } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/recipe/FabricModConditionalIngredient.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/recipe/FabricModConditionalIngredient.java index a25fdea847..1785b26f45 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/recipe/FabricModConditionalIngredient.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/recipe/FabricModConditionalIngredient.java @@ -4,21 +4,29 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; -import io.github.tropheusj.serialization_hooks.ingredient.BaseCustomIngredient; -import io.github.tropheusj.serialization_hooks.ingredient.IngredientDeserializer; +import com.mojang.serialization.Codec; +import com.mojang.serialization.JsonOps; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.fabricmc.fabric.api.recipe.v1.ingredient.CustomIngredient; +import net.fabricmc.fabric.api.recipe.v1.ingredient.CustomIngredientSerializer; 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.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; + import java.util.Arrays; -import java.util.Objects; +import java.util.List; import static at.petrak.hexcasting.api.HexAPI.modLoc; -public class FabricModConditionalIngredient extends BaseCustomIngredient { + +public class FabricModConditionalIngredient extends Ingredient implements CustomIngredient { public static final ResourceLocation ID = modLoc("mod_conditional"); private final Ingredient main; @@ -27,8 +35,21 @@ public class FabricModConditionalIngredient extends BaseCustomIngredient { private final Ingredient toUse; + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + Ingredient.CODEC.fieldOf("main").forGetter(FabricModConditionalIngredient::getMain), + Codec.STRING.fieldOf("modid").forGetter(FabricModConditionalIngredient::getModid), + Ingredient.CODEC.fieldOf("ifModLoaded").forGetter(FabricModConditionalIngredient::getIfModLoaded) + ).apply(instance, FabricModConditionalIngredient::new)); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + Ingredient.CONTENTS_STREAM_CODEC, FabricModConditionalIngredient::getMain, + ByteBufCodecs.STRING_UTF8, FabricModConditionalIngredient::getModid, + Ingredient.CONTENTS_STREAM_CODEC, FabricModConditionalIngredient::getIfModLoaded, + FabricModConditionalIngredient::new + ); + protected FabricModConditionalIngredient(Ingredient main, String modid, Ingredient ifModLoaded) { - super(IXplatAbstractions.INSTANCE.isModPresent(modid) ? Arrays.stream(ifModLoaded.values) : Arrays.stream(main.values)); + super(Arrays.stream((IXplatAbstractions.INSTANCE.isModPresent(modid) ? ifModLoaded : main).values)); this.main = main; this.modid = modid; this.ifModLoaded = ifModLoaded; @@ -36,9 +57,7 @@ protected FabricModConditionalIngredient(Ingredient main, String modid, Ingredie this.toUse = IXplatAbstractions.INSTANCE.isModPresent(modid) ? ifModLoaded : main; } - /** - * Creates a new ingredient matching the given stack - */ + public static FabricModConditionalIngredient of(Ingredient main, String modid, Ingredient ifModLoaded) { return new FabricModConditionalIngredient(main, modid, ifModLoaded); } @@ -49,66 +68,52 @@ public boolean test(@Nullable ItemStack input) { } @Override - public @NotNull JsonElement toJson() { - JsonObject json = new JsonObject(); - json.addProperty("type", Objects.toString(ID)); - json.add("default", main.toJson()); - json.addProperty("modid", modid); - json.add("if_loaded", ifModLoaded.toJson()); - return json; + public List getMatchingStacks() { + return List.of(); } @Override - public IngredientDeserializer getDeserializer() { - return Deserializer.INSTANCE; + public boolean requiresTesting() { + return false; } - public static Ingredient fromNetwork(FriendlyByteBuf friendlyByteBuf) { - return Ingredient.fromNetwork(friendlyByteBuf); // Just send the actual ingredient + public Ingredient getMain() { + return main; } - public static Ingredient fromJson(JsonElement element) { - if (element == null || element.isJsonNull() || !element.isJsonObject()) - return null; - - JsonObject object = element.getAsJsonObject(); - - if (object.has("type") && object.getAsJsonPrimitive("type").getAsString().equals(ID.toString())) { - if (object.has("modid") && IXplatAbstractions.INSTANCE.isModPresent(object.getAsJsonPrimitive("modid").getAsString())) { - try { - Ingredient ingredient = Ingredient.fromJson(object.get("if_loaded")); - if (!ingredient.isEmpty()) { - return ingredient; - } - } catch (JsonParseException e) { - // NO-OP - } - } - - return Ingredient.fromJson(object.get("default")); - } + public Ingredient getToUse() { + return toUse; + } + + public Ingredient getIfModLoaded() { + return ifModLoaded; + } - return null; + public String getModid() { + return modid; } @Override - public void toNetwork(@NotNull FriendlyByteBuf friendlyByteBuf) { - friendlyByteBuf.writeResourceLocation(ID); - toUse.toNetwork(friendlyByteBuf); + public CustomIngredientSerializer getSerializer() { + return Serializer.INSTANCE; } - public static class Deserializer implements IngredientDeserializer { - public static final Deserializer INSTANCE = new Deserializer(); + public static class Serializer implements CustomIngredientSerializer { + public static final Serializer INSTANCE = new Serializer(); + + @Override + public ResourceLocation getIdentifier() { + return FabricModConditionalIngredient.ID; + } @Override - public Ingredient fromNetwork(FriendlyByteBuf buffer) { - return FabricModConditionalIngredient.fromNetwork(buffer); + public MapCodec getCodec(boolean b) { + return CODEC; } - @Nullable @Override - public Ingredient fromJson(JsonObject object) { - return FabricModConditionalIngredient.fromJson(object); + public StreamCodec getPacketCodec() { + return STREAM_CODEC; } } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/recipe/FabricUnsealedIngredient.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/recipe/FabricUnsealedIngredient.java index 267b7e8ebe..107e369a21 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/recipe/FabricUnsealedIngredient.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/recipe/FabricUnsealedIngredient.java @@ -4,38 +4,70 @@ import at.petrak.hexcasting.api.utils.NBTHelper; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import io.github.tropheusj.serialization_hooks.ingredient.BaseCustomIngredient; -import io.github.tropheusj.serialization_hooks.ingredient.IngredientDeserializer; +import com.mojang.serialization.Codec; +import com.mojang.serialization.JsonOps; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.fabricmc.fabric.api.recipe.v1.ingredient.CustomIngredient; +import net.fabricmc.fabric.api.recipe.v1.ingredient.CustomIngredientSerializer; +import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.CustomData; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.ShapedRecipe; import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; +import javax.xml.crypto.Data; +import java.util.Arrays; +import java.util.List; import java.util.Objects; import java.util.stream.Stream; import static at.petrak.hexcasting.api.HexAPI.modLoc; -public class FabricUnsealedIngredient extends BaseCustomIngredient { +public class FabricUnsealedIngredient extends Ingredient implements CustomIngredient { public static final ResourceLocation ID = modLoc("unsealed"); private final ItemStack stack; + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + ItemStack.CODEC.fieldOf("item").forGetter(FabricUnsealedIngredient::getStack) + ).apply(instance, FabricUnsealedIngredient::new)); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ResourceLocation.STREAM_CODEC, FabricUnsealedIngredient::getId, + ItemStack.STREAM_CODEC, FabricUnsealedIngredient::getStack, + (a, b) -> new FabricUnsealedIngredient(b) + ); + private static ItemStack createStack(ItemStack base) { ItemStack newStack = base.copy(); - NBTHelper.putString(newStack, IotaHolderItem.TAG_OVERRIDE_VISUALLY, "any"); + CompoundTag tag = newStack.get(DataComponents.CUSTOM_DATA).copyTag(); + NBTHelper.putString(tag, "VisualOverride", "any"); + newStack.set(DataComponents.CUSTOM_DATA, CustomData.of(tag)); return newStack; } protected FabricUnsealedIngredient(ItemStack stack) { - super(Stream.of(new Ingredient.ItemValue(createStack(stack)))); + super(Arrays.stream(Ingredient.of(stack).values)); this.stack = stack; } + public ItemStack getStack() { + return stack; + } + + public ResourceLocation getId() { + return ID; + } + /** * Creates a new ingredient matching the given stack */ @@ -53,54 +85,36 @@ public boolean test(@Nullable ItemStack input) { } @Override - public @NotNull JsonElement toJson() { - JsonObject json = new JsonObject(); - json.addProperty("type", Objects.toString(ID)); - json.addProperty("item", Objects.toString(BuiltInRegistries.ITEM.getKey(this.stack.getItem()))); - return json; + public List getMatchingStacks() { + return List.of(stack); } @Override - public IngredientDeserializer getDeserializer() { - return Deserializer.INSTANCE; + public boolean requiresTesting() { + return false; } - public static Ingredient fromNetwork(FriendlyByteBuf friendlyByteBuf) { - return new FabricUnsealedIngredient(friendlyByteBuf.readItem()); + @Override + public CustomIngredientSerializer getSerializer() { + return Serializer.INSTANCE; } - public static Ingredient fromJson(JsonElement element) { - if (element == null || element.isJsonNull() || !element.isJsonObject()) { - return null; - } + public static class Serializer implements CustomIngredientSerializer { + public static final Serializer INSTANCE = new Serializer(); - JsonObject object = element.getAsJsonObject(); - - if (object.has("type") && object.getAsJsonPrimitive("type").getAsString().equals(ID.toString())) { - return new FabricUnsealedIngredient(new ItemStack(ShapedRecipe.itemFromJson(object))); + @Override + public ResourceLocation getIdentifier() { + return FabricUnsealedIngredient.ID; } - return null; - } - - @Override - public void toNetwork(FriendlyByteBuf friendlyByteBuf) { - friendlyByteBuf.writeResourceLocation(ID); - friendlyByteBuf.writeItem(stack); - } - - public static class Deserializer implements IngredientDeserializer { - public static final Deserializer INSTANCE = new Deserializer(); - @Override - public Ingredient fromNetwork(FriendlyByteBuf buffer) { - return FabricUnsealedIngredient.fromNetwork(buffer); + public MapCodec getCodec(boolean b) { + return CODEC; } - @Nullable @Override - public Ingredient fromJson(JsonObject object) { - return FabricUnsealedIngredient.fromJson(object); + public StreamCodec getPacketCodec() { + return STREAM_CODEC; } } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricClientXplatImpl.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricClientXplatImpl.java index c5738b03f3..bd5048cdfe 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricClientXplatImpl.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricClientXplatImpl.java @@ -1,10 +1,9 @@ package at.petrak.hexcasting.fabric.xplat; import at.petrak.hexcasting.api.client.ClientCastingStack; -import at.petrak.hexcasting.common.msgs.IMessage; import at.petrak.hexcasting.fabric.cc.HexCardinalComponents; import at.petrak.hexcasting.fabric.client.ExtendedTexture; -import at.petrak.hexcasting.fabric.interop.trinkets.TrinketsApiInterop; +import at.petrak.hexcasting.fabric.interop.accessories.AccessoriesApiInterop; import at.petrak.hexcasting.interop.HexInterop; import at.petrak.hexcasting.xplat.IClientXplatAbstractions; import at.petrak.hexcasting.xplat.IXplatAbstractions; @@ -19,6 +18,8 @@ import net.minecraft.client.renderer.item.ItemProperties; import net.minecraft.client.renderer.item.ItemPropertyFunction; import net.minecraft.client.renderer.texture.AbstractTexture; +import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -32,8 +33,8 @@ public class FabricClientXplatImpl implements IClientXplatAbstractions { @Override - public void sendPacketToServer(IMessage packet) { - ClientPlayNetworking.send(packet.getFabricId(), packet.toBuf()); + public void sendPacketToServer(CustomPacketPayload packet) { + ClientPlayNetworking.send(packet); } @Override @@ -43,8 +44,8 @@ public void setRenderLayer(Block block, RenderType type) { @Override public void initPlatformSpecific() { - if (IXplatAbstractions.INSTANCE.isModPresent(HexInterop.Fabric.TRINKETS_API_ID)) { - TrinketsApiInterop.clientInit(); + if (IXplatAbstractions.INSTANCE.isModPresent(HexInterop.Fabric.ACCESSORIES_API_ID)) { + AccessoriesApiInterop.clientInit(); } } @@ -98,4 +99,9 @@ public boolean fabricAdditionalQuenchFrustumCheck(AABB aabb) { } return LEVEL_RENDERER_FRUSTUM.isVisible(aabb); } + + @Override + public String getModelLocVariant() { + return ModelResourceLocation.INVENTORY_VARIANT; + } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricRegister.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricRegister.java new file mode 100644 index 0000000000..aa2acf1ab1 --- /dev/null +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricRegister.java @@ -0,0 +1,55 @@ +package at.petrak.hexcasting.fabric.xplat; + +import at.petrak.hexcasting.xplat.IXplatRegister; +import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder; +import net.minecraft.core.Holder; +import net.minecraft.core.MappedRegistry; +import net.minecraft.core.RegistrationInfo; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceKey; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.Supplier; + +import static at.petrak.hexcasting.api.HexAPI.modLoc; + +public class FabricRegister implements IXplatRegister { + private final Registry register; + private final Map map; + + @SuppressWarnings("unchecked") + public FabricRegister(ResourceKey> registryKey) { + this.register = (Registry) BuiltInRegistries.REGISTRY.get(registryKey.location()); + this.map = new HashMap<>(); + } + + @SuppressWarnings("unchecked") + public FabricRegister(ResourceKey> registryKey, Map map) { + this.register = (Registry) BuiltInRegistries.REGISTRY.get(registryKey.location()); + this.map = map; + } + + + @Override + public Supplier register(String id, Supplier provider) { + T value = provider.get(); + Registry.register(register, modLoc(id), value); + return () -> value; + } + + @Override + public Holder registerHolder(String id, Supplier provider) { + T value = provider.get(); + map.put(id, value); + return register.wrapAsHolder(value); + } + + @Override + public void registerAll() { + map.forEach((string, value) -> + Registry.register(register, modLoc(string), value) + ); + } +} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricXplatImpl.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricXplatImpl.java index da6a443908..643166430f 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricXplatImpl.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/xplat/FabricXplatImpl.java @@ -21,14 +21,17 @@ import at.petrak.hexcasting.api.player.AltioraAbility; import at.petrak.hexcasting.api.player.FlightAbility; import at.petrak.hexcasting.api.player.Sentinel; +import at.petrak.hexcasting.common.lib.HexDataComponents; import at.petrak.hexcasting.common.lib.HexRegistries; -import at.petrak.hexcasting.common.msgs.IMessage; +import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredientType; +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredientType; import at.petrak.hexcasting.fabric.cc.HexCardinalComponents; -import at.petrak.hexcasting.fabric.interop.trinkets.TrinketsApiInterop; +import at.petrak.hexcasting.fabric.interop.accessories.AccessoriesApiInterop; import at.petrak.hexcasting.fabric.recipe.FabricUnsealedIngredient; import at.petrak.hexcasting.interop.HexInterop; import at.petrak.hexcasting.interop.pehkui.PehkuiInterop; import at.petrak.hexcasting.xplat.IXplatAbstractions; +import at.petrak.hexcasting.xplat.IXplatRegister; import at.petrak.hexcasting.xplat.IXplatTags; import at.petrak.hexcasting.xplat.Platform; import com.google.common.base.Suppliers; @@ -38,7 +41,6 @@ import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; import net.fabricmc.fabric.api.event.player.UseItemCallback; import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder; -import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.networking.v1.PlayerLookup; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; @@ -52,7 +54,9 @@ import net.minecraft.advancements.critereon.ItemPredicate; import net.minecraft.core.*; import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; @@ -106,8 +110,8 @@ public boolean isModPresent(String id) { @Override public void initPlatformSpecific() { - if (this.isModPresent(HexInterop.Fabric.TRINKETS_API_ID)) { - TrinketsApiInterop.init(); + if (this.isModPresent(HexInterop.Fabric.ACCESSORIES_API_ID)) { + AccessoriesApiInterop.init(); } } @@ -117,30 +121,30 @@ public void initPlatformSpecific() { // } @Override - public void sendPacketToPlayer(ServerPlayer target, IMessage packet) { - ServerPlayNetworking.send(target, packet.getFabricId(), packet.toBuf()); + public void sendPacketToPlayer(ServerPlayer target, CustomPacketPayload packet) { + ServerPlayNetworking.send(target, packet); } @Override - public void sendPacketNear(Vec3 pos, double radius, ServerLevel dimension, IMessage packet) { + public void sendPacketNear(Vec3 pos, double radius, ServerLevel dimension, CustomPacketPayload packet) { sendPacketToPlayers(PlayerLookup.around(dimension, pos, radius), packet); } @Override - public void sendPacketTracking(Entity entity, IMessage packet) { + public void sendPacketTracking(Entity entity, CustomPacketPayload packet) { sendPacketToPlayers(PlayerLookup.tracking(entity), packet); } - private void sendPacketToPlayers(Collection players, IMessage packet) { - var pkt = ServerPlayNetworking.createS2CPacket(packet.getFabricId(), packet.toBuf()); + private void sendPacketToPlayers(Collection players, CustomPacketPayload packet) { + var pkt = ServerPlayNetworking.createS2CPacket(packet); for (var p : players) { p.connection.send(pkt); } } @Override - public Packet toVanillaClientboundPacket(IMessage message) { - return ServerPlayNetworking.createS2CPacket(message.getFabricId(), message.toBuf()); + public Packet toVanillaClientboundPacket(CustomPacketPayload message) { + return (Packet) (Object) ServerPlayNetworking.createS2CPacket(message); } @Override @@ -237,21 +241,13 @@ public void clearCastingData(ServerPlayer player) { @Override public @Nullable ADMediaHolder findMediaHolder(ItemStack stack) { - var cc = HexCardinalComponents.MEDIA_HOLDER.maybeGet(stack); - return cc.orElse(null); - } - - @Override - public @Nullable ADMediaHolder findMediaHolder(ServerPlayer player) { - var cc = HexCardinalComponents.MEDIA_HOLDER.maybeGet(player); - return cc.orElse(null); + return HexCardinalComponents.MEDIA_HOLDER_LOOKUP.find(stack, null); } @Override public @Nullable ADIotaHolder findDataHolder(ItemStack stack) { - var cc = HexCardinalComponents.IOTA_HOLDER.maybeGet(stack); - return cc.orElse(null); + return HexCardinalComponents.IOTA_HOLDER_LOOKUP.find(stack, null); } @Override @@ -264,24 +260,22 @@ ADIotaHolder findDataHolder(Entity entity) { @Override public @Nullable ADHexHolder findHexHolder(ItemStack stack) { - var cc = HexCardinalComponents.HEX_HOLDER.maybeGet(stack); - return cc.orElse(null); + return HexCardinalComponents.HEX_HOLDER_LOOKUP.find(stack, null); } @Override - public @Nullable ADVariantItem findVariantHolder(ItemStack stack) { - var cc = HexCardinalComponents.VARIANT_ITEM.maybeGet(stack); - return cc.orElse(null); + public ADVariantItem findVariantHolder(ItemStack stack) { + return HexCardinalComponents.VARIANT_ITEM_LOOKUP.find(stack, null); } @Override public boolean isPigment(ItemStack stack) { - return HexCardinalComponents.PIGMENT.isProvidedBy(stack); + return stack.get(HexDataComponents.PIGMENT) != null; } @Override public ColorProvider getColorProvider(FrozenPigment pigment) { - var cc = HexCardinalComponents.PIGMENT.maybeGet(pigment.item()); + var cc = Optional.ofNullable(HexCardinalComponents.PIGMENT_ITEM_LOOKUP.find(pigment.item(), null)); return cc.map(col -> col.provideColor(pigment.owner())).orElse(ColorProvider.MISSING); } @@ -369,18 +363,18 @@ public boolean isCorrectTierForDrops(Tier tier, BlockState bs) { @Override public Item.Properties addEquipSlotFabric(EquipmentSlot slot) { - return new FabricItemSettings().equipmentSlot(s -> slot); + return new Item.Properties().equipmentSlot((e, s) -> slot); } private static final IXplatTags TAGS = new IXplatTags() { @Override public TagKey amethystDust() { - return HexTags.Items.create(new ResourceLocation("c", "amethyst_dusts")); + return HexTags.Items.create(ResourceLocation.fromNamespaceAndPath("c", "amethyst_dusts")); } @Override public TagKey gems() { - return HexTags.Items.create(new ResourceLocation("c", "gems")); + return HexTags.Items.create(ResourceLocation.fromNamespaceAndPath("c", "gems")); } }; @@ -394,7 +388,7 @@ public LootItemCondition.Builder isShearsCondition() { return AnyOfCondition.anyOf( MatchTool.toolMatches(ItemPredicate.Builder.item().of(Items.SHEARS)), MatchTool.toolMatches(ItemPredicate.Builder.item().of( - HexTags.Items.create(new ResourceLocation("c", "shears")))) + HexTags.Items.create(ResourceLocation.fromNamespaceAndPath("c", "shears")))) ); } @@ -424,8 +418,8 @@ public String getModName(String namespace) { .buildAndRegister() ); private static final Supplier>> IOTA_TYPE_REGISTRY = Suppliers.memoize(() -> - FabricRegistryBuilder.from(new DefaultedMappedRegistry<>( - HexAPI.MOD_ID + ":null", HexRegistries.IOTA_TYPE, + FabricRegistryBuilder.from(new MappedRegistry<>( + HexRegistries.IOTA_TYPE, Lifecycle.stable(), false)) .buildAndRegister() ); @@ -451,6 +445,22 @@ public String getModName(String namespace) { .buildAndRegister() ); + private static final Supplier>> STATE_INGREDIENT_REGISTRY = Suppliers.memoize(() -> + FabricRegistryBuilder.from(new DefaultedMappedRegistry<>( + HexAPI.MOD_ID + ":none", + HexRegistries.STATE_INGREDIENT, + Lifecycle.stable(), false)) + .buildAndRegister() + ); + + private static final Supplier>> BRAINSWEEPEE_INGREDIENT_REGISTRY = Suppliers.memoize(() -> + FabricRegistryBuilder.from(new DefaultedMappedRegistry<>( + HexAPI.MOD_ID + ":none", + HexRegistries.BRAINSWEEPEE_INGREDIENT, + Lifecycle.stable(), false)) + .buildAndRegister() + ); + @Override public Registry getActionRegistry() { return ACTION_REGISTRY.get(); @@ -481,6 +491,16 @@ public Registry getEvalSoundRegistry() { return EVAL_SOUNDS_REGISTRY.get(); } + @Override + public Registry> getStateIngredientRegistry() { + return STATE_INGREDIENT_REGISTRY.get(); + } + + @Override + public Registry> getBrainsweepeeIngredientRegistry() { + return BRAINSWEEPEE_INGREDIENT_REGISTRY.get(); + } + @Override public boolean isBreakingAllowed(ServerLevel world, BlockPos pos, BlockState state, @Nullable Player player) { if (player == null) @@ -500,6 +520,11 @@ public boolean isPlacingAllowed(ServerLevel world, BlockPos pos, ItemStack block return success.getResult() == InteractionResult.PASS; // No other mod tried to consume this } + @Override + public IXplatRegister createRegistar(ResourceKey> registryKey) { + return new FabricRegister<>(registryKey); + } + private static PehkuiInterop.ApiAbstraction PEHKUI_API = null; @Override diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index 85a8965ace..de6446c006 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -46,19 +46,19 @@ ], "accessWidener": "fabricasting.accesswidener", "depends": { - "minecraft": "=1.20.1", - "java": ">=17", + "minecraft": "=1.21.1", + "java": ">=21", "fabricloader": ">=0.14", "fabric": ">=0.84", "fabric-language-kotlin": ">=1.9.4+kotlin.1.8.21", - "cardinal-components-base": "~5.2.1", - "cardinal-components-entity": "~5.2.1", - "cardinal-components-item": "~5.2.1", - "cardinal-components-block": "~5.2.1", - "paucal": ">=0.6.0-pre <0.7.0", - "cloth-config": "11.1.*", + "cardinal-components-base": "~6.1.3", + "cardinal-components-entity": "~6.1.3", + "cardinal-components-item": "~6.1.3", + "cardinal-components-block": "~6.1.3", + "paucal": ">0.7.0", + "cloth-config": "15.0.*", "patchouli": ">=1.20.1-80", - "inline": ">=1.20.1-1.0.1" + "inline": ">=1.21.1-1.2.2" }, "suggests": { "pehkui": ">=3.7.6", diff --git a/Fabric/src/main/resources/fabricasting.accesswidener b/Fabric/src/main/resources/fabricasting.accesswidener index 59935daf3e..0677ad09ea 100644 --- a/Fabric/src/main/resources/fabricasting.accesswidener +++ b/Fabric/src/main/resources/fabricasting.accesswidener @@ -15,4 +15,7 @@ accessible method net/minecraft/world/item/context/UseOnContext (Lnet/min accessible method net/minecraft/world/damagesource/DamageSources source (Lnet/minecraft/resources/ResourceKey;)Lnet/minecraft/world/damagesource/DamageSource; accessible method net/minecraft/world/damagesource/DamageSources source (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/entity/Entity;)Lnet/minecraft/world/damagesource/DamageSource; accessible class net/minecraft/client/resources/model/ModelManager$ReloadState +accessible class net/minecraft/network/protocol/game/ClientboundAddEntityPacket +accessible method net/minecraft/network/protocol/game/ClientboundAddEntityPacket (Lnet/minecraft/network/RegistryFriendlyByteBuf;)V +accessible method net/minecraft/network/protocol/game/ClientboundAddEntityPacket write (Lnet/minecraft/network/RegistryFriendlyByteBuf;)V accessible method net/minecraft/world/level/block/state/properties/BlockSetType register (Lnet/minecraft/world/level/block/state/properties/BlockSetType;)Lnet/minecraft/world/level/block/state/properties/BlockSetType; \ No newline at end of file diff --git a/Fabric/src/main/resources/fabricasting.mixins.json b/Fabric/src/main/resources/fabricasting.mixins.json index f23162f39f..2a51dc2e0c 100644 --- a/Fabric/src/main/resources/fabricasting.mixins.json +++ b/Fabric/src/main/resources/fabricasting.mixins.json @@ -11,9 +11,7 @@ "FabricEnchantmentTableBlockMixin", "FabricItemEntityMixin", "FabricLivingEntityMixin", - "FabricMixinReloadableServerResources", "FabricMobMixin", - "FabricPlayerMixin", "FabricVillagerTurnIntoWitchMixin" ], "client": [ diff --git a/Neoforge/build.gradle b/Neoforge/build.gradle index bea4ef7681..8a04a9d5e6 100644 --- a/Neoforge/build.gradle +++ b/Neoforge/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'com.gradleup.shadow' +} + architectury { platformSetupLoomIde() neoForge() @@ -16,6 +20,7 @@ configurations { canBeResolved = true canBeConsumed = false } + shadowCommon compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentNeoForge.extendsFrom common @@ -30,17 +35,24 @@ configurations { repositories { mavenCentral() + mavenLocal() // If you have mod jar dependencies in ./libs, you can declare them as a repository like so: flatDir { dir 'libs' } - maven { url "https://maven.neoforged.net/releases/" } + maven { url = "https://maven.neoforged.net/releases/" } // paucal and patchi maven { url = 'https://maven.blamejared.com' } - // caelus elytra - maven { url = "https://maven.theillusivec4.top" } + maven { + name = "Curios" + url = uri("https://maven.theillusivec4.top/") + } + maven { + name = "C4's Maven" + setUrl("https://maven.theillusivec4.top/") + } // pehkui maven { url = "https://jitpack.io" } // EMI @@ -61,39 +73,61 @@ repositories { dependencies { neoForge "net.neoforged:neoforge:${neoforgeVersion}" - common(project(path: ':Common', configuration: 'namedElements')) { transitive false } + implementation(project(path: ':Common', configuration: 'namedElements')) { transitive false } shadowBundle(project(path: ':Common', configuration: 'transformProductionNeoForge')) { transitive false } - implementation "thedarkcolour:kotlinforforge:$kotlinForForgeVersion" + modImplementation("thedarkcolour:kotlinforforge-neoforge:$kotlinForForgeVersion") { + exclude(group: "net.neoforged.fancymodloader", module: "loader") + } // === MANDATORY DEPS === - implementation "at.petra-k:paucal:$paucalVersion+$minecraftVersion-common" - implementation "vazkii.patchouli:Patchouli:1.21-$patchouliVersion-NEOFORGE-SNAPSHOT" - implementation "top.theillusivec4.caelus:caelus-forge:$caelusVersion" -// implementation("com.samsthenerd.inline:inline-forge:$minecraftVersion-$inlineVersion") + compileOnly("mezz.jei:jei-$minecraftVersion-neoforge-api:$jeiVersion") + runtimeOnly("mezz.jei:jei-$minecraftVersion-neoforge:$jeiVersion") + + compileOnly("top.theillusivec4.curios:curios-neoforge:$curiosVersion+$minecraftVersion:api") + runtimeOnly("top.theillusivec4.curios:curios-neoforge:$curiosVersion+$minecraftVersion") + + modImplementation "at.petra-k:paucal:$paucalVersion+$minecraftVersion-neoforge" + modImplementation "vazkii.patchouli:Patchouli:1.21-$patchouliVersion-NEOFORGE-SNAPSHOT" + modImplementation "com.illusivesoulworks.caelus:caelus-neoforge:$caelusVersion" + modImplementation "com.samsthenerd.inline:inline-neoforge:1.21.1-1.2.2-74" // needed for inline to run - runtimeOnly("me.shedaniel.cloth:cloth-config-forge:$clothConfigVersion") + modRuntimeOnly("me.shedaniel.cloth:cloth-config-forge:$clothConfigVersion") + modRuntimeOnly "com.samsthenerd.inline:inline-neoforge:$minecraftVersion-$inlineVersion" + modRuntimeOnly "dev.architectury:architectury-neoforge:$architecturyVersion" + // === OPTIONAL DEPS === - compileOnly "dev.emi:emi-neoforge:${emiVersion}:api" - runtimeOnly "dev.emi:emi-neoforge:${emiVersion}" + modCompileOnly "dev.emi:emi-neoforge:${emiVersion}:api" + modRuntimeOnly "dev.emi:emi-neoforge:${emiVersion}" modImplementation "io.wispforest:accessories-neoforge:$accessoriesVersion" - api("com.github.Virtuoel:Pehkui:${pehkuiVersion}-1.21-neoforge") + modApi("com.github.Virtuoel:Pehkui:${pehkuiVersion}-1.21-neoforge") // "Required due to issues with JIJ dependency resolving in arch or something" // https://github.com/wisp-forest/accessories forgeRuntimeLibrary("io.wispforest:endec:0.1.8") forgeRuntimeLibrary("io.wispforest.endec:gson:0.1.5") forgeRuntimeLibrary("io.wispforest.endec:netty:0.1.4") + forgeRuntimeLibrary("io.wispforest.endec:jankson:0.1.5") + forgeRuntimeLibrary("org.jetbrains.kotlin:kotlin-reflect:2.1.20") + forgeRuntimeLibrary("org.jetbrains.kotlin:kotlin-stdlib:2.1.20") + forgeRuntimeLibrary("org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.20") + forgeRuntimeLibrary("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.20") + forgeRuntimeLibrary("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2") + forgeRuntimeLibrary("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.10.2") + forgeRuntimeLibrary("org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1") + forgeRuntimeLibrary("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1") + forgeRuntimeLibrary("blue.endless:jankson:1.2.2") + forgeRuntimeLibrary("blue.endless:jankson:0.1.5") } def generatedResources = project(":Common").file("src/generated/resources") loom { runs { - create("forgeXplatDatagen") { + create("xplatDatagen") { data() name "Forge Xplat Datagen" @@ -101,9 +135,22 @@ loom { programArgs "--all", "--mod", project.modID programArgs "--output", generatedResources.absolutePath + programArgs "--existing", project(":Common").file("src/main/resources").absolutePath programArgs "--existing", file("src/main/resources").absolutePath programArgs "--existing", generatedResources.absolutePath } + create("Datagen") { + data() + name "NeoForge Datagen" + + vmArg("-Dhexcasting.neoforge_datagen") + + programArgs "--all", "--mod", project.modID + programArgs "--output", file("src/generated/resources").absolutePath + programArgs "--existing", project(":Common").file("src/main/resources").absolutePath + programArgs "--existing", file("src/main/resources").absolutePath + programArgs "--existing", file("src/generated/resources").absolutePath + } } } @@ -113,16 +160,6 @@ loom { // config "hexcasting_forge.mixins.json" //} -compileJava { - source(project(":Common").sourceSets.main.allSource) -} -compileKotlin { - source(project(":Common").sourceSets.main.kotlin) -} -compileTestKotlin { - source(project(":Common").sourceSets.main.kotlin) -} - sourceSets { main.resources.srcDirs += ['src/generated/resources', '../Common/src/generated/resources'] main.kotlin.srcDirs += 'src/main/java' @@ -138,4 +175,22 @@ processResources { } } -jar.finalizedBy('reobfJar') \ No newline at end of file +tasks.named('processResources') { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE +} + +tasks.named('sourcesJar') { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE +} + +shadowJar { + configurations = [project.configurations.shadowBundle] + archiveClassifier = 'dev-shadow' +} + +remapJar { + inputFile.set shadowJar.archiveFile + dependsOn shadowJar +} + +jar.finalizedBy('remapJar') \ No newline at end of file diff --git a/Neoforge/gradle.properties b/Neoforge/gradle.properties index 83205facce..3b624541aa 100644 --- a/Neoforge/gradle.properties +++ b/Neoforge/gradle.properties @@ -1,8 +1,11 @@ -neoforgeVersion=21.1.81 +neoforgeVersion=21.1.172 loom.platform=neoforge -kotlinForForgeVersion=5.6.0 +kotlinForForgeVersion=5.8.0 +kotlinBaseVersion=2.1.20 +kotlinxCoroutinesVersion= -curiosVersion=5.2.0-beta.3 -caelusVersion=3.1.0+1.20 +curiosVersion=9.5.1 +caelusVersion=7.0.1+1.21.1 +jeiVersion=19.25.1.328 diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/akashic_bookshelf.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/akashic_bookshelf.json new file mode 100644 index 0000000000..2f79ec12a3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/akashic_bookshelf.json @@ -0,0 +1,107 @@ +{ + "variants": { + "facing=east,has_books=false": { + "model": "hexcasting:block/akashic_bookshelf_empty", + "uvlock": true, + "y": 90 + }, + "facing=east,has_books=true": [ + { + "model": "hexcasting:block/akashic_bookshelf_1", + "uvlock": true, + "y": 90 + }, + { + "model": "hexcasting:block/akashic_bookshelf_2", + "uvlock": true, + "y": 90 + }, + { + "model": "hexcasting:block/akashic_bookshelf_3", + "uvlock": true, + "y": 90 + }, + { + "model": "hexcasting:block/akashic_bookshelf_4", + "uvlock": true, + "y": 90 + } + ], + "facing=north,has_books=false": { + "model": "hexcasting:block/akashic_bookshelf_empty", + "uvlock": true + }, + "facing=north,has_books=true": [ + { + "model": "hexcasting:block/akashic_bookshelf_1", + "uvlock": true + }, + { + "model": "hexcasting:block/akashic_bookshelf_2", + "uvlock": true + }, + { + "model": "hexcasting:block/akashic_bookshelf_3", + "uvlock": true + }, + { + "model": "hexcasting:block/akashic_bookshelf_4", + "uvlock": true + } + ], + "facing=south,has_books=false": { + "model": "hexcasting:block/akashic_bookshelf_empty", + "uvlock": true, + "y": 180 + }, + "facing=south,has_books=true": [ + { + "model": "hexcasting:block/akashic_bookshelf_1", + "uvlock": true, + "y": 180 + }, + { + "model": "hexcasting:block/akashic_bookshelf_2", + "uvlock": true, + "y": 180 + }, + { + "model": "hexcasting:block/akashic_bookshelf_3", + "uvlock": true, + "y": 180 + }, + { + "model": "hexcasting:block/akashic_bookshelf_4", + "uvlock": true, + "y": 180 + } + ], + "facing=west,has_books=false": { + "model": "hexcasting:block/akashic_bookshelf_empty", + "uvlock": true, + "y": 270 + }, + "facing=west,has_books=true": [ + { + "model": "hexcasting:block/akashic_bookshelf_1", + "uvlock": true, + "y": 270 + }, + { + "model": "hexcasting:block/akashic_bookshelf_2", + "uvlock": true, + "y": 270 + }, + { + "model": "hexcasting:block/akashic_bookshelf_3", + "uvlock": true, + "y": 270 + }, + { + "model": "hexcasting:block/akashic_bookshelf_4", + "uvlock": true, + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/akashic_ligature.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/akashic_ligature.json new file mode 100644 index 0000000000..c4552b4918 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/akashic_ligature.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/akashic_ligature" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/akashic_record.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/akashic_record.json new file mode 100644 index 0000000000..c2aa512a1e --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/akashic_record.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/akashic_record" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks.json new file mode 100644 index 0000000000..267e1b4d43 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/deco/amethyst_bricks" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks_small.json new file mode 100644 index 0000000000..66b78f9a12 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks_small.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/deco/amethyst_bricks_small" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_dust_block.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_dust_block.json new file mode 100644 index 0000000000..c27c62ffcb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_dust_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/amethyst_dust_block" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_edified_leaves.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_edified_leaves.json new file mode 100644 index 0000000000..db8af585b0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_edified_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/amethyst_edified_leaves" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_pillar.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_pillar.json new file mode 100644 index 0000000000..257e10ca4d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_pillar.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "hexcasting:block/deco/amethyst_pillar", + "x": 180 + }, + "facing=east": { + "model": "hexcasting:block/deco/amethyst_pillar", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "hexcasting:block/deco/amethyst_pillar", + "x": 90 + }, + "facing=south": { + "model": "hexcasting:block/deco/amethyst_pillar", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "hexcasting:block/deco/amethyst_pillar" + }, + "facing=west": { + "model": "hexcasting:block/deco/amethyst_pillar", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_sconce.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_sconce.json new file mode 100644 index 0000000000..af52410929 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_sconce.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/amethyst_sconce" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_tiles.json new file mode 100644 index 0000000000..b716f2a5a9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/amethyst_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/deco/amethyst_tiles" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper.json new file mode 100644 index 0000000000..1c809c022b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/ancient_scroll_paper" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..3a632c39f3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/ancient_scroll_paper_lantern" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/aventurine_edified_leaves.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/aventurine_edified_leaves.json new file mode 100644 index 0000000000..10383418f7 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/aventurine_edified_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/aventurine_edified_leaves" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/citrine_edified_leaves.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/citrine_edified_leaves.json new file mode 100644 index 0000000000..3207814e50 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/citrine_edified_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/citrine_edified_leaves" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/conjured_block.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/conjured_block.json new file mode 100644 index 0000000000..5e8ffe700c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/conjured_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/conjured" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/conjured_light.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/conjured_light.json new file mode 100644 index 0000000000..5e8ffe700c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/conjured_light.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/conjured" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/directrix/boolean.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/directrix/boolean.json new file mode 100644 index 0000000000..155f55cfe6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/directrix/boolean.json @@ -0,0 +1,142 @@ +{ + "variants": { + "energized=false,facing=down,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/dim_false_down", + "x": 90 + }, + "energized=false,facing=down,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/dim_neither_down", + "x": 90 + }, + "energized=false,facing=down,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/dim_true_down", + "x": 90 + }, + "energized=false,facing=east,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/dim_false_east", + "y": 90 + }, + "energized=false,facing=east,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/dim_neither_east", + "y": 90 + }, + "energized=false,facing=east,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/dim_true_east", + "y": 90 + }, + "energized=false,facing=north,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/dim_false_north" + }, + "energized=false,facing=north,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/dim_neither_north" + }, + "energized=false,facing=north,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/dim_true_north" + }, + "energized=false,facing=south,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/dim_false_south", + "y": 180 + }, + "energized=false,facing=south,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/dim_neither_south", + "y": 180 + }, + "energized=false,facing=south,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/dim_true_south", + "y": 180 + }, + "energized=false,facing=up,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/dim_false_up", + "x": -90 + }, + "energized=false,facing=up,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/dim_neither_up", + "x": -90 + }, + "energized=false,facing=up,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/dim_true_up", + "x": -90 + }, + "energized=false,facing=west,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/dim_false_west", + "y": 270 + }, + "energized=false,facing=west,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/dim_neither_west", + "y": 270 + }, + "energized=false,facing=west,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/dim_true_west", + "y": 270 + }, + "energized=true,facing=down,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/lit_false_down", + "x": 90 + }, + "energized=true,facing=down,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/lit_neither_down", + "x": 90 + }, + "energized=true,facing=down,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/lit_true_down", + "x": 90 + }, + "energized=true,facing=east,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/lit_false_east", + "y": 90 + }, + "energized=true,facing=east,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/lit_neither_east", + "y": 90 + }, + "energized=true,facing=east,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/lit_true_east", + "y": 90 + }, + "energized=true,facing=north,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/lit_false_north" + }, + "energized=true,facing=north,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/lit_neither_north" + }, + "energized=true,facing=north,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/lit_true_north" + }, + "energized=true,facing=south,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/lit_false_south", + "y": 180 + }, + "energized=true,facing=south,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/lit_neither_south", + "y": 180 + }, + "energized=true,facing=south,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/lit_true_south", + "y": 180 + }, + "energized=true,facing=up,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/lit_false_up", + "x": -90 + }, + "energized=true,facing=up,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/lit_neither_up", + "x": -90 + }, + "energized=true,facing=up,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/lit_true_up", + "x": -90 + }, + "energized=true,facing=west,state=false": { + "model": "hexcasting:block/circle/directrix/boolean/lit_false_west", + "y": 270 + }, + "energized=true,facing=west,state=neither": { + "model": "hexcasting:block/circle/directrix/boolean/lit_neither_west", + "y": 270 + }, + "energized=true,facing=west,state=true": { + "model": "hexcasting:block/circle/directrix/boolean/lit_true_west", + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/directrix/empty.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/directrix/empty.json new file mode 100644 index 0000000000..33b013562c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/directrix/empty.json @@ -0,0 +1,50 @@ +{ + "variants": { + "energized=false,facing=down": { + "model": "hexcasting:block/circle/directrix/empty/dim_down", + "x": 90 + }, + "energized=false,facing=east": { + "model": "hexcasting:block/circle/directrix/empty/dim_east", + "y": 90 + }, + "energized=false,facing=north": { + "model": "hexcasting:block/circle/directrix/empty/dim_north" + }, + "energized=false,facing=south": { + "model": "hexcasting:block/circle/directrix/empty/dim_south", + "y": 180 + }, + "energized=false,facing=up": { + "model": "hexcasting:block/circle/directrix/empty/dim_up", + "x": -90 + }, + "energized=false,facing=west": { + "model": "hexcasting:block/circle/directrix/empty/dim_west", + "y": 270 + }, + "energized=true,facing=down": { + "model": "hexcasting:block/circle/directrix/empty/lit_down", + "x": 90 + }, + "energized=true,facing=east": { + "model": "hexcasting:block/circle/directrix/empty/lit_east", + "y": 90 + }, + "energized=true,facing=north": { + "model": "hexcasting:block/circle/directrix/empty/lit_north" + }, + "energized=true,facing=south": { + "model": "hexcasting:block/circle/directrix/empty/lit_south", + "y": 180 + }, + "energized=true,facing=up": { + "model": "hexcasting:block/circle/directrix/empty/lit_up", + "x": -90 + }, + "energized=true,facing=west": { + "model": "hexcasting:block/circle/directrix/empty/lit_west", + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/directrix/redstone.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/directrix/redstone.json new file mode 100644 index 0000000000..c93068cabf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/directrix/redstone.json @@ -0,0 +1,96 @@ +{ + "variants": { + "energized=false,facing=down,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/dim_unpowered_down", + "x": 90 + }, + "energized=false,facing=down,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/dim_powered_down", + "x": 90 + }, + "energized=false,facing=east,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/dim_unpowered_east", + "y": 90 + }, + "energized=false,facing=east,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/dim_powered_east", + "y": 90 + }, + "energized=false,facing=north,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/dim_unpowered_north" + }, + "energized=false,facing=north,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/dim_powered_north" + }, + "energized=false,facing=south,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/dim_unpowered_south", + "y": 180 + }, + "energized=false,facing=south,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/dim_powered_south", + "y": 180 + }, + "energized=false,facing=up,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/dim_unpowered_up", + "x": -90 + }, + "energized=false,facing=up,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/dim_powered_up", + "x": -90 + }, + "energized=false,facing=west,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/dim_unpowered_west", + "y": 270 + }, + "energized=false,facing=west,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/dim_powered_west", + "y": 270 + }, + "energized=true,facing=down,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/lit_unpowered_down", + "x": 90 + }, + "energized=true,facing=down,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/lit_powered_down", + "x": 90 + }, + "energized=true,facing=east,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/lit_unpowered_east", + "y": 90 + }, + "energized=true,facing=east,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/lit_powered_east", + "y": 90 + }, + "energized=true,facing=north,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/lit_unpowered_north" + }, + "energized=true,facing=north,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/lit_powered_north" + }, + "energized=true,facing=south,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/lit_unpowered_south", + "y": 180 + }, + "energized=true,facing=south,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/lit_powered_south", + "y": 180 + }, + "energized=true,facing=up,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/lit_unpowered_up", + "x": -90 + }, + "energized=true,facing=up,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/lit_powered_up", + "x": -90 + }, + "energized=true,facing=west,powered=false": { + "model": "hexcasting:block/circle/directrix/redstone/lit_unpowered_west", + "y": 270 + }, + "energized=true,facing=west,powered=true": { + "model": "hexcasting:block/circle/directrix/redstone/lit_powered_west", + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_button.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_button.json new file mode 100644 index 0000000000..81efad6fd6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "hexcasting:block/edified_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "hexcasting:block/edified_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "hexcasting:block/edified_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "hexcasting:block/edified_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "hexcasting:block/edified_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "hexcasting:block/edified_button" + }, + "face=floor,facing=north,powered=true": { + "model": "hexcasting:block/edified_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "hexcasting:block/edified_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "hexcasting:block/edified_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "hexcasting:block/edified_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "hexcasting:block/edified_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "hexcasting:block/edified_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "hexcasting:block/edified_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "hexcasting:block/edified_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_door.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_door.json new file mode 100644 index 0000000000..029d3bd5d2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "hexcasting:block/edified_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "hexcasting:block/edified_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "hexcasting:block/edified_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "hexcasting:block/edified_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "hexcasting:block/edified_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "hexcasting:block/edified_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "hexcasting:block/edified_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "hexcasting:block/edified_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "hexcasting:block/edified_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "hexcasting:block/edified_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "hexcasting:block/edified_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "hexcasting:block/edified_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "hexcasting:block/edified_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "hexcasting:block/edified_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "hexcasting:block/edified_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "hexcasting:block/edified_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "hexcasting:block/edified_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "hexcasting:block/edified_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "hexcasting:block/edified_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "hexcasting:block/edified_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "hexcasting:block/edified_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "hexcasting:block/edified_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "hexcasting:block/edified_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "hexcasting:block/edified_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "hexcasting:block/edified_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "hexcasting:block/edified_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "hexcasting:block/edified_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "hexcasting:block/edified_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "hexcasting:block/edified_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "hexcasting:block/edified_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "hexcasting:block/edified_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "hexcasting:block/edified_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_fence.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_fence.json new file mode 100644 index 0000000000..7167013cf7 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "hexcasting:block/edified_fence_post" + } + }, + { + "apply": { + "model": "hexcasting:block/edified_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "hexcasting:block/edified_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "hexcasting:block/edified_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "hexcasting:block/edified_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_fence_gate.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_fence_gate.json new file mode 100644 index 0000000000..f925ddfddd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "hexcasting:block/edified_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "hexcasting:block/edified_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "hexcasting:block/edified_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "hexcasting:block/edified_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "hexcasting:block/edified_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "hexcasting:block/edified_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "hexcasting:block/edified_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "hexcasting:block/edified_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "hexcasting:block/edified_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "hexcasting:block/edified_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "hexcasting:block/edified_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "hexcasting:block/edified_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "hexcasting:block/edified_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "hexcasting:block/edified_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "hexcasting:block/edified_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "hexcasting:block/edified_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log.json new file mode 100644 index 0000000000..4cd8fe5d14 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/edified_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/edified_log" + }, + "axis=z": { + "model": "hexcasting:block/edified_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_amethyst.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_amethyst.json new file mode 100644 index 0000000000..7526dda321 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_amethyst.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/edified_log_amethyst_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/edified_log_amethyst" + }, + "axis=z": { + "model": "hexcasting:block/edified_log_amethyst_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_aventurine.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_aventurine.json new file mode 100644 index 0000000000..ed8e454e7e --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_aventurine.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/edified_log_aventurine_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/edified_log_aventurine" + }, + "axis=z": { + "model": "hexcasting:block/edified_log_aventurine_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_citrine.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_citrine.json new file mode 100644 index 0000000000..258b377acb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_citrine.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/edified_log_citrine_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/edified_log_citrine" + }, + "axis=z": { + "model": "hexcasting:block/edified_log_citrine_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_purple.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_purple.json new file mode 100644 index 0000000000..078f72a986 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_log_purple.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/edified_log_purple_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/edified_log_purple" + }, + "axis=z": { + "model": "hexcasting:block/edified_log_purple_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_panel.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_panel.json new file mode 100644 index 0000000000..17d99a7903 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_panel.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/edified_panel" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_planks.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_planks.json new file mode 100644 index 0000000000..a2d790f061 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_planks.json @@ -0,0 +1,17 @@ +{ + "variants": { + "": [ + { + "model": "hexcasting:block/edified_planks", + "weight": 3 + }, + { + "model": "hexcasting:block/edified_planks_2", + "weight": 3 + }, + { + "model": "hexcasting:block/edified_planks_3" + } + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_pressure_plate.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_pressure_plate.json new file mode 100644 index 0000000000..6da4bab988 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "hexcasting:block/edified_pressure_plate" + }, + "powered=true": { + "model": "hexcasting:block/edified_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_slab.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_slab.json new file mode 100644 index 0000000000..6a4d4be0d2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "hexcasting:block/edified_slab" + }, + "type=double": { + "model": "hexcasting:block/edified_planks" + }, + "type=top": { + "model": "hexcasting:block/edified_slab_top" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_stairs.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_stairs.json new file mode 100644 index 0000000000..23ac40ca7e --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "hexcasting:block/edified_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "hexcasting:block/edified_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "hexcasting:block/edified_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "hexcasting:block/edified_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "hexcasting:block/edified_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "hexcasting:block/edified_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "hexcasting:block/edified_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "hexcasting:block/edified_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "hexcasting:block/edified_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "hexcasting:block/edified_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "hexcasting:block/edified_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "hexcasting:block/edified_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "hexcasting:block/edified_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "hexcasting:block/edified_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_tile.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_tile.json new file mode 100644 index 0000000000..23d71da006 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_tile.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/edified_tile" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_trapdoor.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_trapdoor.json new file mode 100644 index 0000000000..0df527ca32 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_trapdoor.json @@ -0,0 +1,68 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "hexcasting:block/edified_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "hexcasting:block/edified_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "hexcasting:block/edified_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "hexcasting:block/edified_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "hexcasting:block/edified_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "hexcasting:block/edified_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "hexcasting:block/edified_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "hexcasting:block/edified_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "hexcasting:block/edified_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "hexcasting:block/edified_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "hexcasting:block/edified_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "hexcasting:block/edified_trapdoor_open", + "x": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "hexcasting:block/edified_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "hexcasting:block/edified_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "hexcasting:block/edified_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "hexcasting:block/edified_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_wood.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_wood.json new file mode 100644 index 0000000000..1d963101fc --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/edified_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/edified_wood_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/edified_wood" + }, + "axis=z": { + "model": "hexcasting:block/edified_wood_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/empty.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/empty.json new file mode 100644 index 0000000000..057ad53aa6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/empty.json @@ -0,0 +1,50 @@ +{ + "variants": { + "energized=false,facing=down": { + "model": "hexcasting:block/circle/impetus/empty/dim_down", + "x": 90 + }, + "energized=false,facing=east": { + "model": "hexcasting:block/circle/impetus/empty/dim_east", + "y": 90 + }, + "energized=false,facing=north": { + "model": "hexcasting:block/circle/impetus/empty/dim_north" + }, + "energized=false,facing=south": { + "model": "hexcasting:block/circle/impetus/empty/dim_south", + "y": 180 + }, + "energized=false,facing=up": { + "model": "hexcasting:block/circle/impetus/empty/dim_up", + "x": -90 + }, + "energized=false,facing=west": { + "model": "hexcasting:block/circle/impetus/empty/dim_west", + "y": 270 + }, + "energized=true,facing=down": { + "model": "hexcasting:block/circle/impetus/empty/lit_down", + "x": 90 + }, + "energized=true,facing=east": { + "model": "hexcasting:block/circle/impetus/empty/lit_east", + "y": 90 + }, + "energized=true,facing=north": { + "model": "hexcasting:block/circle/impetus/empty/lit_north" + }, + "energized=true,facing=south": { + "model": "hexcasting:block/circle/impetus/empty/lit_south", + "y": 180 + }, + "energized=true,facing=up": { + "model": "hexcasting:block/circle/impetus/empty/lit_up", + "x": -90 + }, + "energized=true,facing=west": { + "model": "hexcasting:block/circle/impetus/empty/lit_west", + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/look.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/look.json new file mode 100644 index 0000000000..0db9af4b2d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/look.json @@ -0,0 +1,50 @@ +{ + "variants": { + "energized=false,facing=down": { + "model": "hexcasting:block/circle/impetus/look/dim_down", + "x": 90 + }, + "energized=false,facing=east": { + "model": "hexcasting:block/circle/impetus/look/dim_east", + "y": 90 + }, + "energized=false,facing=north": { + "model": "hexcasting:block/circle/impetus/look/dim_north" + }, + "energized=false,facing=south": { + "model": "hexcasting:block/circle/impetus/look/dim_south", + "y": 180 + }, + "energized=false,facing=up": { + "model": "hexcasting:block/circle/impetus/look/dim_up", + "x": -90 + }, + "energized=false,facing=west": { + "model": "hexcasting:block/circle/impetus/look/dim_west", + "y": 270 + }, + "energized=true,facing=down": { + "model": "hexcasting:block/circle/impetus/look/lit_down", + "x": 90 + }, + "energized=true,facing=east": { + "model": "hexcasting:block/circle/impetus/look/lit_east", + "y": 90 + }, + "energized=true,facing=north": { + "model": "hexcasting:block/circle/impetus/look/lit_north" + }, + "energized=true,facing=south": { + "model": "hexcasting:block/circle/impetus/look/lit_south", + "y": 180 + }, + "energized=true,facing=up": { + "model": "hexcasting:block/circle/impetus/look/lit_up", + "x": -90 + }, + "energized=true,facing=west": { + "model": "hexcasting:block/circle/impetus/look/lit_west", + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/redstone.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/redstone.json new file mode 100644 index 0000000000..2ad46e21cd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/redstone.json @@ -0,0 +1,96 @@ +{ + "variants": { + "energized=false,facing=down,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/dim_down", + "x": 90 + }, + "energized=false,facing=down,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/dim_down", + "x": 90 + }, + "energized=false,facing=east,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/dim_east", + "y": 90 + }, + "energized=false,facing=east,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/dim_east", + "y": 90 + }, + "energized=false,facing=north,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/dim_north" + }, + "energized=false,facing=north,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/dim_north" + }, + "energized=false,facing=south,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/dim_south", + "y": 180 + }, + "energized=false,facing=south,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/dim_south", + "y": 180 + }, + "energized=false,facing=up,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/dim_up", + "x": -90 + }, + "energized=false,facing=up,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/dim_up", + "x": -90 + }, + "energized=false,facing=west,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/dim_west", + "y": 270 + }, + "energized=false,facing=west,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/dim_west", + "y": 270 + }, + "energized=true,facing=down,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/lit_down", + "x": 90 + }, + "energized=true,facing=down,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/lit_down", + "x": 90 + }, + "energized=true,facing=east,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/lit_east", + "y": 90 + }, + "energized=true,facing=east,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/lit_east", + "y": 90 + }, + "energized=true,facing=north,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/lit_north" + }, + "energized=true,facing=north,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/lit_north" + }, + "energized=true,facing=south,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/lit_south", + "y": 180 + }, + "energized=true,facing=south,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/lit_south", + "y": 180 + }, + "energized=true,facing=up,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/lit_up", + "x": -90 + }, + "energized=true,facing=up,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/lit_up", + "x": -90 + }, + "energized=true,facing=west,powered=false": { + "model": "hexcasting:block/circle/impetus/redstone/lit_west", + "y": 270 + }, + "energized=true,facing=west,powered=true": { + "model": "hexcasting:block/circle/impetus/redstone/lit_west", + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/rightclick.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/rightclick.json new file mode 100644 index 0000000000..32a772b27e --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/impetus/rightclick.json @@ -0,0 +1,50 @@ +{ + "variants": { + "energized=false,facing=down": { + "model": "hexcasting:block/circle/impetus/rightclick/dim_down", + "x": 90 + }, + "energized=false,facing=east": { + "model": "hexcasting:block/circle/impetus/rightclick/dim_east", + "y": 90 + }, + "energized=false,facing=north": { + "model": "hexcasting:block/circle/impetus/rightclick/dim_north" + }, + "energized=false,facing=south": { + "model": "hexcasting:block/circle/impetus/rightclick/dim_south", + "y": 180 + }, + "energized=false,facing=up": { + "model": "hexcasting:block/circle/impetus/rightclick/dim_up", + "x": -90 + }, + "energized=false,facing=west": { + "model": "hexcasting:block/circle/impetus/rightclick/dim_west", + "y": 270 + }, + "energized=true,facing=down": { + "model": "hexcasting:block/circle/impetus/rightclick/lit_down", + "x": 90 + }, + "energized=true,facing=east": { + "model": "hexcasting:block/circle/impetus/rightclick/lit_east", + "y": 90 + }, + "energized=true,facing=north": { + "model": "hexcasting:block/circle/impetus/rightclick/lit_north" + }, + "energized=true,facing=south": { + "model": "hexcasting:block/circle/impetus/rightclick/lit_south", + "y": 180 + }, + "energized=true,facing=up": { + "model": "hexcasting:block/circle/impetus/rightclick/lit_up", + "x": -90 + }, + "energized=true,facing=west": { + "model": "hexcasting:block/circle/impetus/rightclick/lit_west", + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay.json new file mode 100644 index 0000000000..c6bce09cb5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/quenched_allay" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks.json new file mode 100644 index 0000000000..e3d66f7ed3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/quenched_allay_bricks" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks_small.json new file mode 100644 index 0000000000..72aad9ca91 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks_small.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/quenched_allay_bricks_small" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_tiles.json new file mode 100644 index 0000000000..ddb791a0b1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/quenched_allay_tiles" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/scroll_paper.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/scroll_paper.json new file mode 100644 index 0000000000..2621fa1b04 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/scroll_paper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/scroll_paper" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/scroll_paper_lantern.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/scroll_paper_lantern.json new file mode 100644 index 0000000000..328e1b46d9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/scroll_paper_lantern.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/scroll_paper_lantern" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate.json new file mode 100644 index 0000000000..8d7a817cc1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate.json @@ -0,0 +1,122 @@ +{ + "variants": { + "energized=false,face=ceiling,facing=east": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 180 + }, + "energized=false,face=ceiling,facing=north": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 180 + }, + "energized=false,face=ceiling,facing=south": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 180 + }, + "energized=false,face=ceiling,facing=west": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 180 + }, + "energized=false,face=floor,facing=east": { + "model": "hexcasting:block/slate", + "uvlock": true + }, + "energized=false,face=floor,facing=north": { + "model": "hexcasting:block/slate", + "uvlock": true + }, + "energized=false,face=floor,facing=south": { + "model": "hexcasting:block/slate", + "uvlock": true + }, + "energized=false,face=floor,facing=west": { + "model": "hexcasting:block/slate", + "uvlock": true + }, + "energized=false,face=wall,facing=east": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 90, + "y": 90 + }, + "energized=false,face=wall,facing=north": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 90 + }, + "energized=false,face=wall,facing=south": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 90, + "y": 180 + }, + "energized=false,face=wall,facing=west": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 90, + "y": 270 + }, + "energized=true,face=ceiling,facing=east": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 180 + }, + "energized=true,face=ceiling,facing=north": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 180 + }, + "energized=true,face=ceiling,facing=south": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 180 + }, + "energized=true,face=ceiling,facing=west": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 180 + }, + "energized=true,face=floor,facing=east": { + "model": "hexcasting:block/slate", + "uvlock": true + }, + "energized=true,face=floor,facing=north": { + "model": "hexcasting:block/slate", + "uvlock": true + }, + "energized=true,face=floor,facing=south": { + "model": "hexcasting:block/slate", + "uvlock": true + }, + "energized=true,face=floor,facing=west": { + "model": "hexcasting:block/slate", + "uvlock": true + }, + "energized=true,face=wall,facing=east": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 90, + "y": 90 + }, + "energized=true,face=wall,facing=north": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 90 + }, + "energized=true,face=wall,facing=south": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 90, + "y": 180 + }, + "energized=true,face=wall,facing=west": { + "model": "hexcasting:block/slate", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks.json new file mode 100644 index 0000000000..e99315f3fa --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks.json @@ -0,0 +1,15 @@ +{ + "variants": { + "": [ + { + "model": "hexcasting:block/deco/slate_amethyst_bricks_0" + }, + { + "model": "hexcasting:block/deco/slate_amethyst_bricks_1" + }, + { + "model": "hexcasting:block/deco/slate_amethyst_bricks_2" + } + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks_small.json new file mode 100644 index 0000000000..e6b5557c2f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks_small.json @@ -0,0 +1,15 @@ +{ + "variants": { + "": [ + { + "model": "hexcasting:block/deco/slate_amethyst_bricks_small_0" + }, + { + "model": "hexcasting:block/deco/slate_amethyst_bricks_small_1" + }, + { + "model": "hexcasting:block/deco/slate_amethyst_bricks_small_2" + } + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_pillar.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_pillar.json new file mode 100644 index 0000000000..056bc449b3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_pillar.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/slate_amethyst_pillar_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/slate_amethyst_pillar" + }, + "axis=z": { + "model": "hexcasting:block/slate_amethyst_pillar_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_tiles.json new file mode 100644 index 0000000000..4c5f5d614b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/deco/slate_amethyst_tiles" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_block.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_block.json new file mode 100644 index 0000000000..35169aaa2f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/slate_block" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_bricks.json new file mode 100644 index 0000000000..003a0daafe --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/deco/slate_bricks" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_bricks_small.json new file mode 100644 index 0000000000..cdd21fd4d3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_bricks_small.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/deco/slate_bricks_small" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_pillar.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_pillar.json new file mode 100644 index 0000000000..6d0e098f31 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_pillar.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/slate_pillar_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/slate_pillar" + }, + "axis=z": { + "model": "hexcasting:block/slate_pillar_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_tiles.json new file mode 100644 index 0000000000..1482ae0827 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/slate_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "hexcasting:block/deco/slate_tiles" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_log.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_log.json new file mode 100644 index 0000000000..cb09f0122f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/stripped_edified_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/stripped_edified_log" + }, + "axis=z": { + "model": "hexcasting:block/stripped_edified_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_wood.json b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_wood.json new file mode 100644 index 0000000000..b6b89e3f85 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "hexcasting:block/stripped_edified_wood_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "hexcasting:block/stripped_edified_wood" + }, + "axis=z": { + "model": "hexcasting:block/stripped_edified_wood_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf.json new file mode 100644 index 0000000000..dd5103c118 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf.json @@ -0,0 +1,68 @@ +{ + "elements": [ + { + "faces": { + "down": { + "cullface": "down", + "texture": "#top_bottom" + }, + "east": { + "cullface": "east", + "texture": "#side" + }, + "north": { + "cullface": "north", + "texture": "#front" + }, + "south": { + "cullface": "south", + "texture": "#side" + }, + "up": { + "cullface": "up", + "texture": "#top_bottom" + }, + "west": { + "cullface": "west", + "texture": "#side" + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ] + }, + { + "faces": { + "north": { + "cullface": "north", + "texture": "#overlay", + "tintindex": 0 + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ] + } + ], + "render_type": "minecraft:cutout", + "textures": { + "front": "hexcasting:block/akashic_bookshelf", + "particle": "hexcasting:block/akashic_bookshelf_vert", + "side": "hexcasting:block/akashic_bookshelf_horiz", + "top_bottom": "hexcasting:block/akashic_bookshelf_vert" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_1.json new file mode 100644 index 0000000000..2402c6c597 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_1.json @@ -0,0 +1,6 @@ +{ + "parent": "hexcasting:block/akashic_bookshelf", + "textures": { + "overlay": "hexcasting:block/akashic_bookshelf_overlay_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_2.json new file mode 100644 index 0000000000..4846d3c2e6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_2.json @@ -0,0 +1,6 @@ +{ + "parent": "hexcasting:block/akashic_bookshelf", + "textures": { + "overlay": "hexcasting:block/akashic_bookshelf_overlay_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_3.json new file mode 100644 index 0000000000..9352317b12 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_3.json @@ -0,0 +1,6 @@ +{ + "parent": "hexcasting:block/akashic_bookshelf", + "textures": { + "overlay": "hexcasting:block/akashic_bookshelf_overlay_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_4.json new file mode 100644 index 0000000000..4f98ee656b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_4.json @@ -0,0 +1,6 @@ +{ + "parent": "hexcasting:block/akashic_bookshelf", + "textures": { + "overlay": "hexcasting:block/akashic_bookshelf_overlay_4" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_empty.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_empty.json new file mode 100644 index 0000000000..9b788e5d7c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_empty.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "front": "hexcasting:block/akashic_bookshelf", + "side": "hexcasting:block/akashic_bookshelf_horiz", + "top": "hexcasting:block/akashic_bookshelf_vert" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_ligature.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_ligature.json new file mode 100644 index 0000000000..72a32c3aa8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_ligature.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/akashic_ligature" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_record.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_record.json new file mode 100644 index 0000000000..7068b7d62f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/akashic_record.json @@ -0,0 +1,87 @@ +{ + "parent": "minecraft:block/block", + "elements": [ + { + "faces": { + "down": { + "cullface": "down", + "texture": "#outer" + }, + "east": { + "cullface": "east", + "texture": "#outer" + }, + "north": { + "cullface": "north", + "texture": "#outer" + }, + "south": { + "cullface": "south", + "texture": "#outer" + }, + "up": { + "cullface": "up", + "texture": "#outer" + }, + "west": { + "cullface": "west", + "texture": "#outer" + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ] + }, + { + "faces": { + "down": { + "rotation": 180, + "texture": "#inner" + }, + "east": { + "rotation": 180, + "texture": "#inner" + }, + "north": { + "rotation": 180, + "texture": "#inner" + }, + "south": { + "rotation": 180, + "texture": "#inner" + }, + "up": { + "rotation": 180, + "texture": "#inner" + }, + "west": { + "rotation": 180, + "texture": "#inner" + } + }, + "from": [ + 15.75, + 15.75, + 15.75 + ], + "to": [ + 0.25, + 0.25, + 0.25 + ] + } + ], + "render_type": "minecraft:translucent", + "textures": { + "inner": "hexcasting:block/akashic_ligature", + "outer": "hexcasting:block/akashic_record", + "particle": "hexcasting:block/akashic_ligature" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/amethyst_dust_block.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/amethyst_dust_block.json new file mode 100644 index 0000000000..8fa450ab32 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/amethyst_dust_block.json @@ -0,0 +1,6 @@ +{ + "parent": "hexcasting:block/cube_half_mirrored", + "textures": { + "all": "hexcasting:block/amethyst_dust_block" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/amethyst_edified_leaves.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/amethyst_edified_leaves.json new file mode 100644 index 0000000000..463617eb53 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/amethyst_edified_leaves.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/leaves", + "render_type": "minecraft:cutout_mipped", + "textures": { + "all": "hexcasting:block/amethyst_edified_leaves" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper.json new file mode 100644 index 0000000000..5b5b77bbf0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/ancient_scroll_paper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper_lantern.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..19fc5366df --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper_lantern.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "hexcasting:block/ancient_scroll_paper_lantern_bottom", + "side": "hexcasting:block/ancient_scroll_paper_lantern_side", + "top": "hexcasting:block/ancient_scroll_paper_lantern_top" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/aventurine_edified_leaves.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/aventurine_edified_leaves.json new file mode 100644 index 0000000000..eb1802e0b9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/aventurine_edified_leaves.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/leaves", + "render_type": "minecraft:cutout_mipped", + "textures": { + "all": "hexcasting:block/aventurine_edified_leaves" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_down.json new file mode 100644 index 0000000000..c132d88be4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_east.json new file mode 100644 index 0000000000..c132d88be4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_north.json new file mode 100644 index 0000000000..c132d88be4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_south.json new file mode 100644 index 0000000000..c132d88be4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_up.json new file mode 100644 index 0000000000..c132d88be4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_west.json new file mode 100644 index 0000000000..c132d88be4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_dim_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_down.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_east.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_north.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_south.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_up.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_west.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_down.json new file mode 100644 index 0000000000..3477cd9b15 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_east.json new file mode 100644 index 0000000000..3477cd9b15 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_north.json new file mode 100644 index 0000000000..3477cd9b15 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_south.json new file mode 100644 index 0000000000..3477cd9b15 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_up.json new file mode 100644 index 0000000000..3477cd9b15 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_west.json new file mode 100644 index 0000000000..3477cd9b15 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_dim_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_down.json new file mode 100644 index 0000000000..ccc4319820 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_east.json new file mode 100644 index 0000000000..ccc4319820 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_north.json new file mode 100644 index 0000000000..ccc4319820 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_south.json new file mode 100644 index 0000000000..ccc4319820 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_up.json new file mode 100644 index 0000000000..ccc4319820 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_west.json new file mode 100644 index 0000000000..ccc4319820 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_false", + "north": "hexcasting:block/circle/directrix/boolean/front_lit_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_false", + "west": "hexcasting:block/circle/directrix/boolean/right_false" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_down.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_east.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_north.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_south.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_up.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_west.json new file mode 100644 index 0000000000..20c3b6cedf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_neither", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_not_true", + "up": "hexcasting:block/circle/directrix/boolean/top_neither", + "west": "hexcasting:block/circle/directrix/boolean/right_neither" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_down.json new file mode 100644 index 0000000000..5c453220fd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_east.json new file mode 100644 index 0000000000..5c453220fd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_north.json new file mode 100644 index 0000000000..5c453220fd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_south.json new file mode 100644 index 0000000000..5c453220fd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_up.json new file mode 100644 index 0000000000..5c453220fd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_west.json new file mode 100644 index 0000000000..5c453220fd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/boolean/left_true", + "north": "hexcasting:block/circle/directrix/boolean/front_not_false", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/boolean/back_lit_true", + "up": "hexcasting:block/circle/directrix/boolean/top_true", + "west": "hexcasting:block/circle/directrix/boolean/right_true" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_down.json new file mode 100644 index 0000000000..8178542bf4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_dim", + "north": "hexcasting:block/circle/directrix/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_dim", + "up": "hexcasting:block/circle/directrix/empty/top_dim", + "west": "hexcasting:block/circle/directrix/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_east.json new file mode 100644 index 0000000000..8178542bf4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_dim", + "north": "hexcasting:block/circle/directrix/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_dim", + "up": "hexcasting:block/circle/directrix/empty/top_dim", + "west": "hexcasting:block/circle/directrix/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_north.json new file mode 100644 index 0000000000..8178542bf4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_dim", + "north": "hexcasting:block/circle/directrix/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_dim", + "up": "hexcasting:block/circle/directrix/empty/top_dim", + "west": "hexcasting:block/circle/directrix/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_south.json new file mode 100644 index 0000000000..8178542bf4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_dim", + "north": "hexcasting:block/circle/directrix/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_dim", + "up": "hexcasting:block/circle/directrix/empty/top_dim", + "west": "hexcasting:block/circle/directrix/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_up.json new file mode 100644 index 0000000000..8178542bf4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_dim", + "north": "hexcasting:block/circle/directrix/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_dim", + "up": "hexcasting:block/circle/directrix/empty/top_dim", + "west": "hexcasting:block/circle/directrix/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_west.json new file mode 100644 index 0000000000..8178542bf4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_dim", + "north": "hexcasting:block/circle/directrix/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_dim", + "up": "hexcasting:block/circle/directrix/empty/top_dim", + "west": "hexcasting:block/circle/directrix/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_down.json new file mode 100644 index 0000000000..8da64102c4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_lit", + "north": "hexcasting:block/circle/directrix/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_lit", + "up": "hexcasting:block/circle/directrix/empty/top_lit", + "west": "hexcasting:block/circle/directrix/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_east.json new file mode 100644 index 0000000000..8da64102c4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_lit", + "north": "hexcasting:block/circle/directrix/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_lit", + "up": "hexcasting:block/circle/directrix/empty/top_lit", + "west": "hexcasting:block/circle/directrix/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_north.json new file mode 100644 index 0000000000..8da64102c4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_lit", + "north": "hexcasting:block/circle/directrix/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_lit", + "up": "hexcasting:block/circle/directrix/empty/top_lit", + "west": "hexcasting:block/circle/directrix/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_south.json new file mode 100644 index 0000000000..8da64102c4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_lit", + "north": "hexcasting:block/circle/directrix/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_lit", + "up": "hexcasting:block/circle/directrix/empty/top_lit", + "west": "hexcasting:block/circle/directrix/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_up.json new file mode 100644 index 0000000000..8da64102c4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_lit", + "north": "hexcasting:block/circle/directrix/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_lit", + "up": "hexcasting:block/circle/directrix/empty/top_lit", + "west": "hexcasting:block/circle/directrix/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_west.json new file mode 100644 index 0000000000..8da64102c4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/empty/left_lit", + "north": "hexcasting:block/circle/directrix/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/empty/back_lit", + "up": "hexcasting:block/circle/directrix/empty/top_lit", + "west": "hexcasting:block/circle/directrix/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_down.json new file mode 100644 index 0000000000..adb3eb5128 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_east.json new file mode 100644 index 0000000000..adb3eb5128 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_north.json new file mode 100644 index 0000000000..adb3eb5128 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_south.json new file mode 100644 index 0000000000..adb3eb5128 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_up.json new file mode 100644 index 0000000000..adb3eb5128 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_west.json new file mode 100644 index 0000000000..adb3eb5128 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_down.json new file mode 100644 index 0000000000..c191d8a113 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_east.json new file mode 100644 index 0000000000..c191d8a113 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_north.json new file mode 100644 index 0000000000..c191d8a113 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_south.json new file mode 100644 index 0000000000..c191d8a113 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_up.json new file mode 100644 index 0000000000..c191d8a113 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_west.json new file mode 100644 index 0000000000..c191d8a113 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_down.json new file mode 100644 index 0000000000..97d3da2808 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_east.json new file mode 100644 index 0000000000..97d3da2808 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_north.json new file mode 100644 index 0000000000..97d3da2808 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_south.json new file mode 100644 index 0000000000..97d3da2808 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_up.json new file mode 100644 index 0000000000..97d3da2808 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_west.json new file mode 100644 index 0000000000..97d3da2808 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_powered", + "north": "hexcasting:block/circle/directrix/redstone/front_lit_powered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_dim_powered", + "up": "hexcasting:block/circle/directrix/redstone/top_powered", + "west": "hexcasting:block/circle/directrix/redstone/right_powered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_down.json new file mode 100644 index 0000000000..722076a071 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_east.json new file mode 100644 index 0000000000..722076a071 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_north.json new file mode 100644 index 0000000000..722076a071 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_south.json new file mode 100644 index 0000000000..722076a071 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_up.json new file mode 100644 index 0000000000..722076a071 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_west.json new file mode 100644 index 0000000000..722076a071 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/directrix/redstone/left_unpowered", + "north": "hexcasting:block/circle/directrix/redstone/front_dim_unpowered", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/directrix/redstone/back_lit_unpowered", + "up": "hexcasting:block/circle/directrix/redstone/top_unpowered", + "west": "hexcasting:block/circle/directrix/redstone/right_unpowered" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_down.json new file mode 100644 index 0000000000..479ee7c42b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_dim", + "north": "hexcasting:block/circle/impetus/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/empty/top_dim", + "west": "hexcasting:block/circle/impetus/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_east.json new file mode 100644 index 0000000000..479ee7c42b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_dim", + "north": "hexcasting:block/circle/impetus/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/empty/top_dim", + "west": "hexcasting:block/circle/impetus/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_north.json new file mode 100644 index 0000000000..479ee7c42b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_dim", + "north": "hexcasting:block/circle/impetus/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/empty/top_dim", + "west": "hexcasting:block/circle/impetus/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_south.json new file mode 100644 index 0000000000..479ee7c42b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_dim", + "north": "hexcasting:block/circle/impetus/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/empty/top_dim", + "west": "hexcasting:block/circle/impetus/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_up.json new file mode 100644 index 0000000000..479ee7c42b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_dim", + "north": "hexcasting:block/circle/impetus/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/empty/top_dim", + "west": "hexcasting:block/circle/impetus/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_west.json new file mode 100644 index 0000000000..479ee7c42b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_dim", + "north": "hexcasting:block/circle/impetus/empty/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/empty/top_dim", + "west": "hexcasting:block/circle/impetus/empty/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_down.json new file mode 100644 index 0000000000..1fb7369cd2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_lit", + "north": "hexcasting:block/circle/impetus/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/empty/top_lit", + "west": "hexcasting:block/circle/impetus/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_east.json new file mode 100644 index 0000000000..1fb7369cd2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_lit", + "north": "hexcasting:block/circle/impetus/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/empty/top_lit", + "west": "hexcasting:block/circle/impetus/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_north.json new file mode 100644 index 0000000000..1fb7369cd2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_lit", + "north": "hexcasting:block/circle/impetus/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/empty/top_lit", + "west": "hexcasting:block/circle/impetus/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_south.json new file mode 100644 index 0000000000..1fb7369cd2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_lit", + "north": "hexcasting:block/circle/impetus/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/empty/top_lit", + "west": "hexcasting:block/circle/impetus/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_up.json new file mode 100644 index 0000000000..1fb7369cd2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_lit", + "north": "hexcasting:block/circle/impetus/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/empty/top_lit", + "west": "hexcasting:block/circle/impetus/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_west.json new file mode 100644 index 0000000000..1fb7369cd2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/empty/left_lit", + "north": "hexcasting:block/circle/impetus/empty/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/empty/top_lit", + "west": "hexcasting:block/circle/impetus/empty/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_down.json new file mode 100644 index 0000000000..76165760a5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_dim", + "north": "hexcasting:block/circle/impetus/look/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/look/top_dim", + "west": "hexcasting:block/circle/impetus/look/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_east.json new file mode 100644 index 0000000000..76165760a5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_dim", + "north": "hexcasting:block/circle/impetus/look/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/look/top_dim", + "west": "hexcasting:block/circle/impetus/look/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_north.json new file mode 100644 index 0000000000..76165760a5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_dim", + "north": "hexcasting:block/circle/impetus/look/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/look/top_dim", + "west": "hexcasting:block/circle/impetus/look/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_south.json new file mode 100644 index 0000000000..76165760a5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_dim", + "north": "hexcasting:block/circle/impetus/look/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/look/top_dim", + "west": "hexcasting:block/circle/impetus/look/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_up.json new file mode 100644 index 0000000000..76165760a5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_dim", + "north": "hexcasting:block/circle/impetus/look/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/look/top_dim", + "west": "hexcasting:block/circle/impetus/look/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_west.json new file mode 100644 index 0000000000..76165760a5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_dim", + "north": "hexcasting:block/circle/impetus/look/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/look/top_dim", + "west": "hexcasting:block/circle/impetus/look/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_down.json new file mode 100644 index 0000000000..504eba8930 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_lit", + "north": "hexcasting:block/circle/impetus/look/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/look/top_lit", + "west": "hexcasting:block/circle/impetus/look/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_east.json new file mode 100644 index 0000000000..504eba8930 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_lit", + "north": "hexcasting:block/circle/impetus/look/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/look/top_lit", + "west": "hexcasting:block/circle/impetus/look/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_north.json new file mode 100644 index 0000000000..504eba8930 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_lit", + "north": "hexcasting:block/circle/impetus/look/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/look/top_lit", + "west": "hexcasting:block/circle/impetus/look/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_south.json new file mode 100644 index 0000000000..504eba8930 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_lit", + "north": "hexcasting:block/circle/impetus/look/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/look/top_lit", + "west": "hexcasting:block/circle/impetus/look/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_up.json new file mode 100644 index 0000000000..504eba8930 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_lit", + "north": "hexcasting:block/circle/impetus/look/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/look/top_lit", + "west": "hexcasting:block/circle/impetus/look/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_west.json new file mode 100644 index 0000000000..504eba8930 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/look/left_lit", + "north": "hexcasting:block/circle/impetus/look/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/look/top_lit", + "west": "hexcasting:block/circle/impetus/look/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_down.json new file mode 100644 index 0000000000..71ea895f6a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_dim", + "north": "hexcasting:block/circle/impetus/redstone/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/redstone/top_dim", + "west": "hexcasting:block/circle/impetus/redstone/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_east.json new file mode 100644 index 0000000000..71ea895f6a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_dim", + "north": "hexcasting:block/circle/impetus/redstone/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/redstone/top_dim", + "west": "hexcasting:block/circle/impetus/redstone/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_north.json new file mode 100644 index 0000000000..71ea895f6a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_dim", + "north": "hexcasting:block/circle/impetus/redstone/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/redstone/top_dim", + "west": "hexcasting:block/circle/impetus/redstone/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_south.json new file mode 100644 index 0000000000..71ea895f6a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_dim", + "north": "hexcasting:block/circle/impetus/redstone/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/redstone/top_dim", + "west": "hexcasting:block/circle/impetus/redstone/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_up.json new file mode 100644 index 0000000000..71ea895f6a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_dim", + "north": "hexcasting:block/circle/impetus/redstone/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/redstone/top_dim", + "west": "hexcasting:block/circle/impetus/redstone/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_west.json new file mode 100644 index 0000000000..71ea895f6a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_dim", + "north": "hexcasting:block/circle/impetus/redstone/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/redstone/top_dim", + "west": "hexcasting:block/circle/impetus/redstone/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_down.json new file mode 100644 index 0000000000..12630ca3cb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_lit", + "north": "hexcasting:block/circle/impetus/redstone/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/redstone/top_lit", + "west": "hexcasting:block/circle/impetus/redstone/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_east.json new file mode 100644 index 0000000000..12630ca3cb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_lit", + "north": "hexcasting:block/circle/impetus/redstone/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/redstone/top_lit", + "west": "hexcasting:block/circle/impetus/redstone/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_north.json new file mode 100644 index 0000000000..12630ca3cb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_lit", + "north": "hexcasting:block/circle/impetus/redstone/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/redstone/top_lit", + "west": "hexcasting:block/circle/impetus/redstone/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_south.json new file mode 100644 index 0000000000..12630ca3cb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_lit", + "north": "hexcasting:block/circle/impetus/redstone/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/redstone/top_lit", + "west": "hexcasting:block/circle/impetus/redstone/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_up.json new file mode 100644 index 0000000000..12630ca3cb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_lit", + "north": "hexcasting:block/circle/impetus/redstone/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/redstone/top_lit", + "west": "hexcasting:block/circle/impetus/redstone/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_west.json new file mode 100644 index 0000000000..12630ca3cb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/redstone/left_lit", + "north": "hexcasting:block/circle/impetus/redstone/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/redstone/top_lit", + "west": "hexcasting:block/circle/impetus/redstone/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_down.json new file mode 100644 index 0000000000..c5fdbc02b0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_dim", + "north": "hexcasting:block/circle/impetus/rightclick/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/rightclick/top_dim", + "west": "hexcasting:block/circle/impetus/rightclick/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_east.json new file mode 100644 index 0000000000..c5fdbc02b0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_dim", + "north": "hexcasting:block/circle/impetus/rightclick/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/rightclick/top_dim", + "west": "hexcasting:block/circle/impetus/rightclick/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_north.json new file mode 100644 index 0000000000..c5fdbc02b0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_dim", + "north": "hexcasting:block/circle/impetus/rightclick/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/rightclick/top_dim", + "west": "hexcasting:block/circle/impetus/rightclick/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_south.json new file mode 100644 index 0000000000..c5fdbc02b0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_dim", + "north": "hexcasting:block/circle/impetus/rightclick/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/rightclick/top_dim", + "west": "hexcasting:block/circle/impetus/rightclick/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_up.json new file mode 100644 index 0000000000..c5fdbc02b0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_dim", + "north": "hexcasting:block/circle/impetus/rightclick/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/rightclick/top_dim", + "west": "hexcasting:block/circle/impetus/rightclick/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_west.json new file mode 100644 index 0000000000..c5fdbc02b0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_dim", + "north": "hexcasting:block/circle/impetus/rightclick/front_dim", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_dim", + "up": "hexcasting:block/circle/impetus/rightclick/top_dim", + "west": "hexcasting:block/circle/impetus/rightclick/right_dim" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_down.json new file mode 100644 index 0000000000..3840e6cb08 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_down.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_lit", + "north": "hexcasting:block/circle/impetus/rightclick/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/rightclick/top_lit", + "west": "hexcasting:block/circle/impetus/rightclick/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_east.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_east.json new file mode 100644 index 0000000000..3840e6cb08 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_east.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_lit", + "north": "hexcasting:block/circle/impetus/rightclick/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/rightclick/top_lit", + "west": "hexcasting:block/circle/impetus/rightclick/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_north.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_north.json new file mode 100644 index 0000000000..3840e6cb08 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_north.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_lit", + "north": "hexcasting:block/circle/impetus/rightclick/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/rightclick/top_lit", + "west": "hexcasting:block/circle/impetus/rightclick/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_south.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_south.json new file mode 100644 index 0000000000..3840e6cb08 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_south.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_lit", + "north": "hexcasting:block/circle/impetus/rightclick/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/rightclick/top_lit", + "west": "hexcasting:block/circle/impetus/rightclick/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_up.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_up.json new file mode 100644 index 0000000000..3840e6cb08 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_up.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_lit", + "north": "hexcasting:block/circle/impetus/rightclick/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/rightclick/top_lit", + "west": "hexcasting:block/circle/impetus/rightclick/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_west.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_west.json new file mode 100644 index 0000000000..3840e6cb08 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_west.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "hexcasting:block/circle/bottom", + "east": "hexcasting:block/circle/impetus/rightclick/left_lit", + "north": "hexcasting:block/circle/impetus/rightclick/front_lit", + "particle": "hexcasting:block/slate_block", + "south": "hexcasting:block/circle/impetus/back_lit", + "up": "hexcasting:block/circle/impetus/rightclick/top_lit", + "west": "hexcasting:block/circle/impetus/rightclick/right_lit" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/citrine_edified_leaves.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/citrine_edified_leaves.json new file mode 100644 index 0000000000..3bef12c734 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/citrine_edified_leaves.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/leaves", + "render_type": "minecraft:cutout_mipped", + "textures": { + "all": "hexcasting:block/citrine_edified_leaves" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/conjured.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/conjured.json new file mode 100644 index 0000000000..9f80c11ee0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/conjured.json @@ -0,0 +1,6 @@ +{ + "render_type": "minecraft:cutout", + "textures": { + "particle": "minecraft:block/amethyst_block" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks.json new file mode 100644 index 0000000000..89c8ec51c2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/amethyst_bricks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks_small.json new file mode 100644 index 0000000000..fc1202b603 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks_small.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/amethyst_bricks_small" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_pillar.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_pillar.json new file mode 100644 index 0000000000..5ee8934b7a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_pillar.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "hexcasting:block/deco/amethyst_pillar_bottom", + "side": "hexcasting:block/deco/amethyst_pillar_side", + "top": "hexcasting:block/deco/amethyst_pillar_top" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_tiles.json new file mode 100644 index 0000000000..ab9ffcda39 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/amethyst_tiles" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_0.json new file mode 100644 index 0000000000..e0c97c18e6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_1.json new file mode 100644 index 0000000000..61215cda68 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_2.json new file mode 100644 index 0000000000..536da9000b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_3.json new file mode 100644 index 0000000000..e45bf99d14 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_0.json new file mode 100644 index 0000000000..2b93f32793 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_small_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_1.json new file mode 100644 index 0000000000..91ade20515 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_small_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_2.json new file mode 100644 index 0000000000..e6b6bd7b22 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_small_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_3.json new file mode 100644 index 0000000000..7da0cdfcf8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_small_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_0.json new file mode 100644 index 0000000000..3d953c5628 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_tiles_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_1.json new file mode 100644 index 0000000000..6d6150b8d5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_tiles_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_2.json new file mode 100644 index 0000000000..758194fe82 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_tiles_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_3.json new file mode 100644 index 0000000000..5c83c33eb0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_tiles_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_0.json new file mode 100644 index 0000000000..910ec09904 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_amethyst_bricks_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_1.json new file mode 100644 index 0000000000..4d565a54ae --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_amethyst_bricks_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_2.json new file mode 100644 index 0000000000..a9072bacc0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_amethyst_bricks_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_0.json new file mode 100644 index 0000000000..ad3c92af5d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_amethyst_bricks_small_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_1.json new file mode 100644 index 0000000000..1f24ff9a6d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_amethyst_bricks_small_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_2.json new file mode 100644 index 0000000000..e106adbead --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_amethyst_bricks_small_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_tiles.json new file mode 100644 index 0000000000..2c80ba1498 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_amethyst_tiles" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks.json new file mode 100644 index 0000000000..7fb51bcd7c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_bricks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks_small.json new file mode 100644 index 0000000000..3b262eafff --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks_small.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_bricks_small" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_tiles.json new file mode 100644 index 0000000000..d18efee914 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/deco/slate_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/slate_tiles" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_button.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_button.json new file mode 100644 index 0000000000..1c75ef18d3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_button_pressed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_button_pressed.json new file mode 100644 index 0000000000..a026dba7ad --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left.json new file mode 100644 index 0000000000..610c3ae5b9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "hexcasting:block/edified_door_lower", + "top": "hexcasting:block/edified_door_upper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left_open.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left_open.json new file mode 100644 index 0000000000..acf2e96275 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "hexcasting:block/edified_door_lower", + "top": "hexcasting:block/edified_door_upper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right.json new file mode 100644 index 0000000000..2eaa905b77 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "hexcasting:block/edified_door_lower", + "top": "hexcasting:block/edified_door_upper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right_open.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right_open.json new file mode 100644 index 0000000000..8a46564f74 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "hexcasting:block/edified_door_lower", + "top": "hexcasting:block/edified_door_upper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left.json new file mode 100644 index 0000000000..90ea9df1d9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_top_left", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "hexcasting:block/edified_door_lower", + "top": "hexcasting:block/edified_door_upper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left_open.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left_open.json new file mode 100644 index 0000000000..5573390683 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "hexcasting:block/edified_door_lower", + "top": "hexcasting:block/edified_door_upper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right.json new file mode 100644 index 0000000000..3a78e863b7 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_top_right", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "hexcasting:block/edified_door_lower", + "top": "hexcasting:block/edified_door_upper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right_open.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right_open.json new file mode 100644 index 0000000000..26d8c1a200 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "hexcasting:block/edified_door_lower", + "top": "hexcasting:block/edified_door_upper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate.json new file mode 100644 index 0000000000..c3015ca6d3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_open.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_open.json new file mode 100644 index 0000000000..ac141eb406 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall.json new file mode 100644 index 0000000000..ea98b16740 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall_open.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall_open.json new file mode 100644 index 0000000000..86d82ca2fc --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_post.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_post.json new file mode 100644 index 0000000000..281f2acc6d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_side.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_side.json new file mode 100644 index 0000000000..707af51bf2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log.json new file mode 100644 index 0000000000..9ba1530b0c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/edified_log" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst.json new file mode 100644 index 0000000000..e9833c81a8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/deco/edified_log_amethyst" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst_horizontal.json new file mode 100644 index 0000000000..fdfc8bd1c1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/deco/edified_log_amethyst" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine.json new file mode 100644 index 0000000000..f9f832f6ee --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/deco/edified_log_aventurine" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine_horizontal.json new file mode 100644 index 0000000000..e7ddcd8ed5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/deco/edified_log_aventurine" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine.json new file mode 100644 index 0000000000..ea1b1d60a5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/deco/edified_log_citrine" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine_horizontal.json new file mode 100644 index 0000000000..2ae70b9aef --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/deco/edified_log_citrine" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_horizontal.json new file mode 100644 index 0000000000..84e434e72a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/edified_log" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_purple.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_purple.json new file mode 100644 index 0000000000..70736370d2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_purple.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/deco/edified_log_purple" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_purple_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_purple_horizontal.json new file mode 100644 index 0000000000..235890db18 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_log_purple_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/edified_log_top", + "side": "hexcasting:block/deco/edified_log_purple" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_panel.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_panel.json new file mode 100644 index 0000000000..3d790f2af0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/edified_panel" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_planks.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_planks.json new file mode 100644 index 0000000000..a722301054 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_planks_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_planks_2.json new file mode 100644 index 0000000000..d0c4c5832b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_planks_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/edified_planks_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_planks_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_planks_3.json new file mode 100644 index 0000000000..bad8e6ac05 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_planks_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/edified_planks_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate.json new file mode 100644 index 0000000000..5a1b2b5727 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate_down.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate_down.json new file mode 100644 index 0000000000..eeaa36461c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_slab.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_slab.json new file mode 100644 index 0000000000..09d601ec7b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "hexcasting:block/edified_planks", + "side": "hexcasting:block/edified_planks", + "top": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_slab_top.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_slab_top.json new file mode 100644 index 0000000000..f4d2fcf98c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "hexcasting:block/edified_planks", + "side": "hexcasting:block/edified_planks", + "top": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_stairs.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_stairs.json new file mode 100644 index 0000000000..6e9ae9aaae --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "hexcasting:block/edified_planks", + "side": "hexcasting:block/edified_planks", + "top": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_stairs_inner.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_stairs_inner.json new file mode 100644 index 0000000000..7597f2c8a4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "hexcasting:block/edified_planks", + "side": "hexcasting:block/edified_planks", + "top": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_stairs_outer.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_stairs_outer.json new file mode 100644 index 0000000000..62d7ab50a9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "hexcasting:block/edified_planks", + "side": "hexcasting:block/edified_planks", + "top": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_tile.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_tile.json new file mode 100644 index 0000000000..595adf007a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_tile.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/edified_tile" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_bottom.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_bottom.json new file mode 100644 index 0000000000..9c65b36965 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "render_type": "minecraft:cutout", + "textures": { + "texture": "hexcasting:block/edified_trapdoor" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_open.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_open.json new file mode 100644 index 0000000000..40217afd9c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "render_type": "minecraft:cutout", + "textures": { + "texture": "hexcasting:block/edified_trapdoor" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_top.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_top.json new file mode 100644 index 0000000000..325f5d4351 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "render_type": "minecraft:cutout", + "textures": { + "texture": "hexcasting:block/edified_trapdoor" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_wood.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_wood.json new file mode 100644 index 0000000000..22851df079 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/edified_log", + "side": "hexcasting:block/edified_log" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_wood_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_wood_horizontal.json new file mode 100644 index 0000000000..72149b4bc9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/edified_wood_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/edified_log", + "side": "hexcasting:block/edified_log" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay.json new file mode 100644 index 0000000000..6c2a8abe6d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/quenched_allay_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_0.json new file mode 100644 index 0000000000..6c2a8abe6d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/quenched_allay_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_1.json new file mode 100644 index 0000000000..441d91052a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/quenched_allay_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_2.json new file mode 100644 index 0000000000..a561a358cc --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/quenched_allay_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_3.json new file mode 100644 index 0000000000..a6fe237391 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/quenched_allay_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks.json new file mode 100644 index 0000000000..e0c97c18e6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks_small.json new file mode 100644 index 0000000000..2b93f32793 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks_small.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_bricks_small_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_tiles.json new file mode 100644 index 0000000000..3d953c5628 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/quenched_allay_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/deco/quenched_allay_tiles_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/scroll_paper.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/scroll_paper.json new file mode 100644 index 0000000000..621451b72c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/scroll_paper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/scroll_paper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/scroll_paper_lantern.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/scroll_paper_lantern.json new file mode 100644 index 0000000000..3c16a2113f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/scroll_paper_lantern.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "hexcasting:block/scroll_paper_lantern_bottom", + "side": "hexcasting:block/scroll_paper_lantern_side", + "top": "hexcasting:block/scroll_paper_lantern_top" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar.json new file mode 100644 index 0000000000..1ec3ef6cf3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/deco/slate_amethyst_pillar_end", + "side": "hexcasting:block/deco/slate_amethyst_pillar_side" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar_horizontal.json new file mode 100644 index 0000000000..bbd24d1c98 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/deco/slate_amethyst_pillar_end", + "side": "hexcasting:block/deco/slate_amethyst_pillar_side" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_block.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_block.json new file mode 100644 index 0000000000..2d8635f925 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "hexcasting:block/slate_block" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_pillar.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_pillar.json new file mode 100644 index 0000000000..697f4daab2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_pillar.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/deco/slate_pillar_end", + "side": "hexcasting:block/deco/slate_pillar_side" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_pillar_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_pillar_horizontal.json new file mode 100644 index 0000000000..cca16a0c07 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/slate_pillar_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/deco/slate_pillar_end", + "side": "hexcasting:block/deco/slate_pillar_side" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log.json new file mode 100644 index 0000000000..4aa871e92c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/stripped_edified_log_top", + "side": "hexcasting:block/stripped_edified_log" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log_horizontal.json new file mode 100644 index 0000000000..0925c23c78 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/stripped_edified_log_top", + "side": "hexcasting:block/stripped_edified_log" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood.json new file mode 100644 index 0000000000..8ef17c0d21 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "hexcasting:block/stripped_edified_log", + "side": "hexcasting:block/stripped_edified_log" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood_horizontal.json b/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood_horizontal.json new file mode 100644 index 0000000000..57dcfcc53c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "hexcasting:block/stripped_edified_log", + "side": "hexcasting:block/stripped_edified_log" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/abacus.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/abacus.json new file mode 100644 index 0000000000..f6947c4360 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/abacus.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/abacus" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/akashic_bookshelf.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/akashic_bookshelf.json new file mode 100644 index 0000000000..7c88c3e218 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/akashic_bookshelf.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/akashic_bookshelf_empty" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/akashic_ligature.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/akashic_ligature.json new file mode 100644 index 0000000000..de9a37be49 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/akashic_ligature.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/akashic_ligature" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/akashic_record.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/akashic_record.json new file mode 100644 index 0000000000..1ea5e0eeb6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/akashic_record.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/akashic_record" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks.json new file mode 100644 index 0000000000..5ec0842948 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/amethyst_bricks" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks_small.json new file mode 100644 index 0000000000..1b8fe48dd2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks_small.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/amethyst_bricks_small" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_dust.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_dust.json new file mode 100644 index 0000000000..140659dfab --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_dust.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/amethyst_dust" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_dust_block.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_dust_block.json new file mode 100644 index 0000000000..8cd53fc3ab --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_dust_block.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/amethyst_dust_block" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_edified_leaves.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_edified_leaves.json new file mode 100644 index 0000000000..d6015ea1f2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_edified_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/amethyst_edified_leaves" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_pillar.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_pillar.json new file mode 100644 index 0000000000..98d9d0c82f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/amethyst_pillar" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_sconce.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_sconce.json new file mode 100644 index 0000000000..bb1657f9a1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_sconce.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/amethyst_sconce" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_tiles.json new file mode 100644 index 0000000000..b8ecd40c70 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/amethyst_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/amethyst_tiles" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher.json new file mode 100644 index 0000000000..ffc8b5e1cc --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher.json @@ -0,0 +1,120 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "hexcasting:item/ancient_cypher", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_0_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_1", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_1_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_2", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_2_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_3", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_3_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_4", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_4_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_5", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_5_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_6", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_6_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_7", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 7.0 + } + }, + { + "model": "hexcasting:item/ancient_cypher_7_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 7.0 + } + } + ], + "textures": { + "layer0": "hexcasting:item/cad/0_ancient_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_0_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_0_filled.json new file mode 100644 index 0000000000..b38ad18d6d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_0_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/0_ancient_cypher", + "layer1": "hexcasting:item/cad/0_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1.json new file mode 100644 index 0000000000..e8b7b12d55 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_ancient_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1_filled.json new file mode 100644 index 0000000000..856b0a26d7 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_ancient_cypher", + "layer1": "hexcasting:item/cad/1_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2.json new file mode 100644 index 0000000000..3badfcdd0f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_ancient_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2_filled.json new file mode 100644 index 0000000000..effb9e0198 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_ancient_cypher", + "layer1": "hexcasting:item/cad/2_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3.json new file mode 100644 index 0000000000..98aabd91e8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_ancient_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3_filled.json new file mode 100644 index 0000000000..2f19e9feea --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_ancient_cypher", + "layer1": "hexcasting:item/cad/3_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4.json new file mode 100644 index 0000000000..93318f7bc4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_ancient_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4_filled.json new file mode 100644 index 0000000000..081cfd65c4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_ancient_cypher", + "layer1": "hexcasting:item/cad/4_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5.json new file mode 100644 index 0000000000..9d247cdd23 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_ancient_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5_filled.json new file mode 100644 index 0000000000..0ed6accc2a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_ancient_cypher", + "layer1": "hexcasting:item/cad/5_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6.json new file mode 100644 index 0000000000..bf9c9fe505 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_ancient_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6_filled.json new file mode 100644 index 0000000000..199292d90f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_ancient_cypher", + "layer1": "hexcasting:item/cad/6_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7.json new file mode 100644 index 0000000000..56e0653080 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_ancient_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7_filled.json new file mode 100644 index 0000000000..b408892c14 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_ancient_cypher", + "layer1": "hexcasting:item/cad/7_ancient_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper.json new file mode 100644 index 0000000000..810d0e68c5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/ancient_scroll_paper" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper_lantern.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..39cf0ac289 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper_lantern.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/ancient_scroll_paper_lantern" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact.json new file mode 100644 index 0000000000..d0db0e434f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact.json @@ -0,0 +1,120 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "hexcasting:item/artifact", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/artifact_0_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/artifact_1", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/artifact_1_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/artifact_2", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/artifact_2_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/artifact_3", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/artifact_3_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/artifact_4", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/artifact_4_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/artifact_5", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/artifact_5_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/artifact_6", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/artifact_6_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/artifact_7", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 7.0 + } + }, + { + "model": "hexcasting:item/artifact_7_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 7.0 + } + } + ], + "textures": { + "layer0": "hexcasting:item/cad/0_artifact" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_0_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_0_filled.json new file mode 100644 index 0000000000..1e835b5f74 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_0_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/0_artifact", + "layer1": "hexcasting:item/cad/0_artifact_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_1.json new file mode 100644 index 0000000000..870900b6f1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_artifact" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_1_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_1_filled.json new file mode 100644 index 0000000000..a0f005be3f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_1_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_artifact", + "layer1": "hexcasting:item/cad/1_artifact_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_2.json new file mode 100644 index 0000000000..f2f7fbea97 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_artifact" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_2_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_2_filled.json new file mode 100644 index 0000000000..cade3931d1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_2_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_artifact", + "layer1": "hexcasting:item/cad/2_artifact_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_3.json new file mode 100644 index 0000000000..2cb6553e13 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_artifact" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_3_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_3_filled.json new file mode 100644 index 0000000000..23c0456285 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_3_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_artifact", + "layer1": "hexcasting:item/cad/3_artifact_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_4.json new file mode 100644 index 0000000000..216c308d2c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_artifact" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_4_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_4_filled.json new file mode 100644 index 0000000000..d48959f9d1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_4_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_artifact", + "layer1": "hexcasting:item/cad/4_artifact_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_5.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_5.json new file mode 100644 index 0000000000..4a6f9ef1fb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_artifact" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_5_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_5_filled.json new file mode 100644 index 0000000000..1f64bdfda5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_5_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_artifact", + "layer1": "hexcasting:item/cad/5_artifact_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_6.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_6.json new file mode 100644 index 0000000000..c66d93ec85 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_artifact" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_6_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_6_filled.json new file mode 100644 index 0000000000..3d5f969ddf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_6_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_artifact", + "layer1": "hexcasting:item/cad/6_artifact_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_7.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_7.json new file mode 100644 index 0000000000..1b89f90904 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_artifact" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_7_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_7_filled.json new file mode 100644 index 0000000000..0e9043060d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/artifact_7_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_artifact", + "layer1": "hexcasting:item/cad/7_artifact_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/aventurine_edified_leaves.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/aventurine_edified_leaves.json new file mode 100644 index 0000000000..0ae3302116 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/aventurine_edified_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/aventurine_edified_leaves" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/battery.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/battery.json new file mode 100644 index 0000000000..11be0c6cd1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/battery.json @@ -0,0 +1,179 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/phial_small_0", + "predicate": { + "hexcasting:max_media": 0.0, + "hexcasting:media": 0.0 + } + }, + { + "model": "hexcasting:item/phial_small_1", + "predicate": { + "hexcasting:max_media": 0.0, + "hexcasting:media": 0.25 + } + }, + { + "model": "hexcasting:item/phial_small_2", + "predicate": { + "hexcasting:max_media": 0.0, + "hexcasting:media": 0.5 + } + }, + { + "model": "hexcasting:item/phial_small_3", + "predicate": { + "hexcasting:max_media": 0.0, + "hexcasting:media": 0.75 + } + }, + { + "model": "hexcasting:item/phial_small_4", + "predicate": { + "hexcasting:max_media": 0.0, + "hexcasting:media": 1.0 + } + }, + { + "model": "hexcasting:item/phial_medium_0", + "predicate": { + "hexcasting:max_media": 1.0, + "hexcasting:media": 0.0 + } + }, + { + "model": "hexcasting:item/phial_medium_1", + "predicate": { + "hexcasting:max_media": 1.0, + "hexcasting:media": 0.25 + } + }, + { + "model": "hexcasting:item/phial_medium_2", + "predicate": { + "hexcasting:max_media": 1.0, + "hexcasting:media": 0.5 + } + }, + { + "model": "hexcasting:item/phial_medium_3", + "predicate": { + "hexcasting:max_media": 1.0, + "hexcasting:media": 0.75 + } + }, + { + "model": "hexcasting:item/phial_medium_4", + "predicate": { + "hexcasting:max_media": 1.0, + "hexcasting:media": 1.0 + } + }, + { + "model": "hexcasting:item/phial_large_0", + "predicate": { + "hexcasting:max_media": 2.0, + "hexcasting:media": 0.0 + } + }, + { + "model": "hexcasting:item/phial_large_1", + "predicate": { + "hexcasting:max_media": 2.0, + "hexcasting:media": 0.25 + } + }, + { + "model": "hexcasting:item/phial_large_2", + "predicate": { + "hexcasting:max_media": 2.0, + "hexcasting:media": 0.5 + } + }, + { + "model": "hexcasting:item/phial_large_3", + "predicate": { + "hexcasting:max_media": 2.0, + "hexcasting:media": 0.75 + } + }, + { + "model": "hexcasting:item/phial_large_4", + "predicate": { + "hexcasting:max_media": 2.0, + "hexcasting:media": 1.0 + } + }, + { + "model": "hexcasting:item/phial_larger_0", + "predicate": { + "hexcasting:max_media": 3.0, + "hexcasting:media": 0.0 + } + }, + { + "model": "hexcasting:item/phial_larger_1", + "predicate": { + "hexcasting:max_media": 3.0, + "hexcasting:media": 0.25 + } + }, + { + "model": "hexcasting:item/phial_larger_2", + "predicate": { + "hexcasting:max_media": 3.0, + "hexcasting:media": 0.5 + } + }, + { + "model": "hexcasting:item/phial_larger_3", + "predicate": { + "hexcasting:max_media": 3.0, + "hexcasting:media": 0.75 + } + }, + { + "model": "hexcasting:item/phial_larger_4", + "predicate": { + "hexcasting:max_media": 3.0, + "hexcasting:media": 1.0 + } + }, + { + "model": "hexcasting:item/phial_largest_0", + "predicate": { + "hexcasting:max_media": 4.0, + "hexcasting:media": 0.0 + } + }, + { + "model": "hexcasting:item/phial_largest_1", + "predicate": { + "hexcasting:max_media": 4.0, + "hexcasting:media": 0.25 + } + }, + { + "model": "hexcasting:item/phial_largest_2", + "predicate": { + "hexcasting:max_media": 4.0, + "hexcasting:media": 0.5 + } + }, + { + "model": "hexcasting:item/phial_largest_3", + "predicate": { + "hexcasting:max_media": 4.0, + "hexcasting:media": 0.75 + } + }, + { + "model": "hexcasting:item/phial_largest_4", + "predicate": { + "hexcasting:max_media": 4.0, + "hexcasting:media": 1.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/charged_amethyst.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/charged_amethyst.json new file mode 100644 index 0000000000..2d147958cb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/charged_amethyst.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/charged_amethyst" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cherry_staff.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cherry_staff.json new file mode 100644 index 0000000000..1fb6398518 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cherry_staff.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/cherry" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/citrine_edified_leaves.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/citrine_edified_leaves.json new file mode 100644 index 0000000000..f44ca6c924 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/citrine_edified_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/citrine_edified_leaves" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/conjured_block.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/conjured_block.json new file mode 100644 index 0000000000..a0bab4ff76 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/conjured_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/amethyst_shard" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/conjured_light.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/conjured_light.json new file mode 100644 index 0000000000..a0bab4ff76 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/conjured_light.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/amethyst_shard" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/creative_unlocker.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/creative_unlocker.json new file mode 100644 index 0000000000..452b44f612 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/creative_unlocker.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/creative_unlocker" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher.json new file mode 100644 index 0000000000..1a93187096 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher.json @@ -0,0 +1,120 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "hexcasting:item/cypher", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/cypher_0_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/cypher_1", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/cypher_1_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/cypher_2", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/cypher_2_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/cypher_3", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/cypher_3_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/cypher_4", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/cypher_4_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/cypher_5", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/cypher_5_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/cypher_6", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/cypher_6_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/cypher_7", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 7.0 + } + }, + { + "model": "hexcasting:item/cypher_7_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 7.0 + } + } + ], + "textures": { + "layer0": "hexcasting:item/cad/0_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_0_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_0_filled.json new file mode 100644 index 0000000000..190be7e602 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_0_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/0_cypher", + "layer1": "hexcasting:item/cad/0_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_1.json new file mode 100644 index 0000000000..71a9ff7cc0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_1_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_1_filled.json new file mode 100644 index 0000000000..abff99cd2f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_1_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_cypher", + "layer1": "hexcasting:item/cad/1_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_2.json new file mode 100644 index 0000000000..f7b22a7958 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_2_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_2_filled.json new file mode 100644 index 0000000000..75143f8a30 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_2_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_cypher", + "layer1": "hexcasting:item/cad/2_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_3.json new file mode 100644 index 0000000000..da55138305 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_3_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_3_filled.json new file mode 100644 index 0000000000..cbac2eaf44 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_3_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_cypher", + "layer1": "hexcasting:item/cad/3_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_4.json new file mode 100644 index 0000000000..90430a8f8a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_4_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_4_filled.json new file mode 100644 index 0000000000..e56ed90c0a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_4_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_cypher", + "layer1": "hexcasting:item/cad/4_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_5.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_5.json new file mode 100644 index 0000000000..138fe59a96 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_5_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_5_filled.json new file mode 100644 index 0000000000..eeb6161967 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_5_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_cypher", + "layer1": "hexcasting:item/cad/5_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_6.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_6.json new file mode 100644 index 0000000000..bdb310d836 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_6_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_6_filled.json new file mode 100644 index 0000000000..f9ed07c951 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_6_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_cypher", + "layer1": "hexcasting:item/cad/6_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_7.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_7.json new file mode 100644 index 0000000000..29e4768e9a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_7_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_7_filled.json new file mode 100644 index 0000000000..2de0bb8752 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/cypher_7_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_cypher", + "layer1": "hexcasting:item/cad/7_cypher_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/default_colorizer.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/default_colorizer.json new file mode 100644 index 0000000000..0b76dd8f8f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/default_colorizer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/uuid" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/directrix/boolean.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/directrix/boolean.json new file mode 100644 index 0000000000..cd729d804c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/directrix/boolean.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/circle/directrix/boolean/lit_false_east" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/directrix/empty.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/directrix/empty.json new file mode 100644 index 0000000000..98be3ef487 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/directrix/empty.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/circle/directrix/empty/dim_east" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/directrix/redstone.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/directrix/redstone.json new file mode 100644 index 0000000000..e2b947d5a9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/directrix/redstone.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/circle/directrix/redstone/lit_unpowered_east" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_black.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_black.json new file mode 100644 index 0000000000..2f55b6c22b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_black.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_black" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_blue.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_blue.json new file mode 100644 index 0000000000..add421a999 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_blue.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_blue" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_brown.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_brown.json new file mode 100644 index 0000000000..3be301eb1a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_brown.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_brown" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_cyan.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_cyan.json new file mode 100644 index 0000000000..c436f3155b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_cyan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_cyan" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_gray.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_gray.json new file mode 100644 index 0000000000..146f01411c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_gray" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_green.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_green.json new file mode 100644 index 0000000000..679f147944 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_green.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_green" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_blue.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_blue.json new file mode 100644 index 0000000000..433877e853 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_blue.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_light_blue" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_gray.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_gray.json new file mode 100644 index 0000000000..f5625b67c2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_light_gray" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_lime.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_lime.json new file mode 100644 index 0000000000..c1cf22959e --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_lime.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_lime" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_magenta.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_magenta.json new file mode 100644 index 0000000000..12dcaa82c4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_magenta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_magenta" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_orange.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_orange.json new file mode 100644 index 0000000000..99679c17f8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_orange.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_orange" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_pink.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_pink.json new file mode 100644 index 0000000000..c138e93ff0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_pink.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_pink" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_purple.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_purple.json new file mode 100644 index 0000000000..d31e3b601c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_purple.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_purple" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_red.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_red.json new file mode 100644 index 0000000000..1fb8f9dd4d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_red.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_red" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_white.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_white.json new file mode 100644 index 0000000000..db4d15eb32 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_white.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_white" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_yellow.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_yellow.json new file mode 100644 index 0000000000..594bb0a09d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_yellow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/dye_yellow" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_button.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_button.json new file mode 100644 index 0000000000..e18736c2c8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "hexcasting:block/edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_door.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_door.json new file mode 100644 index 0000000000..5d6fb8d7ff --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/edified_door" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_fence.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_fence.json new file mode 100644 index 0000000000..db31b01904 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_fence_inventory" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_fence_gate.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_fence_gate.json new file mode 100644 index 0000000000..3dfe521195 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_fence_gate" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log.json new file mode 100644 index 0000000000..d3c7aeeb06 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_log" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_amethyst.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_amethyst.json new file mode 100644 index 0000000000..8e80eb679a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_amethyst.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_log_amethyst" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_aventurine.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_aventurine.json new file mode 100644 index 0000000000..45007ec40b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_aventurine.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_log_aventurine" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_citrine.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_citrine.json new file mode 100644 index 0000000000..9cae394851 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_citrine.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_log_citrine" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_purple.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_purple.json new file mode 100644 index 0000000000..62c67453ce --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_log_purple.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_log_purple" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_panel.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_panel.json new file mode 100644 index 0000000000..355e2765e1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_panel.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_panel" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_planks.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_planks.json new file mode 100644 index 0000000000..4ed5d45aab --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_planks" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_pressure_plate.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_pressure_plate.json new file mode 100644 index 0000000000..921f7f5bd0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_pressure_plate" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_slab.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_slab.json new file mode 100644 index 0000000000..4772af6ed1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_slab" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_stairs.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_stairs.json new file mode 100644 index 0000000000..90eb4d5123 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_stairs" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_tile.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_tile.json new file mode 100644 index 0000000000..05702f6ed8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_tile.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_tile" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_trapdoor.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_trapdoor.json new file mode 100644 index 0000000000..8c89f1e881 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_trapdoor_bottom" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_wood.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_wood.json new file mode 100644 index 0000000000..c9bfee3a01 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/edified_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/edified_wood" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus.json new file mode 100644 index 0000000000..78328a9dee --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus.json @@ -0,0 +1,176 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "hexcasting:item/focus", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/focus_0_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/focus_0_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/focus_1", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/focus_1_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/focus_1_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/focus_2", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/focus_2_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/focus_2_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/focus_3", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/focus_3_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/focus_3_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/focus_4", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/focus_4_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/focus_4_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/focus_5", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/focus_5_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/focus_5_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/focus_6", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/focus_6_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/focus_6_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/focus_7", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 7.0 + } + }, + { + "model": "hexcasting:item/focus_7_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 7.0 + } + }, + { + "model": "hexcasting:item/focus_7_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 7.0 + } + } + ], + "textures": { + "layer0": "hexcasting:item/cad/0_focus_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_0_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_0_filled.json new file mode 100644 index 0000000000..508a3497f6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_0_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/0_focus_filled", + "layer1": "hexcasting:item/cad/0_focus_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_0_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_0_sealed.json new file mode 100644 index 0000000000..0a64292241 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_0_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/0_focus_sealed", + "layer1": "hexcasting:item/cad/0_focus_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_1.json new file mode 100644 index 0000000000..75d8bf400d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_focus_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_1_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_1_filled.json new file mode 100644 index 0000000000..bd04934627 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_1_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_focus_filled", + "layer1": "hexcasting:item/cad/1_focus_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_1_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_1_sealed.json new file mode 100644 index 0000000000..001bf05b5a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_1_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_focus_sealed", + "layer1": "hexcasting:item/cad/1_focus_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_2.json new file mode 100644 index 0000000000..a9ef859978 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_focus_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_2_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_2_filled.json new file mode 100644 index 0000000000..05c2799dfc --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_2_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_focus_filled", + "layer1": "hexcasting:item/cad/2_focus_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_2_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_2_sealed.json new file mode 100644 index 0000000000..1c7c230bef --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_2_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_focus_sealed", + "layer1": "hexcasting:item/cad/2_focus_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_3.json new file mode 100644 index 0000000000..fb366d08b2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_focus_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_3_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_3_filled.json new file mode 100644 index 0000000000..3ad27dfcdf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_3_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_focus_filled", + "layer1": "hexcasting:item/cad/3_focus_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_3_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_3_sealed.json new file mode 100644 index 0000000000..447b7b4198 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_3_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_focus_sealed", + "layer1": "hexcasting:item/cad/3_focus_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_4.json new file mode 100644 index 0000000000..a3c1bf4eb2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_focus_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_4_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_4_filled.json new file mode 100644 index 0000000000..8b9eb2024f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_4_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_focus_filled", + "layer1": "hexcasting:item/cad/4_focus_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_4_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_4_sealed.json new file mode 100644 index 0000000000..2831235f44 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_4_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_focus_sealed", + "layer1": "hexcasting:item/cad/4_focus_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_5.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_5.json new file mode 100644 index 0000000000..e13b4fa14b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_focus_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_5_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_5_filled.json new file mode 100644 index 0000000000..cbac2be535 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_5_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_focus_filled", + "layer1": "hexcasting:item/cad/5_focus_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_5_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_5_sealed.json new file mode 100644 index 0000000000..248801d925 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_5_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_focus_sealed", + "layer1": "hexcasting:item/cad/5_focus_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_6.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_6.json new file mode 100644 index 0000000000..3bc3f8518f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_focus_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_6_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_6_filled.json new file mode 100644 index 0000000000..e950df1223 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_6_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_focus_filled", + "layer1": "hexcasting:item/cad/6_focus_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_6_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_6_sealed.json new file mode 100644 index 0000000000..c10282e6b1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_6_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_focus_sealed", + "layer1": "hexcasting:item/cad/6_focus_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_7.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_7.json new file mode 100644 index 0000000000..8ad8085617 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_focus_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_7_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_7_filled.json new file mode 100644 index 0000000000..e6d7b1f28d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_7_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_focus_filled", + "layer1": "hexcasting:item/cad/7_focus_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_7_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_7_sealed.json new file mode 100644 index 0000000000..52d149f4ae --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/focus_7_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_focus_sealed", + "layer1": "hexcasting:item/cad/7_focus_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/empty.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/empty.json new file mode 100644 index 0000000000..68e7192da1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/empty.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/circle/impetus/empty/dim_east" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/look.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/look.json new file mode 100644 index 0000000000..73f69303be --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/look.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/circle/impetus/look/lit_east" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/redstone.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/redstone.json new file mode 100644 index 0000000000..523b5343b6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/redstone.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/circle/impetus/redstone/lit_east" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/rightclick.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/rightclick.json new file mode 100644 index 0000000000..381232171f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/impetus/rightclick.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/circle/impetus/rightclick/lit_east" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/jeweler_hammer.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/jeweler_hammer.json new file mode 100644 index 0000000000..22447e1fbd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/jeweler_hammer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "hexcasting:item/jeweler_hammer" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/lens.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/lens.json new file mode 100644 index 0000000000..2fdc8f9ce5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/lens.json @@ -0,0 +1,20 @@ +{ + "parent": "minecraft:item/generated", + "display": { + "head": { + "scale": [ + 0.4, + 0.4, + 0.4 + ], + "translation": [ + -2.5, + 0, + -8 + ] + } + }, + "textures": { + "layer0": "hexcasting:item/lens" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/lore_fragment.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/lore_fragment.json new file mode 100644 index 0000000000..2b2f9e66fa --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/lore_fragment.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/lore_fragment" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/old_staff.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/old_staff.json new file mode 100644 index 0000000000..f40e6b8ab1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/old_staff.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/old" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/patchouli_book.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/patchouli_book.json new file mode 100644 index 0000000000..a840c0e427 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/patchouli_book.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/patchouli_book" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_0.json new file mode 100644 index 0000000000..db3db02acd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_large_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_1.json new file mode 100644 index 0000000000..bdff2d1022 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_large_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_2.json new file mode 100644 index 0000000000..9c09bea449 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_large_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_3.json new file mode 100644 index 0000000000..085960c8d8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_large_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_4.json new file mode 100644 index 0000000000..c39357f8de --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_large_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_large_4" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_0.json new file mode 100644 index 0000000000..d5e18bb295 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_larger_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_1.json new file mode 100644 index 0000000000..b19928c486 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_larger_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_2.json new file mode 100644 index 0000000000..ac7ed775cc --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_larger_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_3.json new file mode 100644 index 0000000000..b02ce98e95 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_larger_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_4.json new file mode 100644 index 0000000000..8b313df86f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_larger_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_larger_4" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_0.json new file mode 100644 index 0000000000..0e44b418f2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_largest_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_1.json new file mode 100644 index 0000000000..4f456814f5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_largest_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_2.json new file mode 100644 index 0000000000..ab2bdf4a2b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_largest_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_3.json new file mode 100644 index 0000000000..10d70acab3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_largest_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_4.json new file mode 100644 index 0000000000..3c0682e560 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_largest_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_largest_4" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_0.json new file mode 100644 index 0000000000..cb8b4c0920 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_medium_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_1.json new file mode 100644 index 0000000000..a7f30e8113 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_medium_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_2.json new file mode 100644 index 0000000000..f9f5615cf2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_medium_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_3.json new file mode 100644 index 0000000000..dbfcb528bd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_medium_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_4.json new file mode 100644 index 0000000000..a7501a8e1b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_medium_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_medium_4" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_0.json new file mode 100644 index 0000000000..fda398e2d9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_small_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_1.json new file mode 100644 index 0000000000..df784108aa --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_small_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_2.json new file mode 100644 index 0000000000..f868032c36 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_small_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_3.json new file mode 100644 index 0000000000..ce4a7999b0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_small_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_4.json new file mode 100644 index 0000000000..bde40839db --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/phial_small_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/phial/phial_small_4" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_agender.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_agender.json new file mode 100644 index 0000000000..9c68ff47ff --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_agender.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_agender" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aroace.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aroace.json new file mode 100644 index 0000000000..eb0fabc595 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aroace.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_aroace" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aromantic.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aromantic.json new file mode 100644 index 0000000000..7ea60f31e3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aromantic.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_aromantic" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_asexual.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_asexual.json new file mode 100644 index 0000000000..d40b1f2bcb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_asexual.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_asexual" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_bisexual.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_bisexual.json new file mode 100644 index 0000000000..e1d4b2d77f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_bisexual.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_bisexual" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demiboy.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demiboy.json new file mode 100644 index 0000000000..cd0fe06093 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demiboy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_demiboy" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demigirl.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demigirl.json new file mode 100644 index 0000000000..afda4cabea --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demigirl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_demigirl" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_gay.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_gay.json new file mode 100644 index 0000000000..353816c8ad --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_gay.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_gay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderfluid.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderfluid.json new file mode 100644 index 0000000000..fe3641c797 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderfluid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_genderfluid" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderqueer.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderqueer.json new file mode 100644 index 0000000000..270eeb011f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderqueer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_genderqueer" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_intersex.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_intersex.json new file mode 100644 index 0000000000..506facd3de --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_intersex.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_intersex" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_lesbian.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_lesbian.json new file mode 100644 index 0000000000..61d110d4cc --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_lesbian.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_lesbian" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_nonbinary.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_nonbinary.json new file mode 100644 index 0000000000..0212b47a17 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_nonbinary.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_nonbinary" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_pansexual.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_pansexual.json new file mode 100644 index 0000000000..706726a311 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_pansexual.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_pansexual" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_plural.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_plural.json new file mode 100644 index 0000000000..e6ecd7890e --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_plural.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_plural" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_transgender.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_transgender.json new file mode 100644 index 0000000000..2655a8e596 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_transgender.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/pride_transgender" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json new file mode 100644 index 0000000000..c6ee6b0951 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json @@ -0,0 +1,28 @@ +{ + "overrides": [ + { + "model": "hexcasting:block/quenched_allay_0", + "predicate": { + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:block/quenched_allay_1", + "predicate": { + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:block/quenched_allay_2", + "predicate": { + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:block/quenched_allay_3", + "predicate": { + "hexcasting:variant": 3.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json new file mode 100644 index 0000000000..c3a1b63856 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json @@ -0,0 +1,28 @@ +{ + "overrides": [ + { + "model": "hexcasting:block/deco/quenched_allay_bricks_0", + "predicate": { + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:block/deco/quenched_allay_bricks_1", + "predicate": { + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:block/deco/quenched_allay_bricks_2", + "predicate": { + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:block/deco/quenched_allay_bricks_3", + "predicate": { + "hexcasting:variant": 3.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json new file mode 100644 index 0000000000..c0e376a548 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json @@ -0,0 +1,28 @@ +{ + "overrides": [ + { + "model": "hexcasting:block/deco/quenched_allay_bricks_small_0", + "predicate": { + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:block/deco/quenched_allay_bricks_small_1", + "predicate": { + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:block/deco/quenched_allay_bricks_small_2", + "predicate": { + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:block/deco/quenched_allay_bricks_small_3", + "predicate": { + "hexcasting:variant": 3.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json new file mode 100644 index 0000000000..495e817b78 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json @@ -0,0 +1,28 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/quenched_shard_0", + "predicate": { + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/quenched_shard_1", + "predicate": { + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/quenched_shard_2", + "predicate": { + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/quenched_shard_3", + "predicate": { + "hexcasting:variant": 3.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json new file mode 100644 index 0000000000..5ea5cf33c5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json @@ -0,0 +1,28 @@ +{ + "overrides": [ + { + "model": "hexcasting:block/deco/quenched_allay_tiles_0", + "predicate": { + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:block/deco/quenched_allay_tiles_1", + "predicate": { + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:block/deco/quenched_allay_tiles_2", + "predicate": { + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:block/deco/quenched_allay_tiles_3", + "predicate": { + "hexcasting:variant": 3.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_0.json new file mode 100644 index 0000000000..bdd43ddc80 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "hexcasting:item/quenched_shard_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_1.json new file mode 100644 index 0000000000..4cffa2efe0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "hexcasting:item/quenched_shard_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_2.json new file mode 100644 index 0000000000..e24c8dafbf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "hexcasting:item/quenched_shard_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_3.json new file mode 100644 index 0000000000..208890fe3d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/quenched_shard_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "hexcasting:item/quenched_shard_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll.json new file mode 100644 index 0000000000..5453ed3ec6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/scroll_pristine_large", + "predicate": { + "hexcasting:ancient": 0.0 + } + }, + { + "model": "hexcasting:item/scroll_ancient_large", + "predicate": { + "hexcasting:ancient": 1.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_large.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_large.json new file mode 100644 index 0000000000..192b9920a6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_large.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/scroll_ancient_large" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_medium.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_medium.json new file mode 100644 index 0000000000..eccfe83cb7 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_medium.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/scroll_ancient_medium" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_small.json new file mode 100644 index 0000000000..5f66417b21 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_small.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/scroll_ancient_small" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_medium.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_medium.json new file mode 100644 index 0000000000..7752e9be45 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_medium.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/scroll_pristine_medium", + "predicate": { + "hexcasting:ancient": 0.0 + } + }, + { + "model": "hexcasting:item/scroll_ancient_medium", + "predicate": { + "hexcasting:ancient": 1.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_paper.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_paper.json new file mode 100644 index 0000000000..ee576746b9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_paper.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/scroll_paper" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_paper_lantern.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_paper_lantern.json new file mode 100644 index 0000000000..8fafbd4a86 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_paper_lantern.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/scroll_paper_lantern" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_large.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_large.json new file mode 100644 index 0000000000..0042b78487 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_large.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/scroll_pristine_large" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_medium.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_medium.json new file mode 100644 index 0000000000..a219c7855d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_medium.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/scroll_pristine_medium" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_small.json new file mode 100644 index 0000000000..6405ebefb2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_small.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/scroll_pristine_small" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_small.json new file mode 100644 index 0000000000..583fd0f3c8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/scroll_small.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/scroll_pristine_small", + "predicate": { + "hexcasting:ancient": 0.0 + } + }, + { + "model": "hexcasting:item/scroll_ancient_small", + "predicate": { + "hexcasting:ancient": 1.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate.json new file mode 100644 index 0000000000..146695e299 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/slate_blank", + "predicate": { + "hexcasting:written": 0.0 + } + }, + { + "model": "hexcasting:item/slate_written", + "predicate": { + "hexcasting:written": 1.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks.json new file mode 100644 index 0000000000..727a50c807 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/slate_amethyst_bricks_0" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks_small.json new file mode 100644 index 0000000000..accf94f2b3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks_small.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/slate_amethyst_bricks_small_0" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_pillar.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_pillar.json new file mode 100644 index 0000000000..749887313c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/slate_amethyst_pillar" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_tiles.json new file mode 100644 index 0000000000..e20b742c26 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/slate_amethyst_tiles" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_blank.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_blank.json new file mode 100644 index 0000000000..df037ffa4b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_blank.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/slate_blank" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_block.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_block.json new file mode 100644 index 0000000000..c40e37f12b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_block.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/slate_block" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_bricks.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_bricks.json new file mode 100644 index 0000000000..adc880399e --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/slate_bricks" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_bricks_small.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_bricks_small.json new file mode 100644 index 0000000000..4d0555b2c6 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_bricks_small.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/slate_bricks_small" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_pillar.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_pillar.json new file mode 100644 index 0000000000..8d6a18fa25 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/slate_pillar" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_tiles.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_tiles.json new file mode 100644 index 0000000000..c2bf7616b8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/deco/slate_tiles" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_written.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_written.json new file mode 100644 index 0000000000..a17de30bf5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/slate_written.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/slate_written" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook.json new file mode 100644 index 0000000000..5acb33c2cd --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook.json @@ -0,0 +1,176 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "hexcasting:item/spellbook", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/spellbook_0_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/spellbook_0_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/spellbook_1", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/spellbook_1_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/spellbook_1_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/spellbook_2", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/spellbook_2_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/spellbook_2_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/spellbook_3", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/spellbook_3_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/spellbook_3_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/spellbook_4", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/spellbook_4_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/spellbook_4_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/spellbook_5", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/spellbook_5_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/spellbook_5_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/spellbook_6", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/spellbook_6_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/spellbook_6_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/spellbook_7", + "predicate": { + "hexcasting:overlay_layer": 0.0, + "hexcasting:variant": 7.0 + } + }, + { + "model": "hexcasting:item/spellbook_7_filled", + "predicate": { + "hexcasting:overlay_layer": 1.0, + "hexcasting:variant": 7.0 + } + }, + { + "model": "hexcasting:item/spellbook_7_sealed", + "predicate": { + "hexcasting:overlay_layer": 2.0, + "hexcasting:variant": 7.0 + } + } + ], + "textures": { + "layer0": "hexcasting:item/cad/0_spellbook_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_0_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_0_filled.json new file mode 100644 index 0000000000..1727f3854d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_0_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/0_spellbook_filled", + "layer1": "hexcasting:item/cad/0_spellbook_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_0_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_0_sealed.json new file mode 100644 index 0000000000..e580e3ceb5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_0_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/0_spellbook_sealed", + "layer1": "hexcasting:item/cad/0_spellbook_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_1.json new file mode 100644 index 0000000000..6b832d7806 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_spellbook_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_1_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_1_filled.json new file mode 100644 index 0000000000..3ded667934 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_1_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_spellbook_filled", + "layer1": "hexcasting:item/cad/1_spellbook_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_1_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_1_sealed.json new file mode 100644 index 0000000000..91c0ed2bc4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_1_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_spellbook_sealed", + "layer1": "hexcasting:item/cad/1_spellbook_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_2.json new file mode 100644 index 0000000000..2d1355b5e9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_spellbook_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_2_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_2_filled.json new file mode 100644 index 0000000000..9af15dfbbb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_2_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_spellbook_filled", + "layer1": "hexcasting:item/cad/2_spellbook_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_2_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_2_sealed.json new file mode 100644 index 0000000000..bd336d2d1a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_2_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_spellbook_sealed", + "layer1": "hexcasting:item/cad/2_spellbook_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_3.json new file mode 100644 index 0000000000..e18eaf0d3c --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_spellbook_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_3_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_3_filled.json new file mode 100644 index 0000000000..6b611c62b0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_3_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_spellbook_filled", + "layer1": "hexcasting:item/cad/3_spellbook_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_3_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_3_sealed.json new file mode 100644 index 0000000000..25a265b6d3 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_3_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_spellbook_sealed", + "layer1": "hexcasting:item/cad/3_spellbook_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_4.json new file mode 100644 index 0000000000..38cd5d8fc0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_spellbook_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_4_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_4_filled.json new file mode 100644 index 0000000000..ebccd06cef --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_4_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_spellbook_filled", + "layer1": "hexcasting:item/cad/4_spellbook_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_4_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_4_sealed.json new file mode 100644 index 0000000000..d281078d45 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_4_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_spellbook_sealed", + "layer1": "hexcasting:item/cad/4_spellbook_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_5.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_5.json new file mode 100644 index 0000000000..2f82f7d8a2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_spellbook_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_5_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_5_filled.json new file mode 100644 index 0000000000..99cc74e732 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_5_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_spellbook_filled", + "layer1": "hexcasting:item/cad/5_spellbook_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_5_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_5_sealed.json new file mode 100644 index 0000000000..0a4a822a5b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_5_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_spellbook_sealed", + "layer1": "hexcasting:item/cad/5_spellbook_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_6.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_6.json new file mode 100644 index 0000000000..608c5cdd24 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_spellbook_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_6_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_6_filled.json new file mode 100644 index 0000000000..b47cfbac66 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_6_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_spellbook_filled", + "layer1": "hexcasting:item/cad/6_spellbook_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_6_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_6_sealed.json new file mode 100644 index 0000000000..2fa15268d2 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_6_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_spellbook_sealed", + "layer1": "hexcasting:item/cad/6_spellbook_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_7.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_7.json new file mode 100644 index 0000000000..1e7e436978 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_spellbook_empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_7_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_7_filled.json new file mode 100644 index 0000000000..8438b02ac0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_7_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_spellbook_filled", + "layer1": "hexcasting:item/cad/7_spellbook_filled_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_7_sealed.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_7_sealed.json new file mode 100644 index 0000000000..d91512283f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/spellbook_7_sealed.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_spellbook_sealed", + "layer1": "hexcasting:item/cad/7_spellbook_sealed_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/acacia.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/acacia.json new file mode 100644 index 0000000000..ea1bd514d1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/acacia.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/acacia" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/bamboo.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/bamboo.json new file mode 100644 index 0000000000..cb00188989 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/bamboo.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/bamboo" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/birch.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/birch.json new file mode 100644 index 0000000000..c56b377279 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/birch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/birch" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/cherry.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/cherry.json new file mode 100644 index 0000000000..1fb6398518 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/cherry.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/cherry" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/crimson.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/crimson.json new file mode 100644 index 0000000000..fa68214ae5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/crimson.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/crimson" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/dark_oak.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/dark_oak.json new file mode 100644 index 0000000000..ef89b141c8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/dark_oak.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/dark_oak" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/edified.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/edified.json new file mode 100644 index 0000000000..2ecbbaa4b8 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/edified.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/edified" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/jungle.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/jungle.json new file mode 100644 index 0000000000..81fc631e34 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/jungle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/jungle" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/mangrove.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/mangrove.json new file mode 100644 index 0000000000..1d055a8943 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/mangrove.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/mangrove" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/mindsplice.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/mindsplice.json new file mode 100644 index 0000000000..a2a679a5b5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/mindsplice.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/mindsplice" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/oak.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/oak.json new file mode 100644 index 0000000000..c9a35a19c7 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/oak.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/oak" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json new file mode 100644 index 0000000000..16e5858599 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json @@ -0,0 +1,28 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/staff/quenched_0", + "predicate": { + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/staff/quenched_1", + "predicate": { + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/staff/quenched_2", + "predicate": { + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/staff/quenched_3", + "predicate": { + "hexcasting:variant": 3.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_0.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_0.json new file mode 100644 index 0000000000..d34dbbfe48 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/quenched_0" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_1.json new file mode 100644 index 0000000000..b3b4d49426 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/quenched_1" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_2.json new file mode 100644 index 0000000000..9d34fae3ed --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/quenched_2" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_3.json new file mode 100644 index 0000000000..61a55746b1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/quenched_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/quenched_3" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/spruce.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/spruce.json new file mode 100644 index 0000000000..aa60185a6a --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/spruce.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/spruce" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/warped.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/warped.json new file mode 100644 index 0000000000..4a157768aa --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/staff/warped.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "hexcasting:item/staff/warped" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/stripped_edified_log.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/stripped_edified_log.json new file mode 100644 index 0000000000..69e448436d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/stripped_edified_log.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/stripped_edified_log" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/stripped_edified_wood.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/stripped_edified_wood.json new file mode 100644 index 0000000000..45e5b99e81 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/stripped_edified_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "hexcasting:block/stripped_edified_wood" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/sub_sandwich.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/sub_sandwich.json new file mode 100644 index 0000000000..c5dd346a84 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/sub_sandwich.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/sub_sandwich" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/thought_knot.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/thought_knot.json new file mode 100644 index 0000000000..4a9917224b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/thought_knot.json @@ -0,0 +1,20 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "hexcasting:item/thought_knot", + "predicate": { + "hexcasting:written": 0.0 + } + }, + { + "model": "hexcasting:item/thought_knot_written", + "predicate": { + "hexcasting:written": 1.0 + } + } + ], + "textures": { + "layer0": "hexcasting:item/thought_knot" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/thought_knot_written.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/thought_knot_written.json new file mode 100644 index 0000000000..f5b12c99d9 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/thought_knot_written.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/thought_knot", + "layer1": "hexcasting:item/thought_knot_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket.json new file mode 100644 index 0000000000..19102d169b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket.json @@ -0,0 +1,120 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "hexcasting:item/trinket", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/trinket_0_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 0.0 + } + }, + { + "model": "hexcasting:item/trinket_1", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/trinket_1_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 1.0 + } + }, + { + "model": "hexcasting:item/trinket_2", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/trinket_2_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 2.0 + } + }, + { + "model": "hexcasting:item/trinket_3", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/trinket_3_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 3.0 + } + }, + { + "model": "hexcasting:item/trinket_4", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/trinket_4_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 4.0 + } + }, + { + "model": "hexcasting:item/trinket_5", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/trinket_5_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 5.0 + } + }, + { + "model": "hexcasting:item/trinket_6", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/trinket_6_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 6.0 + } + }, + { + "model": "hexcasting:item/trinket_7", + "predicate": { + "hexcasting:has_patterns": -0.01, + "hexcasting:variant": 7.0 + } + }, + { + "model": "hexcasting:item/trinket_7_filled", + "predicate": { + "hexcasting:has_patterns": 0.99, + "hexcasting:variant": 7.0 + } + } + ], + "textures": { + "layer0": "hexcasting:item/cad/0_trinket" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_0_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_0_filled.json new file mode 100644 index 0000000000..77da0e72e5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_0_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/0_trinket", + "layer1": "hexcasting:item/cad/0_trinket_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_1.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_1.json new file mode 100644 index 0000000000..4eb168d7f1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_trinket" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_1_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_1_filled.json new file mode 100644 index 0000000000..80a274ce90 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_1_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/1_trinket", + "layer1": "hexcasting:item/cad/1_trinket_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_2.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_2.json new file mode 100644 index 0000000000..f38c5e5dc4 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_trinket" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_2_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_2_filled.json new file mode 100644 index 0000000000..6c60bb9486 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_2_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/2_trinket", + "layer1": "hexcasting:item/cad/2_trinket_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_3.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_3.json new file mode 100644 index 0000000000..4410e1a4ff --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_trinket" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_3_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_3_filled.json new file mode 100644 index 0000000000..4aea4da78e --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_3_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/3_trinket", + "layer1": "hexcasting:item/cad/3_trinket_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_4.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_4.json new file mode 100644 index 0000000000..87903d7d9b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_trinket" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_4_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_4_filled.json new file mode 100644 index 0000000000..9b61c263fb --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_4_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/4_trinket", + "layer1": "hexcasting:item/cad/4_trinket_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_5.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_5.json new file mode 100644 index 0000000000..4cc6440a50 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_trinket" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_5_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_5_filled.json new file mode 100644 index 0000000000..fbc3567288 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_5_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/5_trinket", + "layer1": "hexcasting:item/cad/5_trinket_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_6.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_6.json new file mode 100644 index 0000000000..6cc75f387d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_trinket" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_6_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_6_filled.json new file mode 100644 index 0000000000..bdd007f345 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_6_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/6_trinket", + "layer1": "hexcasting:item/cad/6_trinket_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_7.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_7.json new file mode 100644 index 0000000000..a2f57e04cc --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_trinket" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_7_filled.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_7_filled.json new file mode 100644 index 0000000000..e83c8fa4bc --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/trinket_7_filled.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/cad/7_trinket", + "layer1": "hexcasting:item/cad/7_trinket_overlay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/item/uuid_colorizer.json b/Neoforge/src/generated/resources/assets/hexcasting/models/item/uuid_colorizer.json new file mode 100644 index 0000000000..0b76dd8f8f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/item/uuid_colorizer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hexcasting:item/colorizer/uuid" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/acacia.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/acacia.json new file mode 100644 index 0000000000..6a28f12462 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/acacia.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/acacia_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/bamboo.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/bamboo.json new file mode 100644 index 0000000000..c0f063051f --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/bamboo.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/bamboo_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/birch.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/birch.json new file mode 100644 index 0000000000..571e454dd7 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/birch.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/birch_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/cherry.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/cherry.json new file mode 100644 index 0000000000..9a663a248b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/cherry.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/crimson.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/crimson.json new file mode 100644 index 0000000000..059589861d --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/crimson.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/crimson_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/dark_oak.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/dark_oak.json new file mode 100644 index 0000000000..31dc19c0e5 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/dark_oak.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/dark_oak_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/edified.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/edified.json new file mode 100644 index 0000000000..903e47409b --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/edified.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/edified_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/jungle.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/jungle.json new file mode 100644 index 0000000000..06b8e032d0 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/jungle.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/jungle_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/mangrove.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/mangrove.json new file mode 100644 index 0000000000..0d75f169c1 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/mangrove.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/mangrove_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/mindsplice.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/mindsplice.json new file mode 100644 index 0000000000..5c469011ad --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/mindsplice.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/mindsplice_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/oak.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/oak.json new file mode 100644 index 0000000000..8903a42caf --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/oak.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/oak_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/spruce.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/spruce.json new file mode 100644 index 0000000000..3f3562c473 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/spruce.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/spruce_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/assets/hexcasting/models/staff/warped.json b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/warped.json new file mode 100644 index 0000000000..62ab1990d7 --- /dev/null +++ b/Neoforge/src/generated/resources/assets/hexcasting/models/staff/warped.json @@ -0,0 +1,16 @@ +{ + "overrides": [ + { + "model": "hexcasting:item/warped_staff", + "predicate": { + "hexcasting:funny_level": 0.0 + } + }, + { + "model": "hexcasting:item/cherry_staff", + "predicate": { + "hexcasting:funny_level": 2.0 + } + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/create/recipes/crushing/amethyst_block.json b/Neoforge/src/generated/resources/data/create/recipes/crushing/amethyst_block.json deleted file mode 100644 index 8ad54e92f0..0000000000 --- a/Neoforge/src/generated/resources/data/create/recipes/crushing/amethyst_block.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "create" - } - ], - "recipe": { - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:amethyst_block" - } - ], - "processingTime": 150, - "results": [ - { - "count": 3, - "item": "minecraft:amethyst_shard" - }, - { - "chance": 0.5, - "count": 4, - "item": "hexcasting:amethyst_dust" - } - ] - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/create/recipes/crushing/amethyst_cluster.json b/Neoforge/src/generated/resources/data/create/recipes/crushing/amethyst_cluster.json deleted file mode 100644 index 6673126525..0000000000 --- a/Neoforge/src/generated/resources/data/create/recipes/crushing/amethyst_cluster.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "create" - } - ], - "recipe": { - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:amethyst_cluster" - } - ], - "processingTime": 150, - "results": [ - { - "count": 7, - "item": "minecraft:amethyst_shard" - }, - { - "count": 5, - "item": "hexcasting:amethyst_dust" - }, - { - "chance": 0.25, - "item": "hexcasting:charged_amethyst" - } - ] - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/create/tags/block/brittle.json b/Neoforge/src/generated/resources/data/create/tags/block/brittle.json new file mode 100644 index 0000000000..fb66be6093 --- /dev/null +++ b/Neoforge/src/generated/resources/data/create/tags/block/brittle.json @@ -0,0 +1,8 @@ +{ + "values": [ + { + "id": "#hexcasting:slate", + "required": false + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/forge/loot_modifiers/global_loot_modifiers.json b/Neoforge/src/generated/resources/data/forge/loot_modifiers/global_loot_modifiers.json deleted file mode 100644 index 978f1f8d21..0000000000 --- a/Neoforge/src/generated/resources/data/forge/loot_modifiers/global_loot_modifiers.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "entries": [ - "hexcasting:scroll/minecraft/chests/nether_bridge", - "hexcasting:scroll/minecraft/chests/village/village_cartographer", - "hexcasting:lore/minecraft/chests/village/village_taiga_house", - "hexcasting:scroll/minecraft/chests/shipwreck_map", - "hexcasting:lore/minecraft/chests/village/village_snowy_house", - "hexcasting:scroll/minecraft/chests/abandoned_mineshaft", - "hexcasting:amethyst_cluster", - "hexcasting:lore/minecraft/chests/village/village_plains_house", - "hexcasting:lore/minecraft/chests/stronghold_library", - "hexcasting:scroll/minecraft/chests/bastion_other", - "hexcasting:lore/minecraft/chests/woodland_mansion", - "hexcasting:lore/minecraft/chests/village/village_desert_house", - "hexcasting:scroll/minecraft/chests/end_city_treasure", - "hexcasting:scroll/minecraft/chests/jungle_temple", - "hexcasting:scroll/minecraft/chests/bastion_treasure", - "hexcasting:lore/minecraft/chests/village/village_savanna_house", - "hexcasting:scroll/minecraft/chests/pillager_outpost", - "hexcasting:scroll/minecraft/chests/desert_pyramid", - "hexcasting:lore/minecraft/chests/abandoned_mineshaft", - "hexcasting:lore/minecraft/chests/pillager_outpost", - "hexcasting:scroll/minecraft/chests/ancient_city", - "hexcasting:scroll/minecraft/chests/stronghold_library", - "hexcasting:lore/minecraft/chests/simple_dungeon", - "hexcasting:scroll/minecraft/chests/woodland_mansion", - "hexcasting:scroll/minecraft/chests/simple_dungeon" - ], - "replace": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/forge/tags/item/dusts/amethyst.json b/Neoforge/src/generated/resources/data/forge/tags/item/dusts/amethyst.json new file mode 100644 index 0000000000..d936f71efc --- /dev/null +++ b/Neoforge/src/generated/resources/data/forge/tags/item/dusts/amethyst.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:amethyst_dust" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/forge/tags/item/gems.json b/Neoforge/src/generated/resources/data/forge/tags/item/gems.json new file mode 100644 index 0000000000..6c55bdef92 --- /dev/null +++ b/Neoforge/src/generated/resources/data/forge/tags/item/gems.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:charged_amethyst" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/aaa_wasteful_cast.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/aaa_wasteful_cast.json new file mode 100644 index 0000000000..158691c260 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/aaa_wasteful_cast.json @@ -0,0 +1,32 @@ +{ + "parent": "hexcasting:root", + "criteria": { + "waste_amt": { + "conditions": { + "health_used": { + "min": 89000 + }, + "media_generated": {} + }, + "trigger": "hexcasting:spend_media" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:wasteful_cast.desc" + }, + "icon": { + "count": 1, + "id": "minecraft:glistering_melon_slice" + }, + "title": { + "translate": "advancement.hexcasting:wasteful_cast" + } + }, + "requirements": [ + [ + "waste_amt" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/aab_big_cast.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/aab_big_cast.json new file mode 100644 index 0000000000..4664381e91 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/aab_big_cast.json @@ -0,0 +1,32 @@ +{ + "parent": "hexcasting:root", + "criteria": { + "cast_amt": { + "conditions": { + "health_used": {}, + "media_generated": { + "min": 6400000 + } + }, + "trigger": "hexcasting:spend_media" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:big_cast.desc" + }, + "icon": { + "count": 1, + "id": "hexcasting:charged_amethyst" + }, + "title": { + "translate": "advancement.hexcasting:big_cast" + } + }, + "requirements": [ + [ + "cast_amt" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/creative_unlocker.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/creative_unlocker.json new file mode 100644 index 0000000000..66694b8389 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/creative_unlocker.json @@ -0,0 +1,36 @@ +{ + "parent": "hexcasting:root", + "criteria": { + "has_creative_unlocker": { + "conditions": { + "items": [ + { + "items": "hexcasting:creative_unlocker" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": false, + "background": "minecraft:textures/block/calcite.png", + "description": { + "translate": "advancement.hexcasting:creative_unlocker.desc" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:creative_unlocker" + }, + "title": { + "translate": "advancement.hexcasting:creative_unlocker" + } + }, + "requirements": [ + [ + "has_creative_unlocker" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/enlightenment.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/enlightenment.json new file mode 100644 index 0000000000..6beb493204 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/enlightenment.json @@ -0,0 +1,38 @@ +{ + "parent": "hexcasting:opened_eyes", + "criteria": { + "health_used": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:enlightenment.desc" + }, + "frame": "challenge", + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:music_disc_11" + }, + "title": { + "translate": "advancement.hexcasting:enlightenment" + } + }, + "requirements": [ + [ + "health_used" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/lore.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore.json new file mode 100644 index 0000000000..42c9fd8c5f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore.json @@ -0,0 +1,32 @@ +{ + "criteria": { + "used_item": { + "conditions": { + "item": { + "items": "hexcasting:lore_fragment" + } + }, + "trigger": "minecraft:consume_item" + } + }, + "display": { + "background": "hexcasting:textures/block/slate_block.png", + "description": { + "translate": "advancement.hexcasting:lore.desc" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "hexcasting:akashic_ligature" + }, + "title": { + "translate": "advancement.hexcasting:lore" + } + }, + "requirements": [ + [ + "used_item" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom1.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom1.json new file mode 100644 index 0000000000..314c3fa628 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom1.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom1" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom2.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom2.json new file mode 100644 index 0000000000..6f3e2b9d20 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom2.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom2" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom3.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom3.json new file mode 100644 index 0000000000..2147c12792 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom3.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom3" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom4.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom4.json new file mode 100644 index 0000000000..1374bfcca4 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom4.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom4" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom5.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom5.json new file mode 100644 index 0000000000..06c329a939 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/cardamom5.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/cardamom5" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/experiment1.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/experiment1.json new file mode 100644 index 0000000000..9d2183c268 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/experiment1.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/experiment1" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/experiment2.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/experiment2.json new file mode 100644 index 0000000000..4ac3cadb4f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/experiment2.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/experiment2" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/inventory.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/inventory.json new file mode 100644 index 0000000000..abef5eb653 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/lore/inventory.json @@ -0,0 +1,25 @@ +{ + "parent": "hexcasting:lore", + "criteria": { + "grant": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "description": "", + "hidden": true, + "icon": { + "count": 1, + "id": "hexcasting:lore_fragment" + }, + "title": { + "translate": "advancement.hexcasting:lore/inventory" + } + }, + "requirements": [ + [ + "grant" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/opened_eyes.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/opened_eyes.json new file mode 100644 index 0000000000..89583b9134 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/opened_eyes.json @@ -0,0 +1,33 @@ +{ + "parent": "hexcasting:y_u_no_cast_angy", + "criteria": { + "health_used": { + "conditions": { + "health_used": {}, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "min": 0.0 + } + }, + "trigger": "hexcasting:overcast" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:opened_eyes.desc" + }, + "icon": { + "count": 1, + "id": "minecraft:ender_eye" + }, + "title": { + "translate": "advancement.hexcasting:opened_eyes" + } + }, + "requirements": [ + [ + "health_used" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/akashic_record.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/akashic_record.json new file mode 100644 index 0000000000..d36fd4dc3b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/akashic_record.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:akashic_record" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:akashic_record" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/budding_amethyst.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/budding_amethyst.json new file mode 100644 index 0000000000..18f9ea380f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/budding_amethyst.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:budding_amethyst" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:budding_amethyst" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_boolean.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_boolean.json new file mode 100644 index 0000000000..cc4c924b54 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_boolean.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:directrix_boolean" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:directrix_boolean" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_redstone.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_redstone.json new file mode 100644 index 0000000000..8a43f8bac3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/directrix_redstone.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:directrix_redstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:directrix_redstone" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_look.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_look.json new file mode 100644 index 0000000000..939dcb6e4e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_look.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus_look" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus_look" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_rightclick.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_rightclick.json new file mode 100644 index 0000000000..c4fc49fd24 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_rightclick.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus_rightclick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus_rightclick" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_storedplayer.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_storedplayer.json new file mode 100644 index 0000000000..31d9085f82 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/impetus_storedplayer.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus_storedplayer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus_storedplayer" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/quench_allay.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/quench_allay.json new file mode 100644 index 0000000000..6dfe849d9f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/brainsweep/quench_allay.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:quench_allay" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:quench_allay" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_packing.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_packing.json new file mode 100644 index 0000000000..96746726ec --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_packing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_dust_packing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_dust_packing" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_unpacking.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_unpacking.json new file mode 100644 index 0000000000..ff10efd290 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_dust_unpacking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_dust_unpacking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_dust_unpacking" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_tiles.json new file mode 100644 index 0000000000..a5ab663568 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/amethyst_tiles.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_tiles" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_tiles" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/ancient_scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/ancient_scroll_paper.json new file mode 100644 index 0000000000..ab1194da4a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/ancient_scroll_paper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:scroll_paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:ancient_scroll_paper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:ancient_scroll_paper" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence.json new file mode 100644 index 0000000000..31556a4ca8 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_fence" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence_gate.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence_gate.json new file mode 100644 index 0000000000..1d09e6fdf8 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_fence_gate" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_panel.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_panel.json new file mode 100644 index 0000000000..ab66016e10 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_panel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_panel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_panel" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_planks.json new file mode 100644 index 0000000000..f031431d00 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_planks" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_slab.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_slab.json new file mode 100644 index 0000000000..317bd1fd11 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_slab" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_stairs.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_stairs.json new file mode 100644 index 0000000000..069989ca28 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_stairs" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_tile.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_tile.json new file mode 100644 index 0000000000..5179827061 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_tile.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_tile" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_tile" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_wood.json new file mode 100644 index 0000000000..f0aaf4b1fd --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/edified_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:edified_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_wood" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/scroll_paper.json new file mode 100644 index 0000000000..d676daa7f7 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/scroll_paper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_paper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_paper" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block.json new file mode 100644 index 0000000000..770d62ab2b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:slate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:slate_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:slate_block" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block_from_slates.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block_from_slates.json new file mode 100644 index 0000000000..b2f96c2797 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/slate_block_from_slates.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:slate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:slate_block_from_slates" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:slate_block_from_slates" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stonecutting/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stonecutting/amethyst_tiles.json new file mode 100644 index 0000000000..3c2f410ce6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stonecutting/amethyst_tiles.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:stonecutting/amethyst_tiles" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:stonecutting/amethyst_tiles" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stripped_edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stripped_edified_wood.json new file mode 100644 index 0000000000..4d048fc250 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/building_blocks/stripped_edified_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:stripped_edified_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:stripped_edified_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:stripped_edified_wood" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ageing_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ageing_scroll_paper_lantern.json new file mode 100644 index 0000000000..6ae4bdbbb6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ageing_scroll_paper_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:scroll_paper_lantern" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:ageing_scroll_paper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:ageing_scroll_paper_lantern" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/amethyst_sconce.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/amethyst_sconce.json new file mode 100644 index 0000000000..91debb7ca5 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/amethyst_sconce.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:amethyst_sconce" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:amethyst_sconce" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ancient_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..f36c1abfc2 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/ancient_scroll_paper_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:ancient_scroll_paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:ancient_scroll_paper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:ancient_scroll_paper_lantern" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll.json new file mode 100644 index 0000000000..1bff0c5ff6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_medium.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_medium.json new file mode 100644 index 0000000000..2dc4651527 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_medium.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_medium" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_medium" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_paper_lantern.json new file mode 100644 index 0000000000..63884d313e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_paper_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:scroll_paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_paper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_paper_lantern" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_small.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_small.json new file mode 100644 index 0000000000..2e68c56849 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/scroll_small.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:scroll_small" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:scroll_small" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/slate.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/slate.json new file mode 100644 index 0000000000..551899a3a3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/decorations/slate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:slate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:slate" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/food/sub_sandwich.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/food/sub_sandwich.json new file mode 100644 index 0000000000..bb64c267e5 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/food/sub_sandwich.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:sub_sandwich" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:sub_sandwich" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/charged.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/charged.json new file mode 100644 index 0000000000..b032476ae7 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/charged.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:quenched_allay_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:decompose_quenched_shard/charged" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:decompose_quenched_shard/charged" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/dust.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/dust.json new file mode 100644 index 0000000000..299d8a4550 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/dust.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:quenched_allay_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:decompose_quenched_shard/dust" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:decompose_quenched_shard/dust" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/shard.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/shard.json new file mode 100644 index 0000000000..d9f9dfbb25 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/decompose_quenched_shard/shard.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:quenched_allay_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:decompose_quenched_shard/shard" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:decompose_quenched_shard/shard" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/default_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/default_colorizer.json new file mode 100644 index 0000000000..e04ea0f7b0 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/default_colorizer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:default_colorizer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:default_colorizer" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_black.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_black.json new file mode 100644 index 0000000000..486da412cd --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_black.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_black" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_black" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_blue.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_blue.json new file mode 100644 index 0000000000..c23b00add5 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_blue.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_blue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_blue" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_brown.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_brown.json new file mode 100644 index 0000000000..daf49d8674 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_brown.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_brown" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_brown" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_cyan.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_cyan.json new file mode 100644 index 0000000000..bc159a4f91 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_cyan.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_cyan" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_cyan" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_gray.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_gray.json new file mode 100644 index 0000000000..959c3b871a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_gray.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_gray" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_gray" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_green.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_green.json new file mode 100644 index 0000000000..ae496bdb93 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_green.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_green" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_green" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_blue.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_blue.json new file mode 100644 index 0000000000..9e660ad5de --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_blue.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_light_blue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_light_blue" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_gray.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_gray.json new file mode 100644 index 0000000000..b2b51d665b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_light_gray.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_light_gray" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_light_gray" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_lime.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_lime.json new file mode 100644 index 0000000000..b21321754b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_lime.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_lime" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_lime" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_magenta.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_magenta.json new file mode 100644 index 0000000000..38097fe636 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_magenta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_magenta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_magenta" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_orange.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_orange.json new file mode 100644 index 0000000000..a5e2054cd0 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_orange.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_orange" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_orange" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_pink.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_pink.json new file mode 100644 index 0000000000..868366c0a4 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_pink.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_pink" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_pink" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_purple.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_purple.json new file mode 100644 index 0000000000..b9d4282404 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_purple.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_purple" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_purple" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_red.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_red.json new file mode 100644 index 0000000000..515062d384 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_red.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_red" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_red" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_white.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_white.json new file mode 100644 index 0000000000..3fbaf1ba20 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_white.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_white" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_white" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_yellow.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_yellow.json new file mode 100644 index 0000000000..e707bc9937 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/dye_colorizer_yellow.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:dye_colorizer_yellow" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:dye_colorizer_yellow" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_agender.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_agender.json new file mode 100644 index 0000000000..e07c954cd3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_agender.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_agender" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_agender" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aroace.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aroace.json new file mode 100644 index 0000000000..8413c66774 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aroace.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_aroace" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_aroace" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aromantic.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aromantic.json new file mode 100644 index 0000000000..37604e5939 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_aromantic.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_aromantic" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_aromantic" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_asexual.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_asexual.json new file mode 100644 index 0000000000..74df9afba7 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_asexual.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_asexual" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_asexual" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_bisexual.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_bisexual.json new file mode 100644 index 0000000000..a3e18ad420 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_bisexual.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_bisexual" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_bisexual" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demiboy.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demiboy.json new file mode 100644 index 0000000000..e131fc73f1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demiboy.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_demiboy" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_demiboy" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demigirl.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demigirl.json new file mode 100644 index 0000000000..a164b59ce6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_demigirl.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_demigirl" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_demigirl" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_gay.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_gay.json new file mode 100644 index 0000000000..59c4f8fdeb --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_gay.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_gay" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_gay" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderfluid.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderfluid.json new file mode 100644 index 0000000000..5c3233fa98 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderfluid.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_genderfluid" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_genderfluid" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderqueer.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderqueer.json new file mode 100644 index 0000000000..fd6f1355ef --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_genderqueer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_genderqueer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_genderqueer" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_intersex.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_intersex.json new file mode 100644 index 0000000000..091329fe3f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_intersex.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_intersex" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_intersex" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_lesbian.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_lesbian.json new file mode 100644 index 0000000000..3d4dec1d10 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_lesbian.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_lesbian" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_lesbian" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_nonbinary.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_nonbinary.json new file mode 100644 index 0000000000..83c4964af9 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_nonbinary.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_nonbinary" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_nonbinary" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_plural.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_plural.json new file mode 100644 index 0000000000..89512b05e1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_plural.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_plural" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_plural" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_transgender.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_transgender.json new file mode 100644 index 0000000000..70dced6396 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/pride_colorizer_transgender.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:pride_colorizer_transgender" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:pride_colorizer_transgender" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/uuid_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/uuid_colorizer.json new file mode 100644 index 0000000000..fbcdbfebf4 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/misc/uuid_colorizer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:amethyst_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:uuid_colorizer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:uuid_colorizer" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_bookshelf.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_bookshelf.json new file mode 100644 index 0000000000..44a4110650 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_bookshelf.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:akashic_bookshelf" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:akashic_bookshelf" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_ligature.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_ligature.json new file mode 100644 index 0000000000..b2a6f52851 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/akashic_ligature.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:akashic_ligature" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:akashic_ligature" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/directrix/empty.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/directrix/empty.json new file mode 100644 index 0000000000..e00a4fdf00 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/directrix/empty.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:directrix/empty" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:directrix/empty" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_button.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_button.json new file mode 100644 index 0000000000..b6cd73817c --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_button" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_door.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_door.json new file mode 100644 index 0000000000..72dce77364 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_door" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_pressure_plate.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_pressure_plate.json new file mode 100644 index 0000000000..f207372eeb --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_trapdoor.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_trapdoor.json new file mode 100644 index 0000000000..be0fadb15b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/edified_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:edified_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:edified_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:edified_trapdoor" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/impetus/empty.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/impetus/empty.json new file mode 100644 index 0000000000..0b4aa3256c --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/redstone/impetus/empty.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "enlightenment": { + "conditions": { + "health_used": { + "min": 0.8 + }, + "media_generated": {}, + "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { + "max": 1.0, + "min": 2.2250738585072014E-308 + } + }, + "trigger": "hexcasting:overcast" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:impetus/empty" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "enlightenment" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:impetus/empty" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/abacus.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/abacus.json new file mode 100644 index 0000000000..b1cb841b3e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/abacus.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:abacus" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:abacus" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/artifact.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/artifact.json new file mode 100644 index 0000000000..221cf418c3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/artifact.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:artifact" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:artifact" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/cypher.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/cypher.json new file mode 100644 index 0000000000..5489ea0467 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/cypher.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:cypher" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:cypher" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus.json new file mode 100644 index 0000000000..4e19de9e5e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:focus" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:focus" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus_rotated.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus_rotated.json new file mode 100644 index 0000000000..f67d8502aa --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/focus_rotated.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:focus_rotated" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:focus_rotated" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/jeweler_hammer.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/jeweler_hammer.json new file mode 100644 index 0000000000..6a24d2b333 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/jeweler_hammer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:jeweler_hammer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:jeweler_hammer" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/lens.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/lens.json new file mode 100644 index 0000000000..3411cb2187 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/lens.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:lens" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:lens" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/spellbook.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/spellbook.json new file mode 100644 index 0000000000..ef5a492652 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/spellbook.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chorus": { + "conditions": { + "items": [ + { + "items": "minecraft:chorus_fruit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_focus": { + "conditions": { + "items": [ + { + "items": "hexcasting:focus" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:spellbook" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_focus", + "has_chorus" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:spellbook" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/acacia.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/acacia.json new file mode 100644 index 0000000000..c1e018b4ec --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/acacia.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/acacia" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/acacia" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/bamboo.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/bamboo.json new file mode 100644 index 0000000000..19094ad2fe --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/bamboo.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/bamboo" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/bamboo" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/birch.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/birch.json new file mode 100644 index 0000000000..ca6c180cfa --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/birch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/birch" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/birch" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/cherry.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/cherry.json new file mode 100644 index 0000000000..38107a9b52 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/cherry.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/cherry" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/cherry" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/crimson.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/crimson.json new file mode 100644 index 0000000000..da68b592c5 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/crimson.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/crimson" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/crimson" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/dark_oak.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/dark_oak.json new file mode 100644 index 0000000000..da9937e87d --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/dark_oak.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/dark_oak" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/dark_oak" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/edified.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/edified.json new file mode 100644 index 0000000000..99d19ed3bf --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/edified.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/edified" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/edified" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/jungle.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/jungle.json new file mode 100644 index 0000000000..80fe7c43f6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/jungle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/jungle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/jungle" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mangrove.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mangrove.json new file mode 100644 index 0000000000..0064814593 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mangrove.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/mangrove" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/mangrove" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mindsplice.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mindsplice.json new file mode 100644 index 0000000000..adb60836c1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/mindsplice.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/mindsplice" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/mindsplice" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/oak.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/oak.json new file mode 100644 index 0000000000..d11084b78d --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/oak.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/oak" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/oak" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/quenched.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/quenched.json new file mode 100644 index 0000000000..1ce63b78e3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/quenched.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/quenched" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/quenched" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/spruce.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/spruce.json new file mode 100644 index 0000000000..cbad54cf88 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/spruce.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/spruce" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/spruce" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/warped.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/warped.json new file mode 100644 index 0000000000..ffff5199c6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/staff/warped.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "hexcasting:charged_amethyst" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:staff/warped" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:staff/warped" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/thought_knot.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/thought_knot.json new file mode 100644 index 0000000000..f50c1673fa --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/thought_knot.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:thought_knot" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:thought_knot" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/trinket.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/trinket.json new file mode 100644 index 0000000000..17c0d69b1f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/recipes/tools/trinket.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "#hexcasting:staves" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hexcasting:trinket" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "hexcasting:trinket" + ] + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/root.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/root.json new file mode 100644 index 0000000000..1b2763aed8 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/root.json @@ -0,0 +1,34 @@ +{ + "criteria": { + "has_charged_amethyst": { + "conditions": { + "items": [ + { + "items": "#hexcasting:grants_root_advancement" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "background": "minecraft:textures/block/calcite.png", + "description": { + "translate": "advancement.hexcasting:root.desc" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:budding_amethyst" + }, + "title": { + "translate": "advancement.hexcasting:root" + } + }, + "requirements": [ + [ + "has_charged_amethyst" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancement/y_u_no_cast_angy.json b/Neoforge/src/generated/resources/data/hexcasting/advancement/y_u_no_cast_angy.json new file mode 100644 index 0000000000..00a5641e4d --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/advancement/y_u_no_cast_angy.json @@ -0,0 +1,26 @@ +{ + "parent": "hexcasting:root", + "criteria": { + "did_the_thing": { + "trigger": "hexcasting:fail_to_cast_great_spell" + } + }, + "display": { + "description": { + "translate": "advancement.hexcasting:y_u_no_cast_angy.desc" + }, + "icon": { + "count": 1, + "id": "minecraft:blaze_powder" + }, + "title": { + "translate": "advancement.hexcasting:y_u_no_cast_angy" + } + }, + "requirements": [ + [ + "did_the_thing" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json deleted file mode 100644 index f82c8fda2c..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/akashic_record" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/akashic_record" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json deleted file mode 100644 index 5ee9d46ffb..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/budding_amethyst" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/budding_amethyst" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_boolean.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_boolean.json deleted file mode 100644 index bc173bd32b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_boolean.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/directrix_boolean" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/directrix_boolean" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json deleted file mode 100644 index a6f48c1d34..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/directrix_redstone" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/directrix_redstone" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json deleted file mode 100644 index 086d039702..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/impetus_look" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/impetus_look" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json deleted file mode 100644 index 04b20e6fc7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/impetus_rightclick" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/impetus_rightclick" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json deleted file mode 100644 index 135a08cc3f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/impetus_storedplayer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/impetus_storedplayer" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/quench_allay.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/quench_allay.json deleted file mode 100644 index 15691cf319..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/brainsweep/brainsweep/quench_allay.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:brainsweep/quench_allay" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:brainsweep/quench_allay" - ] - }, - "sends_telemetry_event": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_packing.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_packing.json deleted file mode 100644 index 8e0018f519..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_packing.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:amethyst_dust_packing" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_dust_packing" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_unpacking.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_unpacking.json deleted file mode 100644 index c512415070..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_unpacking.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:amethyst_dust_unpacking" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_dust_unpacking" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_tiles.json deleted file mode 100644 index 597cd897de..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_tiles.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:amethyst_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_tiles" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/ancient_scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/ancient_scroll_paper.json deleted file mode 100644 index b6ab3fb1d4..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/ancient_scroll_paper.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:scroll_paper" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:ancient_scroll_paper" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:ancient_scroll_paper" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence.json deleted file mode 100644 index 8571f6d3d4..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_fence" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_fence" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence_gate.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence_gate.json deleted file mode 100644 index aa49266e09..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_fence_gate.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_fence_gate" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_fence_gate" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_panel.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_panel.json deleted file mode 100644 index 6f6e2c2337..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_panel.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_panel" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_panel" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_planks.json deleted file mode 100644 index 804061465a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_planks.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_logs" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_planks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_planks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_slab.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_slab.json deleted file mode 100644 index 6643da70b9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_slab" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_stairs.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_stairs.json deleted file mode 100644 index 7a5b84d82a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_stairs.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_stairs" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_stairs" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_tile.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_tile.json deleted file mode 100644 index 2ec6b30c1f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_tile.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_tile" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_tile" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_wood.json deleted file mode 100644 index b71516d7ad..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/edified_wood.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:edified_log" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_wood" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_wood" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/scroll_paper.json deleted file mode 100644 index fb582f87d5..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/scroll_paper.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:amethyst_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll_paper" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll_paper" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block.json deleted file mode 100644 index 163e9a2934..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_block" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_block" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block_from_slates.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block_from_slates.json deleted file mode 100644 index 12add8b1a5..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_block_from_slates.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_block_from_slates" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_block_from_slates" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json deleted file mode 100644 index 2d335c5e8a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:amethyst_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/amethyst_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/amethyst_tiles" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stripped_edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stripped_edified_wood.json deleted file mode 100644 index d65dddf738..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stripped_edified_wood.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:stripped_edified_log" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stripped_edified_wood" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stripped_edified_wood" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ageing_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ageing_scroll_paper_lantern.json deleted file mode 100644 index 5108125752..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ageing_scroll_paper_lantern.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:scroll_paper_lantern" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:ageing_scroll_paper_lantern" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:ageing_scroll_paper_lantern" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/amethyst_sconce.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/amethyst_sconce.json deleted file mode 100644 index 171b4cc129..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/amethyst_sconce.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:amethyst_sconce" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_sconce" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ancient_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ancient_scroll_paper_lantern.json deleted file mode 100644 index 52289cc5d7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/ancient_scroll_paper_lantern.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:ancient_scroll_paper" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:ancient_scroll_paper_lantern" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:ancient_scroll_paper_lantern" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll.json deleted file mode 100644 index 895f37a270..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_medium.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_medium.json deleted file mode 100644 index 63a98dfc8d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_medium.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll_medium" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll_medium" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_paper_lantern.json deleted file mode 100644 index 41ac798ebc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_paper_lantern.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:scroll_paper" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll_paper_lantern" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll_paper_lantern" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_small.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_small.json deleted file mode 100644 index 5954c5786a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/scroll_small.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:scroll_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:scroll_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/slate.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/slate.json deleted file mode 100644 index 3e3481c8c3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/decorations/slate.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/food/sub_sandwich.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/food/sub_sandwich.json deleted file mode 100644 index 1acebe3d17..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/food/sub_sandwich.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:amethyst_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:sub_sandwich" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:sub_sandwich" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/charged.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/charged.json deleted file mode 100644 index b8f39b64f4..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/charged.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:decompose_quenched_shard/charged" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:decompose_quenched_shard/charged" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/dust.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/dust.json deleted file mode 100644 index c4bd1a2c6b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/dust.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:decompose_quenched_shard/dust" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:decompose_quenched_shard/dust" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/shard.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/shard.json deleted file mode 100644 index b82d6e8ddc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/shard.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:decompose_quenched_shard/shard" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:decompose_quenched_shard/shard" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/default_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/default_colorizer.json deleted file mode 100644 index 4b94e3d969..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/default_colorizer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:default_colorizer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:default_colorizer" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_black.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_black.json deleted file mode 100644 index 68357e8330..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_black.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_black" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_black" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_blue.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_blue.json deleted file mode 100644 index b0cb050ec7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_blue.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_blue" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_blue" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_brown.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_brown.json deleted file mode 100644 index b1d8d0917c..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_brown.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_brown" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_brown" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_cyan.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_cyan.json deleted file mode 100644 index aa88e65b3a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_cyan.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_cyan" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_cyan" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_gray.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_gray.json deleted file mode 100644 index e77b2b4530..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_gray.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_gray" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_gray" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_green.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_green.json deleted file mode 100644 index aaabb10574..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_green.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_green" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_green" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_blue.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_blue.json deleted file mode 100644 index 4cc0d01d81..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_blue.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_light_blue" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_light_blue" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_gray.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_gray.json deleted file mode 100644 index 7b475a18fe..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_light_gray.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_light_gray" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_light_gray" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_lime.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_lime.json deleted file mode 100644 index 08e2cf3998..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_lime.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_lime" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_lime" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_magenta.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_magenta.json deleted file mode 100644 index ef137af43d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_magenta.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_magenta" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_magenta" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_orange.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_orange.json deleted file mode 100644 index ba8b485f60..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_orange.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_orange" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_orange" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_pink.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_pink.json deleted file mode 100644 index 27e62c96d5..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_pink.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_pink" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_pink" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_purple.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_purple.json deleted file mode 100644 index 730d25023a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_purple.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_purple" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_purple" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_red.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_red.json deleted file mode 100644 index 532eb81eb6..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_red.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_red" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_red" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_white.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_white.json deleted file mode 100644 index 8decf1fb68..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_white.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_white" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_white" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_yellow.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_yellow.json deleted file mode 100644 index 9d4ee92484..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/dye_colorizer_yellow.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:dye_colorizer_yellow" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:dye_colorizer_yellow" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_agender.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_agender.json deleted file mode 100644 index 0dee46c659..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_agender.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_agender" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_agender" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aroace.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aroace.json deleted file mode 100644 index e2a9be996e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aroace.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_aroace" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_aroace" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aromantic.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aromantic.json deleted file mode 100644 index 8bea973430..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_aromantic.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_aromantic" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_aromantic" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_asexual.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_asexual.json deleted file mode 100644 index 935c3b3a13..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_asexual.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_asexual" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_asexual" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_bisexual.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_bisexual.json deleted file mode 100644 index 9766430fc9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_bisexual.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_bisexual" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_bisexual" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demiboy.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demiboy.json deleted file mode 100644 index d1c0e598e0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demiboy.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_demiboy" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_demiboy" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demigirl.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demigirl.json deleted file mode 100644 index b83767cdc9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_demigirl.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_demigirl" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_demigirl" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_gay.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_gay.json deleted file mode 100644 index a4d03097a3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_gay.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_gay" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_gay" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderfluid.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderfluid.json deleted file mode 100644 index 3c83445f58..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderfluid.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_genderfluid" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_genderfluid" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderqueer.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderqueer.json deleted file mode 100644 index d0a5c5ee5b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_genderqueer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_genderqueer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_genderqueer" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_intersex.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_intersex.json deleted file mode 100644 index 9b1dfd07fa..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_intersex.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_intersex" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_intersex" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_lesbian.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_lesbian.json deleted file mode 100644 index 05a75a9ef3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_lesbian.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_lesbian" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_lesbian" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_nonbinary.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_nonbinary.json deleted file mode 100644 index d8faac779d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_nonbinary.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_nonbinary" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_nonbinary" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_pansexual.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_pansexual.json deleted file mode 100644 index 2938abc3e3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_pansexual.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_pansexual" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_pansexual" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_plural.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_plural.json deleted file mode 100644 index 096a3b8773..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_plural.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_plural" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_plural" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_transgender.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_transgender.json deleted file mode 100644 index ef4569ca9a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/pride_colorizer_transgender.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:pride_colorizer_transgender" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:pride_colorizer_transgender" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/uuid_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/uuid_colorizer.json deleted file mode 100644 index c2e9457bb0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/uuid_colorizer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:amethyst_dust" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:uuid_colorizer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:uuid_colorizer" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_bookshelf.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_bookshelf.json deleted file mode 100644 index d000cbc46a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_bookshelf.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:akashic_bookshelf" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:akashic_bookshelf" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_connector.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_connector.json deleted file mode 100644 index 595f53ddba..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/akashic_connector.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:akashic_connector" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:akashic_connector" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/directrix/empty.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/directrix/empty.json deleted file mode 100644 index 8632bebbcc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/directrix/empty.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:directrix/empty" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:directrix/empty" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_button.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_button.json deleted file mode 100644 index 191916c5b2..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_button.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_button" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_button" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_door.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_door.json deleted file mode 100644 index ea21e4a47a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_door.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_door" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_door" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_pressure_plate.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_pressure_plate.json deleted file mode 100644 index a9c62b86c9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_pressure_plate.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_pressure_plate" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_pressure_plate" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_trapdoor.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_trapdoor.json deleted file mode 100644 index cc15ca3960..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/edified_trapdoor.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:edified_planks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:edified_trapdoor" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:edified_trapdoor" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/impetus/empty.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/impetus/empty.json deleted file mode 100644 index 0343f6bd69..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/redstone/impetus/empty.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "enlightenment": { - "conditions": { - "health_used": { - "min": 0.8 - }, - "mojang_i_am_begging_and_crying_please_add_an_entity_health_criterion": { - "max": 1.0, - "min": 2.2250738585072014E-308 - } - }, - "trigger": "hexcasting:overcast" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:impetus/empty" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "enlightenment", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:impetus/empty" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/abacus.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/abacus.json deleted file mode 100644 index 7349713cba..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/abacus.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:abacus" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:abacus" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/artifact.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/artifact.json deleted file mode 100644 index 7cc848539e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/artifact.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:artifact" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:artifact" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/cypher.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/cypher.json deleted file mode 100644 index 46fe0a95a4..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/cypher.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:cypher" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:cypher" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus.json deleted file mode 100644 index 4494bd1974..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:focus" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:focus" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus_rotated.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus_rotated.json deleted file mode 100644 index c1d45f0e21..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/focus_rotated.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:focus_rotated" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:focus_rotated" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/jeweler_hammer.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/jeweler_hammer.json deleted file mode 100644 index 0c38f6dcbd..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/jeweler_hammer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:amethyst_shard" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:jeweler_hammer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:jeweler_hammer" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/lens.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/lens.json deleted file mode 100644 index c6820e5be0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/lens.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:lens" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:lens" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/spellbook.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/spellbook.json deleted file mode 100644 index 9ef640f920..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/spellbook.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_chorus": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:chorus_fruit" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_focus": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:focus" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:spellbook" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_focus", - "has_chorus", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:spellbook" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/acacia.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/acacia.json deleted file mode 100644 index 3517416d4d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/acacia.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/acacia" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/acacia" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/bamboo.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/bamboo.json deleted file mode 100644 index a6fa449db3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/bamboo.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/bamboo" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/bamboo" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/birch.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/birch.json deleted file mode 100644 index ca645b3d2c..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/birch.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/birch" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/birch" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/cherry.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/cherry.json deleted file mode 100644 index a28e8cbc57..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/cherry.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/cherry" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/cherry" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/crimson.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/crimson.json deleted file mode 100644 index 273e6c63c9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/crimson.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/crimson" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/crimson" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/dark_oak.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/dark_oak.json deleted file mode 100644 index 3f85a91af5..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/dark_oak.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/dark_oak" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/dark_oak" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/edified.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/edified.json deleted file mode 100644 index f311992c36..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/edified.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/edified" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/edified" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/jungle.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/jungle.json deleted file mode 100644 index e60ee05a9a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/jungle.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/jungle" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/jungle" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mangrove.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mangrove.json deleted file mode 100644 index 395c776a6e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mangrove.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/mangrove" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/mangrove" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mindsplice.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mindsplice.json deleted file mode 100644 index 70be25e6c0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/mindsplice.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/mindsplice" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/mindsplice" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/oak.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/oak.json deleted file mode 100644 index 9a2a7e466c..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/oak.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/oak" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/oak" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/quenched.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/quenched.json deleted file mode 100644 index efa9566aeb..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/quenched.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/quenched" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/quenched" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/spruce.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/spruce.json deleted file mode 100644 index d9a25ac43a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/spruce.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/spruce" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/spruce" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/warped.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/warped.json deleted file mode 100644 index a4cda1f21b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/staff/warped.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:charged_amethyst" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:staff/warped" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:staff/warped" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/thought_knot.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/thought_knot.json deleted file mode 100644 index 86e0897a2d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/thought_knot.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:thought_knot" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:thought_knot" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/trinket.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/trinket.json deleted file mode 100644 index 09a44adcc8..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/tools/trinket.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:staves" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:trinket" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:trinket" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/damage_type/overcast.json b/Neoforge/src/generated/resources/data/hexcasting/damage_type/overcast.json new file mode 100644 index 0000000000..012582c4b2 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/damage_type/overcast.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "hexcasting.overcast", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/amethyst_cluster.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/amethyst_cluster.json index c01f47fdb7..70af09ea61 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/amethyst_cluster.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/amethyst_cluster.json @@ -2,7 +2,7 @@ "type": "hexcasting:amethyst_cluster", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:blocks/amethyst_cluster" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/abandoned_mineshaft.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/abandoned_mineshaft.json new file mode 100644 index 0000000000..2cde006e3e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/abandoned_mineshaft.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/abandoned_mineshaft" + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/ancient_city.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/ancient_city.json new file mode 100644 index 0000000000..79ede35c14 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/ancient_city.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/ancient_city" + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/desert_pyramid.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/desert_pyramid.json new file mode 100644 index 0000000000..f51d2dabf0 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/desert_pyramid.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/desert_pyramid" + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/jungle_temple.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/jungle_temple.json new file mode 100644 index 0000000000..78250990ed --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/jungle_temple.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/jungle_temple" + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/nether_bridge.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/nether_bridge.json new file mode 100644 index 0000000000..b9e7041dbc --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/nether_bridge.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/nether_bridge" + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/simple_dungeon.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/simple_dungeon.json new file mode 100644 index 0000000000..5cb215e05e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/simple_dungeon.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/simple_dungeon" + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/stronghold_corridor.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/stronghold_corridor.json new file mode 100644 index 0000000000..6dfe6d03d3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/stronghold_corridor.json @@ -0,0 +1,10 @@ +{ + "type": "hexcasting:inject_cyphers", + "chance": 0.4, + "conditions": [ + { + "condition": "neoforge:loot_table_id", + "loot_table_id": "minecraft:chests/stronghold_corridor" + } + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/abandoned_mineshaft.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/abandoned_mineshaft.json index 7f0b321fe8..c636a2f73a 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/abandoned_mineshaft.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/abandoned_mineshaft.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/abandoned_mineshaft" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/pillager_outpost.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/pillager_outpost.json index a530f7c502..215f625f7d 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/pillager_outpost.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/pillager_outpost.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/pillager_outpost" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/simple_dungeon.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/simple_dungeon.json index 43b7514ffc..ad1b0666d8 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/simple_dungeon.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/simple_dungeon.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/simple_dungeon" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/stronghold_library.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/stronghold_library.json index 30166b92e7..f55d8f4cc0 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/stronghold_library.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/stronghold_library.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/stronghold_library" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_desert_house.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_desert_house.json index 4e522bf609..3aaf4b8498 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_desert_house.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_desert_house.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/village/village_desert_house" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_plains_house.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_plains_house.json index f6c234450b..93d27d6661 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_plains_house.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_plains_house.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/village/village_plains_house" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_savanna_house.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_savanna_house.json index db64af9fe3..bb224944b7 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_savanna_house.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_savanna_house.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/village/village_savanna_house" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_snowy_house.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_snowy_house.json index 331b30dd65..ec4f567a6e 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_snowy_house.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_snowy_house.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/village/village_snowy_house" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_taiga_house.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_taiga_house.json index 5111cc7386..d2132c79bf 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_taiga_house.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_taiga_house.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/village/village_taiga_house" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/woodland_mansion.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/woodland_mansion.json index 60d574a042..be9d6b6d12 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/woodland_mansion.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/woodland_mansion.json @@ -3,7 +3,7 @@ "chance": 0.4, "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/woodland_mansion" } ] diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/abandoned_mineshaft.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/abandoned_mineshaft.json index bfa7024eff..27d1e1ba46 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/abandoned_mineshaft.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/abandoned_mineshaft.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/abandoned_mineshaft" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/ancient_city.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/ancient_city.json index d95dc336d7..d4d94d6652 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/ancient_city.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/ancient_city.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/ancient_city" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_other.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_other.json index bbe250d8e8..17372d9896 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_other.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_other.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/bastion_other" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_treasure.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_treasure.json index 2f53299e74..ff8851c233 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_treasure.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_treasure.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/bastion_treasure" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/desert_pyramid.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/desert_pyramid.json index 27e5832d30..b91f49fb8a 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/desert_pyramid.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/desert_pyramid.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/desert_pyramid" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/end_city_treasure.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/end_city_treasure.json index 00fce8eef3..f5371dd519 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/end_city_treasure.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/end_city_treasure.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/end_city_treasure" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/jungle_temple.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/jungle_temple.json index bdad563e63..c1bf948ade 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/jungle_temple.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/jungle_temple.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/jungle_temple" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/nether_bridge.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/nether_bridge.json index 2a95ff887d..68725eddce 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/nether_bridge.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/nether_bridge.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/nether_bridge" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/pillager_outpost.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/pillager_outpost.json index 76114fb3ae..b06f4d95a6 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/pillager_outpost.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/pillager_outpost.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/pillager_outpost" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/shipwreck_map.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/shipwreck_map.json index 23c9b24798..3c7b528cda 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/shipwreck_map.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/shipwreck_map.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/shipwreck_map" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/simple_dungeon.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/simple_dungeon.json index 1166f9aefd..141eebbe09 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/simple_dungeon.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/simple_dungeon.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/simple_dungeon" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/stronghold_library.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/stronghold_library.json index d3766ee5ac..f08c93cb45 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/stronghold_library.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/stronghold_library.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/stronghold_library" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/village/village_cartographer.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/village/village_cartographer.json index 4da3988ea7..a59db105dd 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/village/village_cartographer.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/village/village_cartographer.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/village/village_cartographer" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/woodland_mansion.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/woodland_mansion.json index bf19b951bc..cc97ecc7c2 100644 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/woodland_mansion.json +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/woodland_mansion.json @@ -2,7 +2,7 @@ "type": "hexcasting:inject_scrolls", "conditions": [ { - "condition": "forge:loot_table_id", + "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/woodland_mansion" } ], diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_bookshelf.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_bookshelf.json new file mode 100644 index 0000000000..78a36f62ec --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_bookshelf.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:akashic_bookshelf" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/akashic_bookshelf" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_ligature.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_ligature.json new file mode 100644 index 0000000000..02be275bc1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_ligature.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:akashic_ligature" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/akashic_ligature" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_record.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_record.json new file mode 100644 index 0000000000..5c93f81681 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/akashic_record.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:akashic_record" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/akashic_record" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks.json new file mode 100644 index 0000000000..4c60a77364 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/amethyst_bricks" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks_small.json new file mode 100644 index 0000000000..3d39f82987 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_bricks_small.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_bricks_small" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/amethyst_bricks_small" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_dust_block.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_dust_block.json new file mode 100644 index 0000000000..7c054a0aab --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_dust_block.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_dust_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/amethyst_dust_block" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_edified_leaves.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_edified_leaves.json new file mode 100644 index 0000000000..911c281497 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_edified_leaves.json @@ -0,0 +1,41 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "ability": "shears_dig", + "condition": "neoforge:can_item_perform_ability" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_edified_leaves" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/amethyst_edified_leaves" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_pillar.json new file mode 100644 index 0000000000..2eeb112461 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_pillar.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_pillar" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/amethyst_pillar" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_sconce.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_sconce.json new file mode 100644 index 0000000000..e2c38fe09e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_sconce.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_sconce" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/amethyst_sconce" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_tiles.json new file mode 100644 index 0000000000..13010296ca --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/amethyst_tiles.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_tiles" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/amethyst_tiles" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper.json new file mode 100644 index 0000000000..2bb2887920 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:ancient_scroll_paper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/ancient_scroll_paper" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..f2ea006a03 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/ancient_scroll_paper_lantern.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:ancient_scroll_paper_lantern" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/ancient_scroll_paper_lantern" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/aventurine_edified_leaves.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/aventurine_edified_leaves.json new file mode 100644 index 0000000000..d2bfc7c956 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/aventurine_edified_leaves.json @@ -0,0 +1,41 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "ability": "shears_dig", + "condition": "neoforge:can_item_perform_ability" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:aventurine_edified_leaves" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/aventurine_edified_leaves" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/citrine_edified_leaves.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/citrine_edified_leaves.json new file mode 100644 index 0000000000..88f319d753 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/citrine_edified_leaves.json @@ -0,0 +1,41 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "ability": "shears_dig", + "condition": "neoforge:can_item_perform_ability" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:citrine_edified_leaves" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/citrine_edified_leaves" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/boolean.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/boolean.json new file mode 100644 index 0000000000..7510be752b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/boolean.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:directrix/boolean" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/directrix/boolean" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/empty.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/empty.json new file mode 100644 index 0000000000..056282de33 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/empty.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:directrix/empty" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/directrix/empty" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/redstone.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/redstone.json new file mode 100644 index 0000000000..b130eb19de --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/directrix/redstone.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:directrix/redstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/directrix/redstone" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_button.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_button.json new file mode 100644 index 0000000000..a24172124e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_button.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_button" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_door.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_door.json new file mode 100644 index 0000000000..942a65484f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_door.json @@ -0,0 +1,24 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "hexcasting:edified_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_door" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence.json new file mode 100644 index 0000000000..f45eea22be --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_fence" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence_gate.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence_gate.json new file mode 100644 index 0000000000..01cbf2a5e1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_fence_gate.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_fence_gate" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log.json new file mode 100644 index 0000000000..396a3fcb45 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_log" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_amethyst.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_amethyst.json new file mode 100644 index 0000000000..d6c0759bfa --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_amethyst.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_log_amethyst" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_log_amethyst" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_aventurine.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_aventurine.json new file mode 100644 index 0000000000..31892f2177 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_aventurine.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_log_aventurine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_log_aventurine" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_citrine.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_citrine.json new file mode 100644 index 0000000000..21ac1cd0fb --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_citrine.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_log_citrine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_log_citrine" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_purple.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_purple.json new file mode 100644 index 0000000000..f9c2c33343 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_log_purple.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_log_purple" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_log_purple" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_panel.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_panel.json new file mode 100644 index 0000000000..83cb1f1b59 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_panel.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_panel" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_panel" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_planks.json new file mode 100644 index 0000000000..5f1b5f7280 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_planks.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_planks" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_pressure_plate.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_pressure_plate.json new file mode 100644 index 0000000000..d733b30a49 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_pressure_plate.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_pressure_plate" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_slab.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_slab.json new file mode 100644 index 0000000000..0bdc00f6b3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_slab.json @@ -0,0 +1,34 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_slab" + } + ], + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "hexcasting:edified_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_slab" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_stairs.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_stairs.json new file mode 100644 index 0000000000..7cb6566434 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_stairs.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_stairs" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_tile.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_tile.json new file mode 100644 index 0000000000..dbc6bd1426 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_tile.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_tile" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_tile" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_trapdoor.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_trapdoor.json new file mode 100644 index 0000000000..f76ea0437f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_trapdoor.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_trapdoor" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_wood.json new file mode 100644 index 0000000000..2e1faee977 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/edified_wood.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:edified_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/edified_wood" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/empty.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/empty.json new file mode 100644 index 0000000000..67fe1185ac --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/empty.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:impetus/empty" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/impetus/empty" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/look.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/look.json new file mode 100644 index 0000000000..87f6f0ef09 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/look.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:impetus/look" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/impetus/look" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/redstone.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/redstone.json new file mode 100644 index 0000000000..1635ee4207 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/redstone.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:impetus/redstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/impetus/redstone" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/rightclick.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/rightclick.json new file mode 100644 index 0000000000..37f1e9df10 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/impetus/rightclick.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:impetus/rightclick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/impetus/rightclick" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay.json new file mode 100644 index 0000000000..09fe8b6fd3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay.json @@ -0,0 +1,69 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "hexcasting:quenched_allay" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "chances": [ + 0.25, + 0.5, + 0.75, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "hexcasting:quenched_allay_shard" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/quenched_allay" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks.json new file mode 100644 index 0000000000..eb1a87b224 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:quenched_allay_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/quenched_allay_bricks" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks_small.json new file mode 100644 index 0000000000..879089b6d4 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_bricks_small.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:quenched_allay_bricks_small" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/quenched_allay_bricks_small" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_tiles.json new file mode 100644 index 0000000000..0c81157382 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/quenched_allay_tiles.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:quenched_allay_tiles" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/quenched_allay_tiles" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper.json new file mode 100644 index 0000000000..8c3d628108 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:scroll_paper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/scroll_paper" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper_lantern.json new file mode 100644 index 0000000000..ccea471c66 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/scroll_paper_lantern.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:scroll_paper_lantern" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/scroll_paper_lantern" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate.json new file mode 100644 index 0000000000..eeb8f5c955 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate.json @@ -0,0 +1,24 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "hexcasting:pattern" + ], + "source": "block_entity" + } + ], + "name": "hexcasting:slate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks.json new file mode 100644 index 0000000000..f6d9ea8d1a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:slate_amethyst_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate_amethyst_bricks" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks_small.json new file mode 100644 index 0000000000..6f7cfb5825 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_bricks_small.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:slate_amethyst_bricks_small" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate_amethyst_bricks_small" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_pillar.json new file mode 100644 index 0000000000..96dd26f7fb --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_pillar.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:slate_amethyst_pillar" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate_amethyst_pillar" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_tiles.json new file mode 100644 index 0000000000..e91ebad3ce --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_amethyst_tiles.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:slate_amethyst_tiles" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate_amethyst_tiles" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_block.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_block.json new file mode 100644 index 0000000000..d136fe7460 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_block.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:slate_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate_block" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks.json new file mode 100644 index 0000000000..d42593f8d5 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:slate_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate_bricks" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks_small.json new file mode 100644 index 0000000000..f77a608dec --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_bricks_small.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:slate_bricks_small" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate_bricks_small" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_pillar.json new file mode 100644 index 0000000000..060b60ebf9 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_pillar.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:slate_pillar" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate_pillar" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_tiles.json new file mode 100644 index 0000000000..81cda1a13a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/slate_tiles.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:slate_tiles" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/slate_tiles" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_log.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_log.json new file mode 100644 index 0000000000..7dab40f3a1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_log.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:stripped_edified_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/stripped_edified_log" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_wood.json new file mode 100644 index 0000000000..60b009f032 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/blocks/stripped_edified_wood.json @@ -0,0 +1,15 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:stripped_edified_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:blocks/stripped_edified_wood" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_table/inject/amethyst_cluster.json b/Neoforge/src/generated/resources/data/hexcasting/loot_table/inject/amethyst_cluster.json new file mode 100644 index 0000000000..e87bc89af2 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/loot_table/inject/amethyst_cluster.json @@ -0,0 +1,211 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_dust" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:amethyst_dust" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + }, + { + "chances": [ + 0.25, + 0.35, + 0.5, + 0.75, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:charged_amethyst" + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + }, + { + "chance": 0.125, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hexcasting:charged_amethyst" + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "hexcasting:inject/amethyst_cluster" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_connector.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_connector.json deleted file mode 100644 index 359c43e79e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_connector.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:akashic_connector" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/akashic_connector" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_edified_leaves.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_edified_leaves.json deleted file mode 100644 index b21dcea7c8..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_edified_leaves.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:any_of", - "terms": [ - { - "action": "shears_dig", - "condition": "forge:can_tool_perform_action" - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ] - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:amethyst_edified_leaves" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/amethyst_edified_leaves" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/aventurine_edified_leaves.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/aventurine_edified_leaves.json deleted file mode 100644 index eed1136034..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/aventurine_edified_leaves.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:any_of", - "terms": [ - { - "action": "shears_dig", - "condition": "forge:can_tool_perform_action" - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ] - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:aventurine_edified_leaves" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/aventurine_edified_leaves" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/citrine_edified_leaves.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/citrine_edified_leaves.json deleted file mode 100644 index 574192357c..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/citrine_edified_leaves.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:any_of", - "terms": [ - { - "action": "shears_dig", - "condition": "forge:can_tool_perform_action" - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ] - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:citrine_edified_leaves" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/citrine_edified_leaves" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay.json deleted file mode 100644 index 86b06b41d9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "conditions": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - ], - "name": "hexcasting:quenched_allay" - }, - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "count": { - "type": "minecraft:uniform", - "max": 4.0, - "min": 2.0 - }, - "function": "minecraft:set_count" - }, - { - "add": true, - "conditions": [ - { - "chances": [ - 0.25, - 0.5, - 0.75, - 1.0 - ], - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune" - } - ], - "count": 1.0, - "function": "minecraft:set_count" - } - ], - "name": "hexcasting:quenched_allay_shard" - } - ] - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/quenched_allay" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate.json deleted file mode 100644 index 6a7e00b7d0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "function": "minecraft:copy_nbt", - "ops": [ - { - "op": "replace", - "source": "pattern", - "target": "BlockEntityTag.pattern" - } - ], - "source": "block_entity" - } - ], - "name": "hexcasting:slate" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:blocks/slate" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/inject/amethyst_cluster.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/inject/amethyst_cluster.json deleted file mode 100644 index 78e1601cb1..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/inject/amethyst_cluster.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "minecraft:cluster_max_harvestables" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:amethyst_dust" - } - ], - "functions": [ - { - "add": false, - "count": { - "type": "minecraft:uniform", - "max": 4.0, - "min": 1.0 - }, - "function": "minecraft:set_count" - }, - { - "enchantment": "minecraft:fortune", - "formula": "minecraft:ore_drops", - "function": "minecraft:apply_bonus" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "minecraft:cluster_max_harvestables" - } - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:amethyst_dust" - } - ], - "functions": [ - { - "add": false, - "count": { - "type": "minecraft:uniform", - "max": 2.0, - "min": 0.0 - }, - "function": "minecraft:set_count" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - }, - { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "minecraft:cluster_max_harvestables" - } - }, - { - "chances": [ - 0.25, - 0.35, - 0.5, - 0.75, - 1.0 - ], - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:charged_amethyst" - } - ], - "functions": [ - { - "add": false, - "count": 1.0, - "function": "minecraft:set_count" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch" - } - ] - } - } - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:match_tool", - "predicate": { - "tag": "minecraft:cluster_max_harvestables" - } - } - }, - { - "chance": 0.125, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "hexcasting:charged_amethyst" - } - ], - "functions": [ - { - "add": false, - "count": 1.0, - "function": "minecraft:set_count" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "hexcasting:inject/amethyst_cluster" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/abacus.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/abacus.json new file mode 100644 index 0000000000..76d393b033 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/abacus.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "minecraft:amethyst_shard" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "WAW", + "SAS", + "WAW" + ], + "result": { + "count": 1, + "id": "hexcasting:abacus" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/ageing_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/ageing_scroll_paper_lantern.json new file mode 100644 index 0000000000..54de4e69be --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/ageing_scroll_paper_lantern.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "c:dyes/brown" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + }, + { + "item": "hexcasting:scroll_paper_lantern" + } + ], + "result": { + "count": 8, + "id": "hexcasting:ancient_scroll_paper_lantern" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/akashic_bookshelf.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/akashic_bookshelf.json new file mode 100644 index 0000000000..055ac48308 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/akashic_bookshelf.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "C": { + "item": "minecraft:book" + }, + "L": { + "tag": "hexcasting:edified_logs" + }, + "P": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "LPL", + "CCC", + "LPL" + ], + "result": { + "count": 1, + "id": "hexcasting:akashic_bookshelf" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/akashic_ligature.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/akashic_ligature.json new file mode 100644 index 0000000000..bbcc3f83e7 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/akashic_ligature.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "1": { + "item": "hexcasting:amethyst_dust" + }, + "2": { + "item": "minecraft:amethyst_shard" + }, + "3": { + "item": "hexcasting:charged_amethyst" + }, + "L": { + "tag": "hexcasting:edified_logs" + }, + "P": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "LPL", + "123", + "LPL" + ], + "result": { + "count": 4, + "id": "hexcasting:akashic_ligature" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_dust_packing.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_dust_packing.json new file mode 100644 index 0000000000..1da337229f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_dust_packing.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "X": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + "XX", + "XX" + ], + "result": { + "count": 1, + "id": "hexcasting:amethyst_dust_block" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_dust_unpacking.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_dust_unpacking.json new file mode 100644 index 0000000000..db42cb3711 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_dust_unpacking.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "hexcasting:amethyst_dust_block" + } + ], + "result": { + "count": 4, + "id": "hexcasting:amethyst_dust" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_sconce.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_sconce.json new file mode 100644 index 0000000000..1ece2856f0 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_sconce.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "tag": "c:ingots/copper" + }, + "T": { + "item": "hexcasting:charged_amethyst" + } + }, + "pattern": [ + "T", + "B" + ], + "result": { + "count": 4, + "id": "hexcasting:amethyst_sconce" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_tiles.json new file mode 100644 index 0000000000..300139c437 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/amethyst_tiles.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:amethyst_block" + }, + "D": { + "item": "minecraft:amethyst_block" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:amethyst_tiles" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper.json new file mode 100644 index 0000000000..33db9b82c9 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "tag": "c:dyes/brown" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + }, + { + "item": "hexcasting:scroll_paper" + } + ], + "result": { + "count": 8, + "id": "hexcasting:ancient_scroll_paper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper_lantern.json new file mode 100644 index 0000000000..d99d9ba91b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/ancient_scroll_paper_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "minecraft:torch" + }, + "T": { + "item": "hexcasting:ancient_scroll_paper" + } + }, + "pattern": [ + "T", + "B" + ], + "result": { + "count": 1, + "id": "hexcasting:ancient_scroll_paper_lantern" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/artifact.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/artifact.json new file mode 100644 index 0000000000..a03e30a2a8 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/artifact.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "D": { + "tag": "minecraft:creeper_drop_music_discs" + }, + "F": { + "tag": "c:ingots/gold" + } + }, + "pattern": [ + " F ", + "FAF", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:artifact" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/akashic_record.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/akashic_record.json new file mode 100644 index 0000000000..750ad2dcfe --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/akashic_record.json @@ -0,0 +1,16 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:akashic_ligature" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 5, + "profession": "minecraft:librarian" + }, + "result": { + "Name": "hexcasting:akashic_record" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/budding_amethyst.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/budding_amethyst.json new file mode 100644 index 0000000000..0532b2e5ed --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/budding_amethyst.json @@ -0,0 +1,15 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "minecraft:amethyst_block" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 3 + }, + "result": { + "Name": "minecraft:budding_amethyst" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_boolean.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_boolean.json new file mode 100644 index 0000000000..5e97ada05f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_boolean.json @@ -0,0 +1,21 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:directrix/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 1, + "profession": "minecraft:shepherd" + }, + "result": { + "Name": "hexcasting:directrix/boolean", + "Properties": { + "energized": "false", + "facing": "north", + "state": "neither" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_redstone.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_redstone.json new file mode 100644 index 0000000000..afb314d043 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/directrix_redstone.json @@ -0,0 +1,21 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:directrix/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 1, + "profession": "minecraft:mason" + }, + "result": { + "Name": "hexcasting:directrix/redstone", + "Properties": { + "energized": "false", + "facing": "north", + "powered": "false" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_look.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_look.json new file mode 100644 index 0000000000..7d77364f78 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_look.json @@ -0,0 +1,20 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:impetus/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 2, + "profession": "minecraft:fletcher" + }, + "result": { + "Name": "hexcasting:impetus/look", + "Properties": { + "energized": "false", + "facing": "north" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_rightclick.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_rightclick.json new file mode 100644 index 0000000000..02fbae2538 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_rightclick.json @@ -0,0 +1,20 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:impetus/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 2, + "profession": "minecraft:toolsmith" + }, + "result": { + "Name": "hexcasting:impetus/rightclick", + "Properties": { + "energized": "false", + "facing": "north" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_storedplayer.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_storedplayer.json new file mode 100644 index 0000000000..f79dca1d11 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/impetus_storedplayer.json @@ -0,0 +1,21 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "hexcasting:impetus/empty" + }, + "cost": 1000000, + "entityIn": { + "type": "hexcasting:villager", + "minLevel": 2, + "profession": "minecraft:cleric" + }, + "result": { + "Name": "hexcasting:impetus/redstone", + "Properties": { + "energized": "false", + "facing": "north", + "powered": "true" + } + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/quench_allay.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/quench_allay.json new file mode 100644 index 0000000000..076b4e0745 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/brainsweep/quench_allay.json @@ -0,0 +1,15 @@ +{ + "type": "hexcasting:brainsweep", + "blockIn": { + "type": "hexcasting:block", + "block": "minecraft:amethyst_block" + }, + "cost": 100000, + "entityIn": { + "type": "hexcasting:entity_type", + "entityType": "minecraft:allay" + }, + "result": { + "Name": "hexcasting:quenched_allay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/cypher.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/cypher.json new file mode 100644 index 0000000000..80e1837536 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/cypher.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": { + "tag": "c:ingots/copper" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " C ", + "CIC", + " C " + ], + "result": { + "count": 1, + "id": "hexcasting:cypher" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/charged.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/charged.json new file mode 100644 index 0000000000..4d9e9902e8 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/charged.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "hexcasting:quenched_allay_shard" + }, + { + "item": "hexcasting:charged_amethyst" + } + ], + "result": { + "count": 4, + "id": "hexcasting:charged_amethyst" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/dust.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/dust.json new file mode 100644 index 0000000000..5023760773 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/dust.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "hexcasting:quenched_allay_shard" + }, + { + "item": "hexcasting:amethyst_dust" + } + ], + "result": { + "count": 31, + "id": "hexcasting:amethyst_dust" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/shard.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/shard.json new file mode 100644 index 0000000000..e441d9bf5f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/decompose_quenched_shard/shard.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "hexcasting:quenched_allay_shard" + }, + { + "item": "minecraft:amethyst_shard" + } + ], + "result": { + "count": 7, + "id": "minecraft:amethyst_shard" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/default_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/default_colorizer.json new file mode 100644 index 0000000000..b61e7ef20a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/default_colorizer.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "hexcasting:amethyst_dust" + }, + "D": { + "item": "hexcasting:amethyst_dust" + }, + "I": { + "item": "minecraft:copper_ingot" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 1, + "id": "hexcasting:default_colorizer" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/directrix/empty.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/directrix/empty.json new file mode 100644 index 0000000000..986fa97d99 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/directrix/empty.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "C": { + "item": "minecraft:comparator" + }, + "O": { + "item": "minecraft:observer" + }, + "S": { + "item": "hexcasting:slate_block" + } + }, + "pattern": [ + "CSS", + "OAO", + "SSC" + ], + "result": { + "count": 1, + "id": "hexcasting:directrix/empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_black.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_black.json new file mode 100644 index 0000000000..43dcd86862 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_black.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:black_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_black" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_blue.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_blue.json new file mode 100644 index 0000000000..b9cd3b99c3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_blue.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:blue_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_blue" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_brown.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_brown.json new file mode 100644 index 0000000000..f02b87049c --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_brown.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:brown_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_brown" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_cyan.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_cyan.json new file mode 100644 index 0000000000..93380132c6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_cyan.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:cyan_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_cyan" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_gray.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_gray.json new file mode 100644 index 0000000000..c803427d5a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_gray.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:gray_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_gray" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_green.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_green.json new file mode 100644 index 0000000000..e592b36cca --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_green.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:green_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_green" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_blue.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_blue.json new file mode 100644 index 0000000000..d8eb9b5986 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_blue.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:light_blue_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_light_blue" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_gray.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_gray.json new file mode 100644 index 0000000000..e6efc2af9a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_light_gray.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:light_gray_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_light_gray" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_lime.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_lime.json new file mode 100644 index 0000000000..645db81176 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_lime.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:lime_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_lime" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_magenta.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_magenta.json new file mode 100644 index 0000000000..9476c0a098 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_magenta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:magenta_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_magenta" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_orange.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_orange.json new file mode 100644 index 0000000000..f6f815b95f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_orange.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:orange_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_orange" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_pink.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_pink.json new file mode 100644 index 0000000000..065db19c23 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_pink.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:pink_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_pink" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_purple.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_purple.json new file mode 100644 index 0000000000..85dab6119e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_purple.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:purple_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_purple" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_red.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_red.json new file mode 100644 index 0000000000..8acba0fc1a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_red.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:red_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_red" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_white.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_white.json new file mode 100644 index 0000000000..d76ee9ba69 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_white.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:white_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_white" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_yellow.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_yellow.json new file mode 100644 index 0000000000..35ffbdd8df --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dye_colorizer_yellow.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:yellow_dye" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:dye_colorizer_yellow" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dynamicseal_focus.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dynamicseal_focus.json new file mode 100644 index 0000000000..28edc09f6d --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dynamicseal_focus.json @@ -0,0 +1,4 @@ +{ + "type": "hexcasting:seal_focus", + "category": "misc" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/dynamicseal_spellbook.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/dynamicseal_spellbook.json new file mode 100644 index 0000000000..5bf703566d --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/dynamicseal_spellbook.json @@ -0,0 +1,4 @@ +{ + "type": "hexcasting:seal_spellbook", + "category": "misc" +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_button.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_button.json new file mode 100644 index 0000000000..10ad25b4aa --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_button.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "ingredients": [ + { + "tag": "hexcasting:edified_planks" + } + ], + "result": { + "count": 1, + "id": "hexcasting:edified_button" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_door.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_door.json new file mode 100644 index 0000000000..6ff2941615 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_door.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WW", + "WW", + "WW" + ], + "result": { + "count": 3, + "id": "hexcasting:edified_door" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_fence.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_fence.json new file mode 100644 index 0000000000..f1a7c7ec45 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WSW", + "WSW" + ], + "result": { + "count": 3, + "id": "hexcasting:edified_fence" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_fence_gate.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_fence_gate.json new file mode 100644 index 0000000000..a38d45ca38 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_fence_gate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "SWS", + "SWS" + ], + "result": { + "count": 1, + "id": "hexcasting:edified_fence_gate" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_panel.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_panel.json new file mode 100644 index 0000000000..0baf420f31 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_panel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "tag": "hexcasting:edified_planks" + }, + "D": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "DCD", + "C C", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:edified_panel" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_planks.json new file mode 100644 index 0000000000..7ea641db71 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_planks.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "tag": "hexcasting:edified_logs" + } + ], + "result": { + "count": 4, + "id": "hexcasting:edified_planks" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_pressure_plate.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_pressure_plate.json new file mode 100644 index 0000000000..fb80df82d1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_pressure_plate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WW" + ], + "result": { + "count": 1, + "id": "hexcasting:edified_pressure_plate" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_slab.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_slab.json new file mode 100644 index 0000000000..efda8df52a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WWW" + ], + "result": { + "count": 6, + "id": "hexcasting:edified_slab" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_stairs.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_stairs.json new file mode 100644 index 0000000000..ca2e03f9c3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "result": { + "count": 4, + "id": "hexcasting:edified_stairs" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_tile.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_tile.json new file mode 100644 index 0000000000..bfca8c3437 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_tile.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WW ", + "W W", + " WW" + ], + "result": { + "count": 6, + "id": "hexcasting:edified_tile" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_trapdoor.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_trapdoor.json new file mode 100644 index 0000000000..89928fcc73 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_trapdoor.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "W": { + "tag": "hexcasting:edified_planks" + } + }, + "pattern": [ + "WWW", + "WWW" + ], + "result": { + "count": 2, + "id": "hexcasting:edified_trapdoor" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_wood.json new file mode 100644 index 0000000000..4e95e0bdc6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/edified_wood.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "item": "hexcasting:edified_log" + } + }, + "pattern": [ + "WW", + "WW" + ], + "result": { + "count": 3, + "id": "hexcasting:edified_wood" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/focus.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/focus.json new file mode 100644 index 0000000000..ff88244378 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/focus.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "G": { + "tag": "c:dusts/glowstone" + }, + "L": { + "tag": "c:leathers" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "GLG", + "PAP", + "GLG" + ], + "result": { + "count": 1, + "id": "hexcasting:focus" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/focus_rotated.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/focus_rotated.json new file mode 100644 index 0000000000..62aba7f62e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/focus_rotated.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "G": { + "tag": "c:dusts/glowstone" + }, + "L": { + "tag": "c:leathers" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "GPG", + "LAL", + "GPG" + ], + "result": { + "count": 1, + "id": "hexcasting:focus" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/impetus/empty.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/impetus/empty.json new file mode 100644 index 0000000000..b5d3b9fd5c --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/impetus/empty.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "B": { + "item": "minecraft:iron_bars" + }, + "P": { + "item": "minecraft:purpur_block" + }, + "S": { + "item": "hexcasting:slate_block" + } + }, + "pattern": [ + "PSS", + "BAB", + "SSP" + ], + "result": { + "count": 1, + "id": "hexcasting:impetus/empty" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/jeweler_hammer.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/jeweler_hammer.json new file mode 100644 index 0000000000..fef55bcb4b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/jeweler_hammer.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "minecraft:amethyst_shard" + }, + "I": { + "tag": "c:ingots/iron" + }, + "N": { + "tag": "c:nuggets/iron" + }, + "S": [ + { + "item": "minecraft:stick" + }, + { + "tag": "forge:rods/wooden" + } + ] + }, + "pattern": [ + "IAN", + " S ", + " S " + ], + "result": { + "count": 1, + "id": "hexcasting:jeweler_hammer" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/lens.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/lens.json new file mode 100644 index 0000000000..d7e33ac36b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/lens.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": { + "item": "minecraft:glass" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " C ", + "CIC", + " C " + ], + "result": { + "count": 1, + "id": "hexcasting:lens" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_agender.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_agender.json new file mode 100644 index 0000000000..d5401c0952 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_agender.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:glass" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_agender" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aroace.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aroace.json new file mode 100644 index 0000000000..25c32f412c --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aroace.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:wheat_seeds" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_aroace" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aromantic.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aromantic.json new file mode 100644 index 0000000000..ab923e9b61 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_aromantic.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:arrow" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_aromantic" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_asexual.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_asexual.json new file mode 100644 index 0000000000..c41a3223de --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_asexual.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:bread" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_asexual" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_bisexual.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_bisexual.json new file mode 100644 index 0000000000..157dff5b64 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_bisexual.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:wheat" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_bisexual" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demiboy.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demiboy.json new file mode 100644 index 0000000000..c79d6fd805 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demiboy.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:raw_iron" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_demiboy" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demigirl.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demigirl.json new file mode 100644 index 0000000000..4a87fb83dd --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_demigirl.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:raw_copper" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_demigirl" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_gay.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_gay.json new file mode 100644 index 0000000000..3922bf5fa1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_gay.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:stone_brick_wall" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_gay" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderfluid.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderfluid.json new file mode 100644 index 0000000000..788be0d074 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderfluid.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:water_bucket" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_genderfluid" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderqueer.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderqueer.json new file mode 100644 index 0000000000..db56478852 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_genderqueer.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:glass_bottle" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_genderqueer" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_intersex.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_intersex.json new file mode 100644 index 0000000000..0cf8605f6e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_intersex.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:azalea" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_intersex" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_lesbian.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_lesbian.json new file mode 100644 index 0000000000..60faeb98cb --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_lesbian.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:honeycomb" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_lesbian" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_nonbinary.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_nonbinary.json new file mode 100644 index 0000000000..1592908ece --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_nonbinary.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:moss_block" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_nonbinary" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_plural.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_plural.json new file mode 100644 index 0000000000..662aaf38fc --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_plural.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:repeater" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_plural" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_transgender.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_transgender.json new file mode 100644 index 0000000000..cce2b91ea8 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/pride_colorizer_transgender.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "minecraft:egg" + }, + "D": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + " D ", + "DCD", + " D " + ], + "result": { + "count": 1, + "id": "hexcasting:pride_colorizer_transgender" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll.json new file mode 100644 index 0000000000..cf7a4fcfb1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "PPA", + "PPP", + "PPP" + ], + "result": { + "count": 1, + "id": "hexcasting:scroll" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_medium.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_medium.json new file mode 100644 index 0000000000..85b2a98f34 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_medium.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + " A", + "PP ", + "PP " + ], + "result": { + "count": 1, + "id": "hexcasting:scroll_medium" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_paper.json new file mode 100644 index 0000000000..1feb96a530 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_paper.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:paper" + }, + "D": { + "item": "minecraft:paper" + }, + "I": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:scroll_paper" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_paper_lantern.json new file mode 100644 index 0000000000..5434f4c7f1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_paper_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "minecraft:torch" + }, + "T": { + "item": "hexcasting:scroll_paper" + } + }, + "pattern": [ + "T", + "B" + ], + "result": { + "count": 1, + "id": "hexcasting:scroll_paper_lantern" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_small.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_small.json new file mode 100644 index 0000000000..c64a3e544a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/scroll_small.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "P": { + "item": "minecraft:paper" + } + }, + "pattern": [ + " A", + "P " + ], + "result": { + "count": 1, + "id": "hexcasting:scroll_small" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/slate.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/slate.json new file mode 100644 index 0000000000..eb718972c2 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/slate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "hexcasting:amethyst_dust" + }, + "S": { + "item": "minecraft:deepslate" + } + }, + "pattern": [ + " A ", + "SSS" + ], + "result": { + "count": 6, + "id": "hexcasting:slate" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/slate_block.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/slate_block.json new file mode 100644 index 0000000000..975fea26a0 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/slate_block.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:deepslate" + }, + "D": { + "item": "minecraft:deepslate" + }, + "I": { + "item": "hexcasting:amethyst_dust" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 8, + "id": "hexcasting:slate_block" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/slate_block_from_slates.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/slate_block_from_slates.json new file mode 100644 index 0000000000..92bf412fdf --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/slate_block_from_slates.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "hexcasting:slate" + } + }, + "pattern": [ + "S", + "S" + ], + "result": { + "count": 1, + "id": "hexcasting:slate_block" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/spellbook.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/spellbook.json new file mode 100644 index 0000000000..d9e9250926 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/spellbook.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "B": { + "item": "minecraft:writable_book" + }, + "F": { + "item": "minecraft:chorus_fruit" + }, + "N": { + "tag": "c:nuggets/gold" + } + }, + "pattern": [ + "NBA", + "NFA", + "NBA" + ], + "result": { + "count": 1, + "id": "hexcasting:spellbook" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/acacia.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/acacia.json new file mode 100644 index 0000000000..a5e01a9c9a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/acacia.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/acacia" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/bamboo.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/bamboo.json new file mode 100644 index 0000000000..8c648a860c --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/bamboo.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/bamboo" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/birch.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/birch.json new file mode 100644 index 0000000000..2cee68c976 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/birch.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/birch" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/cherry.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/cherry.json new file mode 100644 index 0000000000..fb19b26271 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/cherry.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/cherry" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/crimson.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/crimson.json new file mode 100644 index 0000000000..6f8b4dd09e --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/crimson.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/crimson" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/dark_oak.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/dark_oak.json new file mode 100644 index 0000000000..b4a9aea823 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/dark_oak.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/dark_oak" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/edified.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/edified.json new file mode 100644 index 0000000000..29378f8085 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/edified.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "hexcasting:edified_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/edified" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/jungle.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/jungle.json new file mode 100644 index 0000000000..a3b382cf11 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/jungle.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/jungle" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/mangrove.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/mangrove.json new file mode 100644 index 0000000000..2ad01c0d69 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/mangrove.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/mangrove" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/mindsplice.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/mindsplice.json new file mode 100644 index 0000000000..41c9e8abb0 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/mindsplice.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "tag": "hexcasting:brainswept_circle_components" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/mindsplice" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/oak.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/oak.json new file mode 100644 index 0000000000..75d6d9daab --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/oak.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/oak" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/quenched.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/quenched.json new file mode 100644 index 0000000000..91fd1fc452 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/quenched.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "hexcasting:quenched_allay_shard" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/quenched" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/spruce.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/spruce.json new file mode 100644 index 0000000000..0ab7166a60 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/spruce.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/spruce" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/warped.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/warped.json new file mode 100644 index 0000000000..8a71b96aaf --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/staff/warped.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "hexcasting:charged_amethyst" + }, + "S": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + " SA", + " WS", + "S " + ], + "result": { + "count": 1, + "id": "hexcasting:staff/warped" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/stonecutting/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/stonecutting/amethyst_tiles.json new file mode 100644 index 0000000000..7eb40a9ada --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/stonecutting/amethyst_tiles.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:amethyst_block" + }, + "result": { + "count": 1, + "id": "hexcasting:amethyst_tiles" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/stripped_edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/stripped_edified_wood.json new file mode 100644 index 0000000000..0ccb5ae8e2 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/stripped_edified_wood.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "W": { + "item": "hexcasting:stripped_edified_log" + } + }, + "pattern": [ + "WW", + "WW" + ], + "result": { + "count": 3, + "id": "hexcasting:stripped_edified_wood" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/sub_sandwich.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/sub_sandwich.json new file mode 100644 index 0000000000..82a511fde4 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/sub_sandwich.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "minecraft:amethyst_shard" + }, + "B": { + "item": "minecraft:bread" + }, + "C": { + "item": "minecraft:cooked_beef" + }, + "S": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " SA", + " C ", + " B " + ], + "result": { + "count": 1, + "id": "hexcasting:sub_sandwich" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/thought_knot.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/thought_knot.json new file mode 100644 index 0000000000..d89ad83310 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/thought_knot.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "equipment", + "ingredients": [ + { + "item": "hexcasting:amethyst_dust" + }, + { + "item": "minecraft:string" + } + ], + "result": { + "count": 1, + "id": "hexcasting:thought_knot" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/trinket.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/trinket.json new file mode 100644 index 0000000000..f0c905012a --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/trinket.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": { + "tag": "c:ingots/iron" + }, + "I": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + " C ", + "CIC", + " C " + ], + "result": { + "count": 1, + "id": "hexcasting:trinket" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipe/uuid_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/recipe/uuid_colorizer.json new file mode 100644 index 0000000000..235a2aff68 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/recipe/uuid_colorizer.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "hexcasting:amethyst_dust" + }, + "D": { + "item": "hexcasting:amethyst_dust" + }, + "I": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + "DCD", + "CIC", + "DCD" + ], + "result": { + "count": 1, + "id": "hexcasting:uuid_colorizer" + } +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/abacus.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/abacus.json deleted file mode 100644 index 0b922907fc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/abacus.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "tag": "minecraft:planks" - } - }, - "pattern": [ - "WAW", - "SAS", - "WAW" - ], - "result": { - "item": "hexcasting:abacus" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/ageing_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/ageing_scroll_paper_lantern.json deleted file mode 100644 index 5399461cc9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/ageing_scroll_paper_lantern.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "ingredients": [ - { - "tag": "forge:dyes/brown" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - }, - { - "item": "hexcasting:scroll_paper_lantern" - } - ], - "result": { - "count": 8, - "item": "hexcasting:ancient_scroll_paper_lantern" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/akashic_bookshelf.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/akashic_bookshelf.json deleted file mode 100644 index 20ea2d020a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/akashic_bookshelf.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "C": { - "item": "minecraft:book" - }, - "L": { - "tag": "hexcasting:edified_logs" - }, - "P": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "LPL", - "CCC", - "LPL" - ], - "result": { - "item": "hexcasting:akashic_bookshelf" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/akashic_connector.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/akashic_connector.json deleted file mode 100644 index 218b59c739..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/akashic_connector.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "1": { - "item": "hexcasting:amethyst_dust" - }, - "2": { - "item": "minecraft:amethyst_shard" - }, - "3": { - "item": "hexcasting:charged_amethyst" - }, - "L": { - "tag": "hexcasting:edified_logs" - }, - "P": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "LPL", - "123", - "LPL" - ], - "result": { - "count": 4, - "item": "hexcasting:akashic_connector" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_dust_packing.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_dust_packing.json deleted file mode 100644 index a3fdd6a2bf..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_dust_packing.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "X": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - "XX", - "XX" - ], - "result": { - "item": "hexcasting:amethyst_dust_block" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_dust_unpacking.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_dust_unpacking.json deleted file mode 100644 index 414db2b6f2..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_dust_unpacking.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:amethyst_dust_block" - } - ], - "result": { - "count": 4, - "item": "hexcasting:amethyst_dust" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_sconce.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_sconce.json deleted file mode 100644 index 73d5927d70..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_sconce.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "B": { - "tag": "forge:ingots/copper" - }, - "T": { - "item": "hexcasting:charged_amethyst" - } - }, - "pattern": [ - "T", - "B" - ], - "result": { - "count": 4, - "item": "hexcasting:amethyst_sconce" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_tiles.json deleted file mode 100644 index d41a67a785..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_tiles.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "C": { - "item": "minecraft:amethyst_block" - }, - "D": { - "item": "minecraft:amethyst_block" - }, - "I": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "count": 8, - "item": "hexcasting:amethyst_tiles" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper.json deleted file mode 100644 index 09a583cb6b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "tag": "forge:dyes/brown" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - }, - { - "item": "hexcasting:scroll_paper" - } - ], - "result": { - "count": 8, - "item": "hexcasting:ancient_scroll_paper" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper_lantern.json deleted file mode 100644 index 743cc6dddf..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/ancient_scroll_paper_lantern.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "B": { - "item": "minecraft:torch" - }, - "T": { - "item": "hexcasting:ancient_scroll_paper" - } - }, - "pattern": [ - "T", - "B" - ], - "result": { - "item": "hexcasting:ancient_scroll_paper_lantern" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/artifact.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/artifact.json deleted file mode 100644 index 350fb2e98a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/artifact.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "D": { - "tag": "minecraft:music_discs" - }, - "F": { - "tag": "forge:ingots/gold" - } - }, - "pattern": [ - " F ", - "FAF", - " D " - ], - "result": { - "item": "hexcasting:artifact" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/akashic_record.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/akashic_record.json deleted file mode 100644 index 6ff7558133..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/akashic_record.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:akashic_connector" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 5, - "profession": "librarian" - }, - "result": { - "name": "hexcasting:akashic_record" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/budding_amethyst.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/budding_amethyst.json deleted file mode 100644 index b58a6ec996..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/budding_amethyst.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "minecraft:amethyst_block" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 3 - }, - "result": { - "name": "minecraft:budding_amethyst" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_boolean.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_boolean.json deleted file mode 100644 index fd1c128f51..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_boolean.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:directrix/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 1, - "profession": "shepherd" - }, - "result": { - "name": "hexcasting:directrix/boolean", - "properties": { - "energized": "false", - "facing": "north", - "state": "neither" - } - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_redstone.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_redstone.json deleted file mode 100644 index 3cfe40b7c0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/directrix_redstone.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:directrix/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 1, - "profession": "mason" - }, - "result": { - "name": "hexcasting:directrix/redstone", - "properties": { - "energized": "false", - "facing": "north", - "powered": "false" - } - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_look.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_look.json deleted file mode 100644 index 59338fc079..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_look.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:impetus/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 2, - "profession": "fletcher" - }, - "result": { - "name": "hexcasting:impetus/look", - "properties": { - "energized": "false", - "facing": "north" - } - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_rightclick.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_rightclick.json deleted file mode 100644 index 5a106bd801..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_rightclick.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:impetus/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 2, - "profession": "toolsmith" - }, - "result": { - "name": "hexcasting:impetus/rightclick", - "properties": { - "energized": "false", - "facing": "north" - } - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_storedplayer.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_storedplayer.json deleted file mode 100644 index 1bef4d4633..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/impetus_storedplayer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "hexcasting:impetus/empty" - }, - "cost": 1000000, - "entityIn": { - "type": "villager", - "minLevel": 2, - "profession": "cleric" - }, - "result": { - "name": "hexcasting:impetus/redstone", - "properties": { - "energized": "false", - "facing": "north", - "powered": "true" - } - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/quench_allay.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/quench_allay.json deleted file mode 100644 index d7943e7a49..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/brainsweep/quench_allay.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "hexcasting:brainsweep", - "blockIn": { - "type": "block", - "block": "minecraft:amethyst_block" - }, - "cost": 100000, - "entityIn": { - "type": "entity_type", - "entityType": "minecraft:allay" - }, - "result": { - "name": "hexcasting:quenched_allay" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/create/crushing/amethyst_shard.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/create/crushing/amethyst_shard.json deleted file mode 100644 index 29c34436ed..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/create/crushing/amethyst_shard.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "create" - } - ], - "recipe": { - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:amethyst_shard" - } - ], - "processingTime": 150, - "results": [ - { - "count": 4, - "item": "hexcasting:amethyst_dust" - }, - { - "chance": 0.5, - "item": "hexcasting:amethyst_dust" - } - ] - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_door.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_door.json deleted file mode 100644 index 0105627704..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_door.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "farmersdelight" - } - ], - "recipe": { - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_door" - } - ], - "result": [ - { - "item": "hexcasting:edified_planks" - } - ], - "tool": { - "type": "farmersdelight:tool_action", - "action": "axe_dig" - } - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_trapdoor.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_trapdoor.json deleted file mode 100644 index 5564ed6205..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_trapdoor.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "farmersdelight" - } - ], - "recipe": { - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_trapdoor" - } - ], - "result": [ - { - "item": "hexcasting:edified_planks" - } - ], - "tool": { - "type": "farmersdelight:tool_action", - "action": "axe_dig" - } - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_wood.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_wood.json deleted file mode 100644 index 3a30ec3957..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_wood.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "farmersdelight" - } - ], - "recipe": { - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_wood" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_wood" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool_action", - "action": "axe_strip" - } - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log.json deleted file mode 100644 index ef802db2be..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "farmersdelight" - } - ], - "recipe": { - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool_action", - "action": "axe_strip" - } - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_amethyst.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_amethyst.json deleted file mode 100644 index c44c2caaf7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_amethyst.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "farmersdelight" - } - ], - "recipe": { - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log_amethyst" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool_action", - "action": "axe_strip" - } - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_aventurine.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_aventurine.json deleted file mode 100644 index ba426fbb3a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_aventurine.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "farmersdelight" - } - ], - "recipe": { - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log_aventurine" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool_action", - "action": "axe_strip" - } - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_citrine.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_citrine.json deleted file mode 100644 index 1251a678b9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_citrine.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "farmersdelight" - } - ], - "recipe": { - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log_citrine" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool_action", - "action": "axe_strip" - } - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_purple.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_purple.json deleted file mode 100644 index c5995bf927..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_purple.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "farmersdelight" - } - ], - "recipe": { - "type": "farmersdelight:cutting", - "ingredients": [ - { - "item": "hexcasting:edified_log_purple" - } - ], - "result": [ - { - "item": "hexcasting:stripped_edified_log" - }, - { - "item": "farmersdelight:tree_bark" - } - ], - "sound": "minecraft:item.axe.strip", - "tool": { - "type": "farmersdelight:tool_action", - "action": "axe_strip" - } - } - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/cypher.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/cypher.json deleted file mode 100644 index ab99a0fd0d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/cypher.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "C": { - "tag": "forge:ingots/copper" - }, - "I": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "result": { - "item": "hexcasting:cypher" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/charged.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/charged.json deleted file mode 100644 index 9521bacbca..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/charged.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_shard" - }, - { - "item": "hexcasting:charged_amethyst" - } - ], - "result": { - "count": 4, - "item": "hexcasting:charged_amethyst" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/dust.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/dust.json deleted file mode 100644 index 4a52d88ccf..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/dust.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_shard" - }, - { - "item": "hexcasting:amethyst_dust" - } - ], - "result": { - "count": 31, - "item": "hexcasting:amethyst_dust" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/shard.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/shard.json deleted file mode 100644 index af22d06105..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/decompose_quenched_shard/shard.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_shard" - }, - { - "item": "minecraft:amethyst_shard" - } - ], - "result": { - "count": 7, - "item": "minecraft:amethyst_shard" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/default_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/default_colorizer.json deleted file mode 100644 index 133b5b03bd..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/default_colorizer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "hexcasting:amethyst_dust" - }, - "D": { - "item": "hexcasting:amethyst_dust" - }, - "I": { - "item": "minecraft:copper_ingot" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "item": "hexcasting:default_colorizer" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/directrix/empty.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/directrix/empty.json deleted file mode 100644 index b622fd8844..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/directrix/empty.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "C": { - "item": "minecraft:comparator" - }, - "O": { - "item": "minecraft:observer" - }, - "S": { - "item": "hexcasting:slate_block" - } - }, - "pattern": [ - "CSS", - "OAO", - "SSC" - ], - "result": { - "item": "hexcasting:directrix/empty" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_black.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_black.json deleted file mode 100644 index 4131cc5643..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_black.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:black_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_black" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_blue.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_blue.json deleted file mode 100644 index f9476f986d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_blue.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:blue_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_blue" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_brown.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_brown.json deleted file mode 100644 index 3d5459144d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_brown.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:brown_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_brown" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_cyan.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_cyan.json deleted file mode 100644 index 7f5167cb35..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_cyan.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:cyan_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_cyan" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_gray.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_gray.json deleted file mode 100644 index c491dd7650..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_gray.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:gray_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_gray" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_green.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_green.json deleted file mode 100644 index 96665a82f9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_green.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:green_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_green" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_blue.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_blue.json deleted file mode 100644 index 85d69c57b3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_blue.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:light_blue_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_light_blue" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_gray.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_gray.json deleted file mode 100644 index 2d66ef7c2a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_light_gray.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:light_gray_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_light_gray" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_lime.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_lime.json deleted file mode 100644 index f35899f58f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_lime.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:lime_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_lime" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_magenta.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_magenta.json deleted file mode 100644 index 0449c7a303..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_magenta.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:magenta_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_magenta" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_orange.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_orange.json deleted file mode 100644 index fd2b480a12..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_orange.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:orange_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_orange" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_pink.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_pink.json deleted file mode 100644 index e208a43556..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_pink.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:pink_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_pink" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_purple.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_purple.json deleted file mode 100644 index da671f3ea5..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_purple.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:purple_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_purple" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_red.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_red.json deleted file mode 100644 index 3ff5f19d65..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_red.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:red_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_red" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_white.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_white.json deleted file mode 100644 index 8902cb1a1e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_white.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:white_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_white" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_yellow.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_yellow.json deleted file mode 100644 index 1bddee39eb..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dye_colorizer_yellow.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:yellow_dye" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:dye_colorizer_yellow" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_button.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_button.json deleted file mode 100644 index 6e250ed1b2..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_button.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "redstone", - "ingredients": [ - { - "tag": "hexcasting:edified_planks" - } - ], - "result": { - "item": "hexcasting:edified_button" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_door.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_door.json deleted file mode 100644 index 899954c7ee..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_door.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WW", - "WW", - "WW" - ], - "result": { - "count": 3, - "item": "hexcasting:edified_door" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_fence.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_fence.json deleted file mode 100644 index 25458e77e7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_fence.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "S": { - "item": "minecraft:stick" - }, - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WSW", - "WSW" - ], - "result": { - "count": 3, - "item": "hexcasting:edified_fence" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_fence_gate.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_fence_gate.json deleted file mode 100644 index 799b582fb9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_fence_gate.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "S": { - "item": "minecraft:stick" - }, - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "SWS", - "SWS" - ], - "result": { - "item": "hexcasting:edified_fence_gate" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_panel.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_panel.json deleted file mode 100644 index af912d5628..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_panel.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "C": { - "tag": "hexcasting:edified_planks" - }, - "D": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "DCD", - "C C", - "DCD" - ], - "result": { - "count": 8, - "item": "hexcasting:edified_panel" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_planks.json deleted file mode 100644 index 10317d4b79..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_planks.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "tag": "hexcasting:edified_logs" - } - ], - "result": { - "count": 4, - "item": "hexcasting:edified_planks" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_pressure_plate.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_pressure_plate.json deleted file mode 100644 index 3a1d77b05a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_pressure_plate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WW" - ], - "result": { - "item": "hexcasting:edified_pressure_plate" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_slab.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_slab.json deleted file mode 100644 index 83458a02bc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_slab.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WWW" - ], - "result": { - "count": 6, - "item": "hexcasting:edified_slab" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_stairs.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_stairs.json deleted file mode 100644 index cd17064167..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_stairs.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "W ", - "WW ", - "WWW" - ], - "result": { - "count": 4, - "item": "hexcasting:edified_stairs" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_tile.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_tile.json deleted file mode 100644 index a19f9d35b0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_tile.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WW ", - "W W", - " WW" - ], - "result": { - "count": 6, - "item": "hexcasting:edified_tile" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_trapdoor.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_trapdoor.json deleted file mode 100644 index fbe3f9b3da..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_trapdoor.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "W": { - "tag": "hexcasting:edified_planks" - } - }, - "pattern": [ - "WWW", - "WWW" - ], - "result": { - "count": 2, - "item": "hexcasting:edified_trapdoor" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_wood.json deleted file mode 100644 index 17a530245a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/edified_wood.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "item": "hexcasting:edified_log" - } - }, - "pattern": [ - "WW", - "WW" - ], - "result": { - "count": 3, - "item": "hexcasting:edified_wood" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/focus.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/focus.json deleted file mode 100644 index d97175d65c..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/focus.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "G": { - "tag": "forge:dusts/glowstone" - }, - "L": { - "tag": "forge:leather" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - "GLG", - "PAP", - "GLG" - ], - "result": { - "item": "hexcasting:focus" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/focus_rotated.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/focus_rotated.json deleted file mode 100644 index c84d2ef9a5..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/focus_rotated.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "G": { - "tag": "forge:dusts/glowstone" - }, - "L": { - "tag": "forge:leather" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - "GPG", - "LAL", - "GPG" - ], - "result": { - "item": "hexcasting:focus" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/impetus/empty.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/impetus/empty.json deleted file mode 100644 index c0f772d643..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/impetus/empty.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "B": { - "item": "minecraft:iron_bars" - }, - "P": { - "item": "minecraft:purpur_block" - }, - "S": { - "item": "hexcasting:slate_block" - } - }, - "pattern": [ - "PSS", - "BAB", - "SSP" - ], - "result": { - "item": "hexcasting:impetus/empty" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/jeweler_hammer.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/jeweler_hammer.json deleted file mode 100644 index 94157a802d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/jeweler_hammer.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "I": { - "tag": "forge:ingots/iron" - }, - "N": { - "tag": "forge:nuggets/iron" - }, - "S": [ - { - "item": "minecraft:stick" - }, - { - "tag": "forge:rods/wooden" - } - ] - }, - "pattern": [ - "IAN", - " S ", - " S " - ], - "result": { - "item": "hexcasting:jeweler_hammer" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/lens.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/lens.json deleted file mode 100644 index e91c62a012..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/lens.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "C": { - "item": "minecraft:glass" - }, - "I": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "result": { - "item": "hexcasting:lens" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_agender.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_agender.json deleted file mode 100644 index d92f22f1df..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_agender.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:glass" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_agender" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aroace.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aroace.json deleted file mode 100644 index cc747fec3e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aroace.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:wheat_seeds" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_aroace" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aromantic.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aromantic.json deleted file mode 100644 index 421af44c47..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_aromantic.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:arrow" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_aromantic" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_asexual.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_asexual.json deleted file mode 100644 index 75245d5013..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_asexual.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:bread" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_asexual" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_bisexual.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_bisexual.json deleted file mode 100644 index 3f13a25e91..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_bisexual.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:wheat" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_bisexual" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demiboy.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demiboy.json deleted file mode 100644 index 9ff3ece1ec..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demiboy.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:raw_iron" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_demiboy" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demigirl.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demigirl.json deleted file mode 100644 index e8a8322040..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_demigirl.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:raw_copper" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_demigirl" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_gay.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_gay.json deleted file mode 100644 index da08d7d2e0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_gay.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:stone_brick_wall" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_gay" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderfluid.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderfluid.json deleted file mode 100644 index ee84a87e50..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderfluid.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:water_bucket" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_genderfluid" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderqueer.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderqueer.json deleted file mode 100644 index a5d706b3f3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_genderqueer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:glass_bottle" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_genderqueer" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_intersex.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_intersex.json deleted file mode 100644 index 592a3f5cf2..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_intersex.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:azalea" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_intersex" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_lesbian.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_lesbian.json deleted file mode 100644 index eefd174c3b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_lesbian.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:honeycomb" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_lesbian" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_nonbinary.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_nonbinary.json deleted file mode 100644 index 87d59afe53..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_nonbinary.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:moss_block" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_nonbinary" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_pansexual.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_pansexual.json deleted file mode 100644 index d5f1d3054f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_pansexual.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "type": "hexcasting:mod_conditional", - "default": { - "item": "minecraft:carrot" - }, - "if_loaded": { - "item": "farmersdelight:skillet" - }, - "modid": "farmersdelight" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_pansexual" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_plural.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_plural.json deleted file mode 100644 index 9b616724e0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_plural.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:repeater" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_plural" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_transgender.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_transgender.json deleted file mode 100644 index cb09eaa35e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/pride_colorizer_transgender.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "minecraft:egg" - }, - "D": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - " D ", - "DCD", - " D " - ], - "result": { - "item": "hexcasting:pride_colorizer_transgender" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll.json deleted file mode 100644 index 50fa3bb410..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "hexcasting:amethyst_dust" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - "PPA", - "PPP", - "PPP" - ], - "result": { - "item": "hexcasting:scroll" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_medium.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_medium.json deleted file mode 100644 index ad3445812d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_medium.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "hexcasting:amethyst_dust" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - " A", - "PP ", - "PP " - ], - "result": { - "item": "hexcasting:scroll_medium" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_paper.json deleted file mode 100644 index 18c3c67bec..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_paper.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "C": { - "item": "minecraft:paper" - }, - "D": { - "item": "minecraft:paper" - }, - "I": { - "item": "minecraft:amethyst_shard" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "count": 8, - "item": "hexcasting:scroll_paper" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_paper_lantern.json deleted file mode 100644 index 3b9aa6a140..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_paper_lantern.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "B": { - "item": "minecraft:torch" - }, - "T": { - "item": "hexcasting:scroll_paper" - } - }, - "pattern": [ - "T", - "B" - ], - "result": { - "item": "hexcasting:scroll_paper_lantern" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_small.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_small.json deleted file mode 100644 index 1772485731..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/scroll_small.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "hexcasting:amethyst_dust" - }, - "P": { - "item": "minecraft:paper" - } - }, - "pattern": [ - " A", - "P " - ], - "result": { - "item": "hexcasting:scroll_small" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate.json deleted file mode 100644 index 43863d1aa2..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "hexcasting:amethyst_dust" - }, - "S": { - "item": "minecraft:deepslate" - } - }, - "pattern": [ - " A ", - "SSS" - ], - "result": { - "count": 6, - "item": "hexcasting:slate" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_block.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_block.json deleted file mode 100644 index 5bd7d2052f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_block.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "C": { - "item": "minecraft:deepslate" - }, - "D": { - "item": "minecraft:deepslate" - }, - "I": { - "item": "hexcasting:amethyst_dust" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "count": 8, - "item": "hexcasting:slate_block" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_block_from_slates.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_block_from_slates.json deleted file mode 100644 index a04d33319a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_block_from_slates.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "S": { - "item": "hexcasting:slate" - } - }, - "pattern": [ - "S", - "S" - ], - "result": { - "item": "hexcasting:slate_block" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/spellbook.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/spellbook.json deleted file mode 100644 index 4a7f7ee1ba..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/spellbook.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "B": { - "item": "minecraft:writable_book" - }, - "F": { - "item": "minecraft:chorus_fruit" - }, - "N": { - "tag": "forge:nuggets/gold" - } - }, - "pattern": [ - "NBA", - "NFA", - "NBA" - ], - "result": { - "item": "hexcasting:spellbook" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/acacia.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/acacia.json deleted file mode 100644 index b6dcd43429..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/acacia.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:acacia_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/acacia" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/bamboo.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/bamboo.json deleted file mode 100644 index 2796a8b049..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/bamboo.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:bamboo_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/bamboo" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/birch.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/birch.json deleted file mode 100644 index 7c91ab627a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/birch.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:birch_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/birch" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/cherry.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/cherry.json deleted file mode 100644 index 36a96851b0..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/cherry.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:cherry_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/cherry" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/crimson.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/crimson.json deleted file mode 100644 index 105a164cfc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/crimson.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:crimson_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/crimson" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/dark_oak.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/dark_oak.json deleted file mode 100644 index 14ed432aa3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/dark_oak.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:dark_oak_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/dark_oak" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/edified.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/edified.json deleted file mode 100644 index 8ce0918491..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/edified.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "hexcasting:edified_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/edified" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/jungle.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/jungle.json deleted file mode 100644 index 383db50fce..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/jungle.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:jungle_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/jungle" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/mangrove.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/mangrove.json deleted file mode 100644 index 33fb46a8ab..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/mangrove.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:mangrove_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/mangrove" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/mindsplice.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/mindsplice.json deleted file mode 100644 index 8b14081c0c..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/mindsplice.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "tag": "hexcasting:brainswept_circle_components" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/mindsplice" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/oak.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/oak.json deleted file mode 100644 index 5c8e796b5a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/oak.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:oak_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/oak" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/quenched.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/quenched.json deleted file mode 100644 index 170c8373fc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/quenched.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "hexcasting:quenched_allay_shard" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/quenched" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/spruce.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/spruce.json deleted file mode 100644 index 3670939402..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/spruce.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:spruce_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/spruce" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/warped.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/warped.json deleted file mode 100644 index c8f1b7ce6a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/staff/warped.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "A": { - "item": "hexcasting:charged_amethyst" - }, - "S": { - "item": "minecraft:stick" - }, - "W": { - "item": "minecraft:warped_planks" - } - }, - "pattern": [ - " SA", - " WS", - "S " - ], - "result": { - "item": "hexcasting:staff/warped" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_tiles.json deleted file mode 100644 index 020b0ec65f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_tiles.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "item": "minecraft:amethyst_block" - }, - "result": "hexcasting:amethyst_tiles" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stripped_edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stripped_edified_wood.json deleted file mode 100644 index c0cab6f42f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stripped_edified_wood.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "W": { - "item": "hexcasting:stripped_edified_log" - } - }, - "pattern": [ - "WW", - "WW" - ], - "result": { - "count": 3, - "item": "hexcasting:stripped_edified_wood" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/sub_sandwich.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/sub_sandwich.json deleted file mode 100644 index 937deabc39..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/sub_sandwich.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "B": { - "item": "minecraft:bread" - }, - "C": { - "item": "minecraft:cooked_beef" - }, - "S": { - "item": "minecraft:stick" - } - }, - "pattern": [ - " SA", - " C ", - " B " - ], - "result": { - "item": "hexcasting:sub_sandwich" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/thought_knot.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/thought_knot.json deleted file mode 100644 index 2f2c9f9504..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/thought_knot.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "equipment", - "ingredients": [ - { - "item": "hexcasting:amethyst_dust" - }, - { - "item": "minecraft:string" - } - ], - "result": { - "item": "hexcasting:thought_knot" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/trinket.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/trinket.json deleted file mode 100644 index ed357447da..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/trinket.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "C": { - "tag": "forge:ingots/iron" - }, - "I": { - "item": "minecraft:amethyst_shard" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "result": { - "item": "hexcasting:trinket" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/uuid_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/uuid_colorizer.json deleted file mode 100644 index 418123f8b7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/uuid_colorizer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "hexcasting:amethyst_dust" - }, - "D": { - "item": "hexcasting:amethyst_dust" - }, - "I": { - "item": "minecraft:amethyst_shard" - } - }, - "pattern": [ - "DCD", - "CIC", - "DCD" - ], - "result": { - "item": "hexcasting:uuid_colorizer" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/block/brainswept_circle_components.json b/Neoforge/src/generated/resources/data/hexcasting/tags/block/brainswept_circle_components.json new file mode 100644 index 0000000000..aa71f4b195 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/block/brainswept_circle_components.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#hexcasting:impeti", + "#hexcasting:directrices" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/block/cheap_to_break_block.json b/Neoforge/src/generated/resources/data/hexcasting/tags/block/cheap_to_break_block.json new file mode 100644 index 0000000000..7fc52a816b --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/block/cheap_to_break_block.json @@ -0,0 +1,6 @@ +{ + "values": [ + "hexcasting:conjured_block", + "hexcasting:conjured_light" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/block/directrices.json b/Neoforge/src/generated/resources/data/hexcasting/tags/block/directrices.json new file mode 100644 index 0000000000..824259f178 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/block/directrices.json @@ -0,0 +1,6 @@ +{ + "values": [ + "hexcasting:directrix/redstone", + "hexcasting:directrix/boolean" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/block/edified_logs.json b/Neoforge/src/generated/resources/data/hexcasting/tags/block/edified_logs.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/block/edified_logs.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/block/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/block/edified_planks.json new file mode 100644 index 0000000000..36cc46d6db --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/block/edified_planks.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/block/impeti.json b/Neoforge/src/generated/resources/data/hexcasting/tags/block/impeti.json new file mode 100644 index 0000000000..358990d5b4 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/block/impeti.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:impetus/look", + "hexcasting:impetus/rightclick", + "hexcasting:impetus/redstone" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/block/water_plants.json b/Neoforge/src/generated/resources/data/hexcasting/tags/block/water_plants.json new file mode 100644 index 0000000000..0f2bcab34f --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/block/water_plants.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:kelp", + "minecraft:kelp_plant", + "minecraft:seagrass", + "minecraft:tall_seagrass" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/item/brainswept_circle_components.json b/Neoforge/src/generated/resources/data/hexcasting/tags/item/brainswept_circle_components.json new file mode 100644 index 0000000000..aa71f4b195 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/item/brainswept_circle_components.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#hexcasting:impeti", + "#hexcasting:directrices" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/item/directrices.json b/Neoforge/src/generated/resources/data/hexcasting/tags/item/directrices.json new file mode 100644 index 0000000000..824259f178 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/item/directrices.json @@ -0,0 +1,6 @@ +{ + "values": [ + "hexcasting:directrix/redstone", + "hexcasting:directrix/boolean" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/item/edified_logs.json b/Neoforge/src/generated/resources/data/hexcasting/tags/item/edified_logs.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/item/edified_logs.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/item/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/item/edified_planks.json new file mode 100644 index 0000000000..36cc46d6db --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/item/edified_planks.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/item/grants_root_advancement.json b/Neoforge/src/generated/resources/data/hexcasting/tags/item/grants_root_advancement.json new file mode 100644 index 0000000000..1f7070a707 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/item/grants_root_advancement.json @@ -0,0 +1,8 @@ +{ + "values": [ + "hexcasting:amethyst_dust", + "minecraft:amethyst_shard", + "hexcasting:charged_amethyst", + "hexcasting:creative_unlocker" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/item/impeti.json b/Neoforge/src/generated/resources/data/hexcasting/tags/item/impeti.json new file mode 100644 index 0000000000..358990d5b4 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/item/impeti.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:impetus/look", + "hexcasting:impetus/rightclick", + "hexcasting:impetus/redstone" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/item/phial_base.json b/Neoforge/src/generated/resources/data/hexcasting/tags/item/phial_base.json new file mode 100644 index 0000000000..52ac4c0c96 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/item/phial_base.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:glass_bottle" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/item/seal_materials.json b/Neoforge/src/generated/resources/data/hexcasting/tags/item/seal_materials.json new file mode 100644 index 0000000000..674a370049 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/item/seal_materials.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:honeycomb" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/item/staves.json b/Neoforge/src/generated/resources/data/hexcasting/tags/item/staves.json new file mode 100644 index 0000000000..29f4595c62 --- /dev/null +++ b/Neoforge/src/generated/resources/data/hexcasting/tags/item/staves.json @@ -0,0 +1,18 @@ +{ + "values": [ + "hexcasting:staff/edified", + "hexcasting:staff/oak", + "hexcasting:staff/spruce", + "hexcasting:staff/birch", + "hexcasting:staff/jungle", + "hexcasting:staff/acacia", + "hexcasting:staff/dark_oak", + "hexcasting:staff/crimson", + "hexcasting:staff/warped", + "hexcasting:staff/mangrove", + "hexcasting:staff/cherry", + "hexcasting:staff/bamboo", + "hexcasting:staff/quenched", + "hexcasting:staff/mindsplice" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/buttons.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/buttons.json new file mode 100644 index 0000000000..672bbc1a69 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_button" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/crystal_sound_blocks.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/crystal_sound_blocks.json new file mode 100644 index 0000000000..7a23dc1ec1 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/crystal_sound_blocks.json @@ -0,0 +1,8 @@ +{ + "values": [ + "hexcasting:conjured_light", + "hexcasting:conjured_block", + "hexcasting:amethyst_tiles", + "hexcasting:amethyst_sconce" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/doors.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/doors.json new file mode 100644 index 0000000000..e5614ff46f --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/doors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_door" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/fence_gates.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/fence_gates.json new file mode 100644 index 0000000000..f27c95c784 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/fence_gates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_fence_gate" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/fences.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/fences.json new file mode 100644 index 0000000000..269de59e0a --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/fences.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_fence" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/leaves.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/leaves.json new file mode 100644 index 0000000000..ff8e420cc6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/leaves.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:amethyst_edified_leaves", + "hexcasting:aventurine_edified_leaves", + "hexcasting:citrine_edified_leaves" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/logs.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/logs.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/logs.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/axe.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/axe.json new file mode 100644 index 0000000000..0d6037e186 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/axe.json @@ -0,0 +1,25 @@ +{ + "values": [ + "hexcasting:akashic_record", + "hexcasting:akashic_bookshelf", + "hexcasting:akashic_ligature", + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood", + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile", + "hexcasting:edified_door", + "hexcasting:edified_trapdoor", + "hexcasting:edified_slab", + "hexcasting:edified_button", + "hexcasting:edified_stairs", + "hexcasting:edified_fence", + "hexcasting:edified_fence_gate" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/hoe.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/hoe.json new file mode 100644 index 0000000000..ff8e420cc6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/hoe.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:amethyst_edified_leaves", + "hexcasting:aventurine_edified_leaves", + "hexcasting:citrine_edified_leaves" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json new file mode 100644 index 0000000000..a8b1c2eb67 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,30 @@ +{ + "values": [ + "hexcasting:slate_block", + "hexcasting:slate_tiles", + "hexcasting:slate_bricks", + "hexcasting:slate_bricks_small", + "hexcasting:slate_pillar", + "hexcasting:slate", + "hexcasting:directrix/empty", + "hexcasting:directrix/redstone", + "hexcasting:directrix/boolean", + "hexcasting:impetus/empty", + "hexcasting:impetus/rightclick", + "hexcasting:impetus/look", + "hexcasting:impetus/redstone", + "hexcasting:amethyst_tiles", + "hexcasting:amethyst_bricks", + "hexcasting:amethyst_bricks_small", + "hexcasting:amethyst_pillar", + "hexcasting:slate_amethyst_tiles", + "hexcasting:slate_amethyst_bricks", + "hexcasting:slate_amethyst_bricks_small", + "hexcasting:slate_amethyst_pillar", + "hexcasting:amethyst_sconce", + "hexcasting:quenched_allay", + "hexcasting:quenched_allay_tiles", + "hexcasting:quenched_allay_bricks", + "hexcasting:quenched_allay_bricks_small" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json new file mode 100644 index 0000000000..02d08df2b3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:amethyst_dust_block" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/planks.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/planks.json new file mode 100644 index 0000000000..36cc46d6db --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/planks.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/pressure_plates.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/pressure_plates.json new file mode 100644 index 0000000000..8880072112 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/pressure_plates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_pressure_plate" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/slabs.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/slabs.json new file mode 100644 index 0000000000..af4c10b029 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/slabs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_slab" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/stairs.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/stairs.json new file mode 100644 index 0000000000..c2e7fad75b --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/stairs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_stairs" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/trapdoors.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/trapdoors.json new file mode 100644 index 0000000000..0e9f576897 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/trapdoors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_trapdoor" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/unstable_bottom_center.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/unstable_bottom_center.json new file mode 100644 index 0000000000..f27c95c784 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/unstable_bottom_center.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_fence_gate" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_buttons.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_buttons.json new file mode 100644 index 0000000000..672bbc1a69 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_button" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_doors.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_doors.json new file mode 100644 index 0000000000..e5614ff46f --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_doors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_door" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_fences.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_fences.json new file mode 100644 index 0000000000..117722b2be --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_fences.json @@ -0,0 +1,6 @@ +{ + "values": [ + "hexcasting:edified_fence", + "hexcasting:edified_fence" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_pressure_plates.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_pressure_plates.json new file mode 100644 index 0000000000..8880072112 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_pressure_plates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_pressure_plate" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_slabs.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_slabs.json new file mode 100644 index 0000000000..af4c10b029 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_slabs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_slab" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_stairs.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_stairs.json new file mode 100644 index 0000000000..c2e7fad75b --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_stairs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_stairs" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_trapdoors.json b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_trapdoors.json new file mode 100644 index 0000000000..0e9f576897 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/block/wooden_trapdoors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_trapdoor" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json deleted file mode 100644 index 66e5f0a52f..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "values": [ - "hexcasting:akashic_record", - "hexcasting:akashic_bookshelf", - "hexcasting:akashic_connector", - "hexcasting:edified_log", - "hexcasting:edified_log_amethyst", - "hexcasting:edified_log_aventurine", - "hexcasting:edified_log_citrine", - "hexcasting:edified_log_purple", - "hexcasting:stripped_edified_log", - "hexcasting:edified_wood", - "hexcasting:stripped_edified_wood", - "hexcasting:edified_planks", - "hexcasting:edified_panel", - "hexcasting:edified_tile", - "hexcasting:edified_door", - "hexcasting:edified_trapdoor", - "hexcasting:edified_slab", - "hexcasting:edified_button", - "hexcasting:edified_stairs", - "hexcasting:edified_fence", - "hexcasting:edified_fence_gate" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json b/Neoforge/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json new file mode 100644 index 0000000000..4209c89aa3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:overcast" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json b/Neoforge/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json new file mode 100644 index 0000000000..4209c89aa3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:overcast" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json b/Neoforge/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json new file mode 100644 index 0000000000..4209c89aa3 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:overcast" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/buttons.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/buttons.json new file mode 100644 index 0000000000..672bbc1a69 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_button" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/doors.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/doors.json new file mode 100644 index 0000000000..e5614ff46f --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/doors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_door" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/leaves.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/leaves.json new file mode 100644 index 0000000000..ff8e420cc6 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/leaves.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:amethyst_edified_leaves", + "hexcasting:aventurine_edified_leaves", + "hexcasting:citrine_edified_leaves" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/logs.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/logs.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/logs.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/logs_that_burn.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/logs_that_burn.json new file mode 100644 index 0000000000..22fc9e7a51 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/logs_that_burn.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:edified_log", + "hexcasting:edified_log_amethyst", + "hexcasting:edified_log_aventurine", + "hexcasting:edified_log_citrine", + "hexcasting:edified_log_purple", + "hexcasting:stripped_edified_log", + "hexcasting:edified_wood", + "hexcasting:stripped_edified_wood" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/planks.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/planks.json new file mode 100644 index 0000000000..36cc46d6db --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/planks.json @@ -0,0 +1,7 @@ +{ + "values": [ + "hexcasting:edified_planks", + "hexcasting:edified_panel", + "hexcasting:edified_tile" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/slabs.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/slabs.json new file mode 100644 index 0000000000..af4c10b029 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/slabs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_slab" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/trapdoors.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/trapdoors.json new file mode 100644 index 0000000000..0e9f576897 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/trapdoors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_trapdoor" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_buttons.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_buttons.json new file mode 100644 index 0000000000..672bbc1a69 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_buttons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_button" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_doors.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_doors.json new file mode 100644 index 0000000000..e5614ff46f --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_doors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_door" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_pressure_plates.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_pressure_plates.json new file mode 100644 index 0000000000..8880072112 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_pressure_plates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_pressure_plate" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_slabs.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_slabs.json new file mode 100644 index 0000000000..af4c10b029 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_slabs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_slab" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_trapdoors.json b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_trapdoors.json new file mode 100644 index 0000000000..0e9f576897 --- /dev/null +++ b/Neoforge/src/generated/resources/data/minecraft/tags/item/wooden_trapdoors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hexcasting:edified_trapdoor" + ] +} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json b/Neoforge/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json new file mode 100644 index 0000000000..6699a7a66e --- /dev/null +++ b/Neoforge/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json @@ -0,0 +1,37 @@ +{ + "entries": [ + "hexcasting:scroll/minecraft/chests/simple_dungeon", + "hexcasting:scroll/minecraft/chests/abandoned_mineshaft", + "hexcasting:scroll/minecraft/chests/bastion_other", + "hexcasting:scroll/minecraft/chests/nether_bridge", + "hexcasting:scroll/minecraft/chests/jungle_temple", + "hexcasting:scroll/minecraft/chests/desert_pyramid", + "hexcasting:scroll/minecraft/chests/village/village_cartographer", + "hexcasting:scroll/minecraft/chests/shipwreck_map", + "hexcasting:scroll/minecraft/chests/bastion_treasure", + "hexcasting:scroll/minecraft/chests/end_city_treasure", + "hexcasting:scroll/minecraft/chests/ancient_city", + "hexcasting:scroll/minecraft/chests/pillager_outpost", + "hexcasting:scroll/minecraft/chests/woodland_mansion", + "hexcasting:scroll/minecraft/chests/stronghold_library", + "hexcasting:lore/minecraft/chests/simple_dungeon", + "hexcasting:lore/minecraft/chests/abandoned_mineshaft", + "hexcasting:lore/minecraft/chests/pillager_outpost", + "hexcasting:lore/minecraft/chests/woodland_mansion", + "hexcasting:lore/minecraft/chests/stronghold_library", + "hexcasting:lore/minecraft/chests/village/village_desert_house", + "hexcasting:lore/minecraft/chests/village/village_plains_house", + "hexcasting:lore/minecraft/chests/village/village_savanna_house", + "hexcasting:lore/minecraft/chests/village/village_snowy_house", + "hexcasting:lore/minecraft/chests/village/village_taiga_house", + "hexcasting:cypher/minecraft/chests/simple_dungeon", + "hexcasting:cypher/minecraft/chests/abandoned_mineshaft", + "hexcasting:cypher/minecraft/chests/stronghold_corridor", + "hexcasting:cypher/minecraft/chests/jungle_temple", + "hexcasting:cypher/minecraft/chests/desert_pyramid", + "hexcasting:cypher/minecraft/chests/ancient_city", + "hexcasting:cypher/minecraft/chests/nether_bridge", + "hexcasting:amethyst_cluster" + ], + "replace": false +} \ No newline at end of file diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java index 30e0e2a53e..1440b80076 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java @@ -1,5 +1,6 @@ package at.petrak.hexcasting.forge; +import at.petrak.hexcasting.api.client.ClientCastingStack; import at.petrak.hexcasting.client.ClientTickCounter; import at.petrak.hexcasting.client.RegisterClientStuff; import at.petrak.hexcasting.client.ShiftScrollListener; @@ -11,23 +12,25 @@ import at.petrak.hexcasting.common.casting.PatternRegistryManifest; import at.petrak.hexcasting.common.lib.HexParticles; import at.petrak.hexcasting.common.misc.PatternTooltip; +import at.petrak.hexcasting.forge.lib.ForgeHexAttachments; import at.petrak.hexcasting.interop.HexInterop; import net.minecraft.client.Minecraft; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.color.item.ItemColors; import net.minecraft.client.model.EntityModel; import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.ParticleProvider; import net.minecraft.client.particle.SpriteSet; import net.minecraft.client.player.AbstractClientPlayer; import net.minecraft.client.renderer.entity.LivingEntityRenderer; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleType; -import net.minecraftforge.client.event.*; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.TickEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; +import net.minecraft.world.entity.player.Player; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.neoforge.client.event.*; +import net.neoforged.neoforge.common.NeoForge; import java.io.IOException; import java.util.function.Function; @@ -48,14 +51,15 @@ public static void clientInit(FMLClientSetupEvent evt) { (colorizer, block) -> GLOBAL_BLOCK_COLORS.register(colorizer, block)); }); - var evBus = MinecraftForge.EVENT_BUS; + var evBus = NeoForge.EVENT_BUS; evBus.addListener((ClientPlayerNetworkEvent.LoggingIn e) -> PatternRegistryManifest.processRegistry(null)); + // TODO port: check if gametimedelta is the right one evBus.addListener((RenderLevelStageEvent e) -> { if (e.getStage().equals(RenderLevelStageEvent.Stage.AFTER_PARTICLES)) { - HexAdditionalRenderers.overlayLevel(e.getPoseStack(), e.getPartialTick()); + HexAdditionalRenderers.overlayLevel(e.getPoseStack(), e.getPartialTick().getGameTimeDeltaTicks()); } }); @@ -63,22 +67,25 @@ public static void clientInit(FMLClientSetupEvent evt) { HexAdditionalRenderers.overlayGui(e.getGuiGraphics(), e.getPartialTick()); }); - - evBus.addListener((TickEvent.RenderTickEvent e) -> { - if (e.phase == TickEvent.Phase.START) { - ClientTickCounter.renderTickStart(e.renderTickTime); - } + //TODO port: maybe replace with DeltaTracker from Mojang? + evBus.addListener((RenderFrameEvent.Pre e) -> { + ClientTickCounter.renderTickStart(e.getPartialTick().getGameTimeDeltaTicks()); }); - evBus.addListener((TickEvent.ClientTickEvent e) -> { - if (e.phase == TickEvent.Phase.END) { - ClientTickCounter.clientTickEnd(); - ShiftScrollListener.clientTickEnd(); + evBus.addListener((ClientTickEvent.Post e) -> { + ClientTickCounter.clientTickEnd(); + ShiftScrollListener.clientTickEnd(); + ClientLevel level = Minecraft.getInstance().level; + if (level != null) { + for (Player player : level.players()) { + if (!player.hasData(ForgeHexAttachments.CLIENT_CASTING_STACK.get())) continue; + player.getData(ForgeHexAttachments.CLIENT_CASTING_STACK.get()).tick(); + } } }); evBus.addListener((InputEvent.MouseScrollingEvent e) -> { - var cancel = ShiftScrollListener.onScrollInGameplay(e.getScrollDelta()); + var cancel = ShiftScrollListener.onScrollInGameplay(e.getScrollDeltaY()); e.setCanceled(cancel); }); diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexConfig.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexConfig.java index bf219312fc..203f067aec 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexConfig.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexConfig.java @@ -4,23 +4,23 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; -import net.minecraftforge.common.ForgeConfigSpec; +import net.neoforged.neoforge.common.ModConfigSpec; import java.util.List; import static at.petrak.hexcasting.api.mod.HexConfig.noneMatch; public class ForgeHexConfig implements HexConfig.CommonConfigAccess { - private static ForgeConfigSpec.LongValue dustMediaAmount; - private static ForgeConfigSpec.LongValue shardMediaAmount; - private static ForgeConfigSpec.LongValue chargedCrystalMediaAmount; - private static ForgeConfigSpec.DoubleValue mediaToHealthRate; + private static ModConfigSpec.LongValue dustMediaAmount; + private static ModConfigSpec.LongValue shardMediaAmount; + private static ModConfigSpec.LongValue chargedCrystalMediaAmount; + private static ModConfigSpec.DoubleValue mediaToHealthRate; - private static ForgeConfigSpec.IntValue cypherCooldown; - private static ForgeConfigSpec.IntValue trinketCooldown; - private static ForgeConfigSpec.IntValue artifactCooldown; + private static ModConfigSpec.IntValue cypherCooldown; + private static ModConfigSpec.IntValue trinketCooldown; + private static ModConfigSpec.IntValue artifactCooldown; - public ForgeHexConfig(ForgeConfigSpec.Builder builder) { + public ForgeHexConfig(ModConfigSpec.Builder builder) { builder.push("Media Amounts"); dustMediaAmount = builder.comment("How much media a single Amethyst Dust item is worth") .defineInRange("dustMediaAmount", DEFAULT_DUST_MEDIA_AMOUNT, 0, Integer.MAX_VALUE); @@ -78,13 +78,13 @@ public int artifactCooldown() { } public static class Client implements HexConfig.ClientConfigAccess { - private static ForgeConfigSpec.BooleanValue ctrlTogglesOffStrokeOrder; - private static ForgeConfigSpec.BooleanValue invertSpellbookScrollDirection; - private static ForgeConfigSpec.BooleanValue invertAbacusScrollDirection; - private static ForgeConfigSpec.DoubleValue gridSnapThreshold; - private static ForgeConfigSpec.BooleanValue clickingTogglesDrawing; + private static ModConfigSpec.BooleanValue ctrlTogglesOffStrokeOrder; + private static ModConfigSpec.BooleanValue invertSpellbookScrollDirection; + private static ModConfigSpec.BooleanValue invertAbacusScrollDirection; + private static ModConfigSpec.DoubleValue gridSnapThreshold; + private static ModConfigSpec.BooleanValue clickingTogglesDrawing; - public Client(ForgeConfigSpec.Builder builder) { + public Client(ModConfigSpec.Builder builder) { ctrlTogglesOffStrokeOrder = builder.comment( "Whether the ctrl key will instead turn *off* the color gradient on patterns") .define("ctrlTogglesOffStrokeOrder", DEFAULT_CTRL_TOGGLES_OFF_STROKE_ORDER); @@ -131,26 +131,24 @@ public boolean clickingTogglesDrawing() { } public static class Server implements HexConfig.ServerConfigAccess { - private static ForgeConfigSpec.IntValue opBreakHarvestLevel; - private static ForgeConfigSpec.IntValue maxOpCount; + private static ModConfigSpec.IntValue opBreakHarvestLevel; + private static ModConfigSpec.IntValue maxOpCount; + private static ModConfigSpec.IntValue maxSpellCircleLength; + private static ModConfigSpec.ConfigValue> actionDenyList; + private static ModConfigSpec.ConfigValue> circleActionDenyList; - private static ForgeConfigSpec.IntValue maxSpellCircleLength; + private static ModConfigSpec.BooleanValue greaterTeleportSplatsItems; + private static ModConfigSpec.BooleanValue villagersOffendedByMindMurder; + private static ModConfigSpec.ConfigValue> tpDimDenyList; + private static ModConfigSpec.BooleanValue doesTrueNameHaveAmbit; + private static ModConfigSpec.DoubleValue traderScrollChance; - private static ForgeConfigSpec.ConfigValue> actionDenyList; - private static ForgeConfigSpec.ConfigValue> circleActionDenyList; + private static ModConfigSpec.ConfigValue> fewScrollTables; + private static ModConfigSpec.ConfigValue> someScrollTables; + private static ModConfigSpec.ConfigValue> manyScrollTables; - private static ForgeConfigSpec.BooleanValue villagersOffendedByMindMurder; - private static ForgeConfigSpec.ConfigValue> tpDimDenyList; - - private static ForgeConfigSpec.BooleanValue doesTrueNameHaveAmbit; - - private static ForgeConfigSpec.ConfigValue> fewScrollTables; - private static ForgeConfigSpec.ConfigValue> someScrollTables; - private static ForgeConfigSpec.ConfigValue> manyScrollTables; - - - public Server(ForgeConfigSpec.Builder builder) { + public Server(ModConfigSpec.Builder builder) { builder.push("Spells"); maxOpCount = builder.comment("The maximum number of actions that can be executed in one tick, to avoid " + "hanging the server.") @@ -171,10 +169,18 @@ public Server(ForgeConfigSpec.Builder builder) { .defineList("circleActionDenyList", List.of(), Server::isValidReslocArg); builder.pop(); + builder.push("Loot"); + traderScrollChance = builder.comment("The chance for wandering traders to sell an Ancient Scroll") + .defineInRange("traderScrollChance", DEFAULT_TRADER_SCROLL_CHANCE, 0.0, 1.0); + actionDenyList = builder.comment( "Resource locations of disallowed actions. Trying to cast one of these will result in a mishap.") .defineList("actionDenyList", List.of(), Server::isValidReslocArg); + greaterTeleportSplatsItems = builder.comment( + "Should items fly out of the player's inventory when using Greater Teleport?" + ).define("greaterTeleportSplatsItems", DEFAULT_GREATER_TELEPORT_SPLATS_ITEMS); + villagersOffendedByMindMurder = builder.comment( "Should villagers take offense when you flay the mind of their fellow villagers?") .define("villagersOffendedByMindMurder", true); @@ -212,6 +218,9 @@ public boolean isActionAllowedInCircles(ResourceLocation actionID) { return noneMatch(circleActionDenyList.get(), actionID); } + @Override + public boolean doesGreaterTeleportSplatItems() { return greaterTeleportSplatsItems.get(); } + @Override public boolean doVillagersTakeOffenseAtMindMurder() { return villagersOffendedByMindMurder.get(); @@ -227,8 +236,13 @@ public boolean trueNameHasAmbit() { return doesTrueNameHaveAmbit.get(); } + @Override + public double traderScrollChance() { + return traderScrollChance.get(); + } + private static boolean isValidReslocArg(Object o) { - return o instanceof String s && ResourceLocation.isValidResourceLocation(s); + return o instanceof String s && ResourceLocation.tryParse(s) != null; } } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java index 16bc2a0549..1e7f103253 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java @@ -13,26 +13,24 @@ import at.petrak.hexcasting.common.items.ItemJewelerHammer; import at.petrak.hexcasting.common.lib.*; import at.petrak.hexcasting.common.lib.hex.*; -import at.petrak.hexcasting.common.misc.AkashicTreeGrower; -import at.petrak.hexcasting.common.misc.BrainsweepingEvents; -import at.petrak.hexcasting.common.misc.PlayerPositionRecorder; -import at.petrak.hexcasting.common.misc.RegisterMisc; +import at.petrak.hexcasting.common.misc.*; import at.petrak.hexcasting.common.recipe.HexRecipeStuffRegistry; +import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredients; +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredients; import at.petrak.hexcasting.forge.cap.CapSyncers; import at.petrak.hexcasting.forge.cap.ForgeCapabilityHandler; -import at.petrak.hexcasting.forge.cap.adimpl.CapClientCastingStack; import at.petrak.hexcasting.forge.datagen.ForgeHexDataGenerators; import at.petrak.hexcasting.forge.interop.curios.CuriosApiInterop; import at.petrak.hexcasting.forge.interop.curios.CuriosRenderers; import at.petrak.hexcasting.forge.lib.ForgeHexArgumentTypeRegistry; +import at.petrak.hexcasting.forge.lib.ForgeHexAttachments; +import at.petrak.hexcasting.forge.lib.ForgeHexIngredientTypes; import at.petrak.hexcasting.forge.lib.ForgeHexLootMods; import at.petrak.hexcasting.forge.network.ForgePacketHandler; import at.petrak.hexcasting.forge.network.MsgBrainsweepAck; -import at.petrak.hexcasting.forge.recipe.ForgeModConditionalIngredient; -import at.petrak.hexcasting.forge.recipe.ForgeUnsealedIngredient; import at.petrak.hexcasting.interop.HexInterop; import at.petrak.hexcasting.xplat.IXplatAbstractions; -import net.minecraft.core.MappedRegistry; +import com.samsthenerd.inline.utils.cradles.EntTypeCradle; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; @@ -43,73 +41,72 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockSetType; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.common.ForgeConfigSpec; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.ToolActions; -import net.minecraftforge.common.crafting.CraftingHelper; -import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; -import net.minecraftforge.event.RegisterCommandsEvent; -import net.minecraftforge.event.TickEvent; -import net.minecraftforge.event.entity.EntityAttributeModificationEvent; -import net.minecraftforge.event.entity.living.LivingConversionEvent; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.event.level.BlockEvent; -import net.minecraftforge.event.server.ServerStartedEvent; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.config.ModConfig; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; -import net.minecraftforge.network.PacketDistributor; -import net.minecraftforge.registries.RegisterEvent; -import thedarkcolour.kotlinforforge.KotlinModLoadingContext; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.ModList; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.config.ModConfig; +import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; +import net.neoforged.fml.loading.FMLEnvironment; +import net.neoforged.neoforge.common.ItemAbilities; +import net.neoforged.neoforge.common.ModConfigSpec; +import net.neoforged.neoforge.common.NeoForge; +import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; +import net.neoforged.neoforge.event.RegisterCommandsEvent; +import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent; +import net.neoforged.neoforge.event.entity.EntityAttributeModificationEvent; +import net.neoforged.neoforge.event.entity.living.LivingConversionEvent; +import net.neoforged.neoforge.event.entity.player.PlayerEvent; +import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent; +import net.neoforged.neoforge.event.level.BlockEvent; +import net.neoforged.neoforge.event.server.ServerStartedEvent; +import net.neoforged.neoforge.event.tick.EntityTickEvent; +import net.neoforged.neoforge.event.tick.LevelTickEvent; +import net.neoforged.neoforge.network.PacketDistributor; +import net.neoforged.neoforge.registries.NewRegistryEvent; +import net.neoforged.neoforge.registries.RegisterEvent; +import thedarkcolour.kotlinforforge.neoforge.KotlinModLoadingContext; import java.util.function.BiConsumer; import java.util.function.Consumer; @Mod(HexAPI.MOD_ID) public class ForgeHexInitializer { - public ForgeHexInitializer() { - initConfig(); + public ForgeHexInitializer(ModContainer modContainer) { + initConfig(modContainer); + // workaround for Inline EntTypeCradles not being available on server, related to https://github.com/SamsTheNerd/inline/issues/34 + EntTypeCradle.fromTypeId(ResourceLocation.fromNamespaceAndPath("minecraft", "pig")).get().getType(); initRegistries(); initRegistry(); initListeners(); } - private static void initConfig() { - var config = new ForgeConfigSpec.Builder().configure(ForgeHexConfig::new); - var clientConfig = new ForgeConfigSpec.Builder().configure(ForgeHexConfig.Client::new); - var serverConfig = new ForgeConfigSpec.Builder().configure(ForgeHexConfig.Server::new); + private static void initConfig(ModContainer modContainer) { + var config = new ModConfigSpec.Builder().configure(ForgeHexConfig::new); + var clientConfig = new ModConfigSpec.Builder().configure(ForgeHexConfig.Client::new); + var serverConfig = new ModConfigSpec.Builder().configure(ForgeHexConfig.Server::new); HexConfig.setCommon(config.getLeft()); HexConfig.setClient(clientConfig.getLeft()); HexConfig.setServer(serverConfig.getLeft()); - var mlc = ModLoadingContext.get(); - mlc.registerConfig(ModConfig.Type.COMMON, config.getRight()); - mlc.registerConfig(ModConfig.Type.CLIENT, clientConfig.getRight()); - mlc.registerConfig(ModConfig.Type.SERVER, serverConfig.getRight()); + modContainer.registerConfig(ModConfig.Type.COMMON, config.getRight()); + modContainer.registerConfig(ModConfig.Type.CLIENT, clientConfig.getRight()); + modContainer.registerConfig(ModConfig.Type.SERVER, serverConfig.getRight()); } public static void initRegistries() { - if (!(BuiltInRegistries.REGISTRY instanceof MappedRegistry rootRegistry)) return; - rootRegistry.unfreeze(); - - IXplatAbstractions.INSTANCE.getActionRegistry(); - IXplatAbstractions.INSTANCE.getSpecialHandlerRegistry(); - IXplatAbstractions.INSTANCE.getIotaTypeRegistry(); - IXplatAbstractions.INSTANCE.getArithmeticRegistry(); - IXplatAbstractions.INSTANCE.getContinuationTypeRegistry(); - IXplatAbstractions.INSTANCE.getEvalSoundRegistry(); - - rootRegistry.freeze(); + getModEventBus().addListener(NewRegistryEvent.class, ev -> { + ev.register(IXplatAbstractions.INSTANCE.getActionRegistry()); + ev.register(IXplatAbstractions.INSTANCE.getSpecialHandlerRegistry()); + ev.register(IXplatAbstractions.INSTANCE.getIotaTypeRegistry()); + ev.register(IXplatAbstractions.INSTANCE.getArithmeticRegistry()); + ev.register(IXplatAbstractions.INSTANCE.getContinuationTypeRegistry()); + ev.register(IXplatAbstractions.INSTANCE.getEvalSoundRegistry()); + ev.register(IXplatAbstractions.INSTANCE.getStateIngredientRegistry()); + ev.register(IXplatAbstractions.INSTANCE.getBrainsweepeeIngredientRegistry()); + }); } private static void initRegistry() { @@ -123,51 +120,59 @@ private static void initRegistry() { bind(Registries.ITEM, HexBlocks::registerBlockItems); bind(Registries.BLOCK_ENTITY_TYPE, HexBlockEntities::registerTiles); bind(Registries.ITEM, HexItems::registerItems); + bind(Registries.DATA_COMPONENT_TYPE, HexDataComponents::registerDataComponents); bind(Registries.RECIPE_SERIALIZER, HexRecipeStuffRegistry::registerSerializers); bind(Registries.RECIPE_TYPE, HexRecipeStuffRegistry::registerTypes); bind(Registries.ENTITY_TYPE, HexEntities::registerEntities); - bind(Registries.ATTRIBUTE, HexAttributes::register); - bind(Registries.MOB_EFFECT, HexMobEffects::register); - bind(Registries.POTION, HexPotions::register); - + // Testing out new registration system + HexAttributes.register(); + HexMobEffects.register(); + bind(Registries.POTION, HexPotions::registerPotions); bind(Registries.PARTICLE_TYPE, HexParticles::registerParticles); + bind(Registries.TRIGGER_TYPE, HexAdvancementTriggers::registerTriggers); + bind(HexRegistries.IOTA_TYPE, HexIotaTypes::registerTypes); bind(HexRegistries.ACTION, HexActions::register); bind(HexRegistries.SPECIAL_HANDLER, HexSpecialHandlers::register); bind(HexRegistries.ARITHMETIC, HexArithmetics::register); bind(HexRegistries.CONTINUATION_TYPE, HexContinuationTypes::registerContinuations); bind(HexRegistries.EVAL_SOUND, HexEvalSounds::register); + bind(HexRegistries.STATE_INGREDIENT, StateIngredients::register); + bind(HexRegistries.BRAINSWEEPEE_INGREDIENT, BrainsweepeeIngredients::register); ForgeHexArgumentTypeRegistry.ARGUMENT_TYPES.register(getModEventBus()); ForgeHexLootMods.REGISTRY.register(getModEventBus()); - - HexAdvancementTriggers.registerTriggers(); + ForgeHexIngredientTypes.INGREDIENT_TYPES.register(getModEventBus()); + ForgeHexAttachments.register(); RegisterMisc.register(); } // https://github.com/VazkiiMods/Botania/blob/1.18.x/Forge/src/main/java/vazkii/botania/forge/ForgeCommonInitializer.java - private static void bind(ResourceKey> registry, - Consumer> source) { + private static void bind(ResourceKey> registry, Consumer> source) { getModEventBus().addListener((RegisterEvent event) -> { if (registry.equals(event.getRegistryKey())) { - source.accept((t, rl) -> event.register(registry, rl, () -> t)); + source.accept((t, rl) -> { + event.register(registry, rl, () -> t); + }); } }); } private static void initListeners() { var modBus = getModEventBus(); - var evBus = MinecraftForge.EVENT_BUS; + var evBus = NeoForge.EVENT_BUS; + + if(FMLEnvironment.dist == Dist.CLIENT) + modBus.register(ForgeHexClientInitializer.class); - DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> modBus.register(ForgeHexClientInitializer.class)); + ForgePacketHandler.init(modBus); modBus.addListener((FMLCommonSetupEvent evt) -> evt.enqueueWork(() -> { - ForgePacketHandler.init(); HexComposting.setup(); HexStrippables.init(); // Forge does not strictly require TreeGrowers to initialize during early game stages, unlike Fabric @@ -190,17 +195,12 @@ private static void initListeners() { // We have to do these at some point when the registries are still open modBus.addListener((RegisterEvent evt) -> { if (evt.getRegistryKey().equals(Registries.ITEM)) { - CraftingHelper.register(ForgeUnsealedIngredient.ID, ForgeUnsealedIngredient.Serializer.INSTANCE); - CraftingHelper.register(ForgeModConditionalIngredient.ID, - ForgeModConditionalIngredient.Serializer.INSTANCE); HexStatistics.register(); HexLootFunctions.registerSerializers((lift, id) -> Registry.register(BuiltInRegistries.LOOT_FUNCTION_TYPE, id, lift)); } }); - evBus.register(CapClientCastingStack.class); - evBus.addListener((PlayerInteractEvent.EntityInteract evt) -> { var res = BrainsweepingEvents.interactWithBrainswept( evt.getEntity(), evt.getLevel(), evt.getHand(), evt.getTarget(), null); @@ -212,15 +212,15 @@ private static void initListeners() { evBus.addListener((LivingConversionEvent.Post evt) -> BrainsweepingEvents.copyBrainsweepPostTransformation(evt.getEntity(), evt.getOutcome())); - evBus.addListener((LivingEvent.LivingTickEvent evt) -> { + evBus.addListener((EntityTickEvent.Post evt) -> { if (evt.getEntity() instanceof ServerPlayer splayer) { OpFlight.tickDownFlight(splayer); OpAltiora.checkPlayerCollision(splayer); } }); - evBus.addListener((TickEvent.LevelTickEvent evt) -> { - if (evt.phase == TickEvent.Phase.END && evt.level instanceof ServerLevel world) { + evBus.addListener((LevelTickEvent.Post evt) -> { + if (evt.getLevel() instanceof ServerLevel world) { PlayerPositionRecorder.updateAllPlayers(world); } }); @@ -248,14 +248,13 @@ private static void initListeners() { Entity target = evt.getTarget(); if (evt.getTarget() instanceof ServerPlayer serverPlayer && target instanceof Mob mob && IXplatAbstractions.INSTANCE.isBrainswept(mob)) { - ForgePacketHandler.getNetwork() - .send(PacketDistributor.PLAYER.with(() -> serverPlayer), MsgBrainsweepAck.of(mob)); + PacketDistributor.sendToPlayer(serverPlayer, MsgBrainsweepAck.of(mob)); } }); // Implemented with a mixin on Farbc evBus.addListener((BlockEvent.BlockToolModificationEvent evt) -> { - if (!evt.isSimulated() && evt.getToolAction() == ToolActions.AXE_STRIP) { + if (!evt.isSimulated() && evt.getItemAbility() == ItemAbilities.AXE_STRIP) { BlockState bs = evt.getState(); var output = HexStrippables.STRIPPABLES.get(bs.getBlock()); if (output != null) { @@ -264,31 +263,34 @@ private static void initListeners() { } }); + evBus.addListener(RegisterBrewingRecipesEvent.class, ev -> { + HexPotions.addRecipes(ev.getBuilder(), ev.getRegistryAccess()); + }); + // Caps are cardinal components on farbc modBus.addListener(ForgeCapabilityHandler::registerCaps); - evBus.addGenericListener(ItemStack.class, ForgeCapabilityHandler::attachItemCaps); - evBus.addGenericListener(BlockEntity.class, ForgeCapabilityHandler::attachBlockEntityCaps); - evBus.addGenericListener(Entity.class, ForgeCapabilityHandler::attachEntityCaps); modBus.register(ForgeHexDataGenerators.class); - modBus.register(ForgeCapabilityHandler.class); evBus.register(CapSyncers.class); modBus.addListener((EntityAttributeModificationEvent e) -> { e.add(EntityType.PLAYER, HexAttributes.GRID_ZOOM); e.add(EntityType.PLAYER, HexAttributes.SCRY_SIGHT); + e.add(EntityType.PLAYER, HexAttributes.FEEBLE_MIND); + e.add(EntityType.PLAYER, HexAttributes.MEDIA_CONSUMPTION_MODIFIER); + e.add(EntityType.PLAYER, HexAttributes.AMBIT_RADIUS); + e.add(EntityType.PLAYER, HexAttributes.SENTINEL_RADIUS); }); if (ModList.get().isLoaded(HexInterop.Forge.CURIOS_API_ID)) { - modBus.addListener(CuriosApiInterop::onInterModEnqueue); modBus.addListener(CuriosApiInterop::onClientSetup); - DistExecutor.unsafeRunWhenOn(Dist.CLIENT, - () -> () -> modBus.addListener(CuriosRenderers::onLayerRegister)); + if(FMLEnvironment.dist == Dist.CLIENT) + modBus.addListener(CuriosRenderers::onLayerRegister); } } // aaaauughhg - private static IEventBus getModEventBus() { + public static IEventBus getModEventBus() { return KotlinModLoadingContext.Companion.get().getKEventBus(); } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/CapSyncers.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/CapSyncers.java index 89e26d4474..a5a3952072 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/CapSyncers.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/CapSyncers.java @@ -6,8 +6,8 @@ import at.petrak.hexcasting.xplat.IXplatAbstractions; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.neoforge.event.entity.player.PlayerEvent; public class CapSyncers { @SubscribeEvent diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeCapabilityHandler.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeCapabilityHandler.java index 502357ab3a..fe9bdc42ff 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeCapabilityHandler.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeCapabilityHandler.java @@ -1,13 +1,14 @@ package at.petrak.hexcasting.forge.cap; -import at.petrak.hexcasting.api.addldata.*; -import at.petrak.hexcasting.api.casting.circles.BlockEntityAbstractImpetus; +import at.petrak.hexcasting.api.addldata.ADMediaHolder; +import at.petrak.hexcasting.api.addldata.ItemDelegatingEntityIotaHolder; +import at.petrak.hexcasting.api.block.circle.BlockAbstractImpetus; import at.petrak.hexcasting.api.casting.iota.DoubleIota; import at.petrak.hexcasting.api.client.ClientCastingStack; import at.petrak.hexcasting.api.item.*; import at.petrak.hexcasting.api.misc.MediaConstants; import at.petrak.hexcasting.api.mod.HexConfig; -import at.petrak.hexcasting.common.entities.EntityWallScroll; +import at.petrak.hexcasting.common.entities.HexEntities; import at.petrak.hexcasting.common.items.HexBaubleItem; import at.petrak.hexcasting.common.lib.HexBlocks; import at.petrak.hexcasting.common.lib.HexItems; @@ -15,202 +16,93 @@ import at.petrak.hexcasting.forge.interop.curios.CuriosApiInterop; import at.petrak.hexcasting.interop.HexInterop; import at.petrak.hexcasting.xplat.IXplatAbstractions; -import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.decoration.ItemFrame; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.common.capabilities.ICapabilityProvider; -import net.minecraftforge.common.capabilities.RegisterCapabilitiesEvent; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.common.util.NonNullSupplier; -import net.minecraftforge.event.AttachCapabilitiesEvent; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.function.BooleanSupplier; -import java.util.function.Function; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; import static at.petrak.hexcasting.api.HexAPI.modLoc; public class ForgeCapabilityHandler { - /** - * Items that store an iota to their tag. - */ - public static final ResourceLocation IOTA_STORAGE_CAP = modLoc("iota_holder"); - /** - * Items that intrinsically store an iota. - */ - public static final ResourceLocation IOTA_STATIC_CAP = modLoc("iota_item"); - /** - * Items that store a variable amount of media to their tag. - */ - public static final ResourceLocation MEDIA_STORAGE_CAP = modLoc("media_holder"); - /** - * Items that statically provide media. - */ - public static final ResourceLocation MEDIA_STATIC_CAP = modLoc("media_item"); - /** - * Items that store a packaged Hex. - */ - public static final ResourceLocation HEX_HOLDER_CAP = modLoc("hex_item"); - /** - * Items that have multiple visual variants. - */ - public static final ResourceLocation VARIANT_ITEM_CAP = modLoc("variant_item"); - /** - * Items that work as pigments. - */ - public static final ResourceLocation PIGMENT_CAP = modLoc("pigment"); - public static final ResourceLocation CURIO_CAP = modLoc("curio"); - - public static final ResourceLocation IMPETUS_HANDLER = modLoc("impetus_items"); - - /** - * Used to render the pattern spiral around players while casting. - */ - public static final ResourceLocation PATTERN_SPIRAL = modLoc("pattern_spiral"); public static void registerCaps(RegisterCapabilitiesEvent evt) { - evt.register(ADMediaHolder.class); - evt.register(ADIotaHolder.class); - evt.register(ADHexHolder.class); - evt.register(ADPigment.class); - } - - public static void attachItemCaps(AttachCapabilitiesEvent evt) { - ItemStack stack = evt.getObject(); - - if (stack.getItem() instanceof MediaHolderItem holder) { - evt.addCapability(MEDIA_STORAGE_CAP, - provide(stack, HexCapabilities.MEDIA, () -> new CapItemMediaHolder(holder, stack))); - } else if (stack.is(HexItems.AMETHYST_DUST)) { - evt.addCapability(MEDIA_STATIC_CAP, provide(stack, HexCapabilities.MEDIA, () -> - new CapStaticMediaHolder(HexConfig.common()::dustMediaAmount, ADMediaHolder.AMETHYST_DUST_PRIORITY, - stack))); - } else if (stack.is(Items.AMETHYST_SHARD)) { - evt.addCapability(MEDIA_STATIC_CAP, provide(stack, HexCapabilities.MEDIA, () -> new CapStaticMediaHolder( - HexConfig.common()::shardMediaAmount, ADMediaHolder.AMETHYST_SHARD_PRIORITY, stack))); - } else if (stack.is(HexItems.CHARGED_AMETHYST)) { - evt.addCapability(MEDIA_STATIC_CAP, - provide(stack, HexCapabilities.MEDIA, () -> new CapStaticMediaHolder( - HexConfig.common()::chargedCrystalMediaAmount, ADMediaHolder.CHARGED_AMETHYST_PRIORITY, stack))); - } else if (stack.is(HexItems.QUENCHED_SHARD)) { - // no one uses the config - evt.addCapability(MEDIA_STATIC_CAP, - provide(stack, HexCapabilities.MEDIA, () -> new CapStaticMediaHolder( - () -> MediaConstants.QUENCHED_SHARD_UNIT, ADMediaHolder.QUENCHED_SHARD_PRIORITY, stack))); - } else if (stack.is(HexBlocks.QUENCHED_ALLAY.asItem())) { - // no one uses the config - evt.addCapability(MEDIA_STATIC_CAP, - provide(stack, HexCapabilities.MEDIA, () -> new CapStaticMediaHolder( - () -> MediaConstants.QUENCHED_BLOCK_UNIT, ADMediaHolder.QUENCHED_ALLAY_PRIORITY, stack))); - } - - if (stack.getItem() instanceof IotaHolderItem holder) { - evt.addCapability(IOTA_STORAGE_CAP, - provide(stack, HexCapabilities.IOTA, () -> new CapItemIotaHolder(holder, stack))); - } else if (stack.is(Items.PUMPKIN_PIE)) { - // haha yes - evt.addCapability(IOTA_STATIC_CAP, provide(stack, HexCapabilities.IOTA, () -> - new CapStaticIotaHolder((s) -> new DoubleIota(Math.PI * s.getCount()), stack))); - } - - if (stack.getItem() instanceof HexHolderItem holder) { - evt.addCapability(HEX_HOLDER_CAP, - provide(stack, HexCapabilities.STORED_HEX, () -> new CapItemHexHolder(holder, stack))); + for(Item item : BuiltInRegistries.ITEM) { + if(item instanceof MediaHolderItem holder) + evt.registerItem(HexCapabilities.Item.MEDIA, (stack, ctx) -> new CapItemMediaHolder(holder, stack), item); + if(item instanceof IotaHolderItem holder) + evt.registerItem(HexCapabilities.Item.IOTA, (stack, ctx) -> new CapItemIotaHolder(holder, stack), item); + if(item instanceof HexHolderItem holder) + evt.registerItem(HexCapabilities.Item.STORED_HEX, (stack, ctx) -> new CapItemHexHolder(holder, stack), item); + if(item instanceof VariantItem holder) + evt.registerItem(HexCapabilities.Item.VARIANT_ITEM, (stack, ctx) -> new CapItemVariantItem(holder, stack), item); + if(item instanceof PigmentItem holder) + evt.registerItem(HexCapabilities.Item.COLOR, (stack, ctx) -> new CapItemPigment(holder, stack), item); + if(item instanceof HexBaubleItem && IXplatAbstractions.INSTANCE.isModPresent(HexInterop.Forge.CURIOS_API_ID)) + CuriosApiInterop.registerCap(evt, item); } - if (stack.getItem() instanceof VariantItem variantItem) { - evt.addCapability(VARIANT_ITEM_CAP, - provide(stack, HexCapabilities.VARIANT_ITEM, () -> new CapItemVariantItem(variantItem, stack))); - } - - if (stack.getItem() instanceof PigmentItem pigment) { - evt.addCapability(PIGMENT_CAP, - provide(stack, HexCapabilities.COLOR, () -> new CapItemPigment(pigment, stack))); - } - - if (IXplatAbstractions.INSTANCE.isModPresent(HexInterop.Forge.CURIOS_API_ID) - && stack.getItem() instanceof HexBaubleItem) { - evt.addCapability(CURIO_CAP, CuriosApiInterop.curioCap(stack)); - } - } - - public static void attachEntityCaps(AttachCapabilitiesEvent evt) { - var entity = evt.getObject(); - if (entity instanceof ItemEntity item) { - evt.addCapability(IOTA_STORAGE_CAP, wrapItemEntityDelegate(item, - ItemDelegatingEntityIotaHolder.ToItemEntity::new)); - } else if (entity instanceof ItemFrame frame) { - evt.addCapability(IOTA_STORAGE_CAP, wrapItemEntityDelegate(frame, - ItemDelegatingEntityIotaHolder.ToItemFrame::new)); - } else if (entity instanceof EntityWallScroll scroll) { - evt.addCapability(IOTA_STORAGE_CAP, wrapItemEntityDelegate(scroll, - ItemDelegatingEntityIotaHolder.ToWallScroll::new)); - } else if (entity instanceof Player player) { - evt.addCapability(PATTERN_SPIRAL, provide(player, HexCapabilities.CLIENT_CASTING_STACK, - () -> new CapClientCastingStack(player, new ClientCastingStack()))); - } - } - public static void attachBlockEntityCaps(AttachCapabilitiesEvent evt) { - if (evt.getObject() instanceof BlockEntityAbstractImpetus impetus) { - evt.addCapability(IMPETUS_HANDLER, provide(impetus, ForgeCapabilities.ITEM_HANDLER, - () -> new ForgeImpetusCapability(impetus))); - } - } - - // i do not know why we need super here - private static SimpleProvider wrapItemEntityDelegate(E entity, - Function make) { - return provide(entity, HexCapabilities.IOTA, - () -> new CapEntityIotaHolder.Wrapper(make.apply(entity))); - } - - private static SimpleProvider provide(Entity entity, Capability capability, - NonNullSupplier supplier) { - return provide(entity::isRemoved, capability, supplier); - } - - private static SimpleProvider provide(BlockEntity be, Capability capability, - NonNullSupplier supplier) { - return provide(be::isRemoved, capability, supplier); - } - - public static SimpleProvider provide(ItemStack stack, Capability capability, - NonNullSupplier supplier) { - return provide(stack::isEmpty, capability, supplier); - } - - private static SimpleProvider provide(BooleanSupplier invalidated, Capability capability, - NonNullSupplier supplier) { - return new SimpleProvider<>(invalidated, capability, LazyOptional.of(supplier)); - } - - public static ICapabilityProvider makeProvider(Capability cap, U instance) { - LazyOptional lazyInstanceButNotReally = LazyOptional.of(() -> instance); - return new SimpleProvider<>(() -> false, cap, lazyInstanceButNotReally); - } - - public record SimpleProvider(BooleanSupplier invalidated, - Capability capability, - LazyOptional instance) implements ICapabilityProvider { - - @NotNull - @Override - public LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { - if (invalidated.getAsBoolean()) { - return LazyOptional.empty(); + evt.registerItem( + HexCapabilities.Item.MEDIA, + (stack, ctx) -> new CapStaticMediaHolder(HexConfig.common()::dustMediaAmount, ADMediaHolder.AMETHYST_DUST_PRIORITY, stack), + HexItems.AMETHYST_DUST + ); + evt.registerItem( + HexCapabilities.Item.MEDIA, + (stack, ctx) -> new CapStaticMediaHolder(HexConfig.common()::shardMediaAmount, ADMediaHolder.AMETHYST_SHARD_PRIORITY, stack), + Items.AMETHYST_SHARD + ); + evt.registerItem( + HexCapabilities.Item.MEDIA, + (stack, ctx) -> new CapStaticMediaHolder(HexConfig.common()::chargedCrystalMediaAmount, ADMediaHolder.CHARGED_AMETHYST_PRIORITY, stack), + HexItems.CHARGED_AMETHYST + ); + evt.registerItem( + HexCapabilities.Item.MEDIA, + (stack, ctx) -> new CapStaticMediaHolder(() -> MediaConstants.QUENCHED_SHARD_UNIT, ADMediaHolder.QUENCHED_SHARD_PRIORITY, stack), + HexItems.QUENCHED_SHARD + ); + evt.registerItem( + HexCapabilities.Item.MEDIA, + (stack, ctx) -> new CapStaticMediaHolder(() -> MediaConstants.QUENCHED_BLOCK_UNIT, ADMediaHolder.QUENCHED_ALLAY_PRIORITY, stack), + HexBlocks.QUENCHED_ALLAY.asItem() + ); + + // haha yes + evt.registerItem( + HexCapabilities.Item.IOTA, + (stack, ctx) -> new CapStaticIotaHolder((s) -> new DoubleIota(Math.PI * s.getCount()), stack), + Items.PUMPKIN_PIE + ); + + evt.registerEntity( + HexCapabilities.Entity.IOTA, + EntityType.ITEM, + (ent, ctx) -> new ItemDelegatingEntityIotaHolder.ToItemEntity(ent) + ); + evt.registerEntity( + HexCapabilities.Entity.IOTA, + EntityType.ITEM_FRAME, + (ent, ctx) -> new ItemDelegatingEntityIotaHolder.ToItemFrame(ent) + ); + evt.registerEntity( + HexCapabilities.Entity.IOTA, + HexEntities.WALL_SCROLL, + (ent, ctx) -> new ItemDelegatingEntityIotaHolder.ToWallScroll(ent) + ); + + for(Block block : BuiltInRegistries.BLOCK) { + if(block instanceof BlockAbstractImpetus imBlock) { + evt.registerBlockEntity( + Capabilities.ItemHandler.BLOCK, + imBlock.getBlockEntityType(), + (be, dir) -> new ForgeImpetusCapability(be) + ); } - - return cap == capability ? instance.cast() : LazyOptional.empty(); } } - } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeImpetusCapability.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeImpetusCapability.java index 9da53fa9a5..45d22e2eb8 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeImpetusCapability.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/ForgeImpetusCapability.java @@ -2,7 +2,7 @@ import at.petrak.hexcasting.api.casting.circles.BlockEntityAbstractImpetus; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.items.IItemHandler; +import net.neoforged.neoforge.items.IItemHandler; import org.jetbrains.annotations.NotNull; public record ForgeImpetusCapability(BlockEntityAbstractImpetus impetus) implements IItemHandler { diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/HexCapabilities.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/HexCapabilities.java index 9db3e48d0a..7856cabc5c 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/HexCapabilities.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/HexCapabilities.java @@ -1,25 +1,26 @@ package at.petrak.hexcasting.forge.cap; import at.petrak.hexcasting.api.addldata.*; -import at.petrak.hexcasting.api.client.ClientCastingStack; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.CapabilityManager; -import net.minecraftforge.common.capabilities.CapabilityToken; +import net.neoforged.neoforge.capabilities.EntityCapability; +import net.neoforged.neoforge.capabilities.ItemCapability; -import java.util.function.Supplier; +import static at.petrak.hexcasting.api.HexAPI.modLoc; public final class HexCapabilities { - public static final Capability MEDIA = CapabilityManager.get(new CapabilityToken<>() { - }); - public static final Capability IOTA = CapabilityManager.get(new CapabilityToken<>() { - }); - public static final Capability STORED_HEX = CapabilityManager.get(new CapabilityToken<>() { - }); - public static final Capability VARIANT_ITEM = CapabilityManager.get(new CapabilityToken<>() { - }); - public static final Capability COLOR = CapabilityManager.get(new CapabilityToken<>() { - }); - public static final Capability> CLIENT_CASTING_STACK = CapabilityManager.get(new CapabilityToken<>() { - }); + public static final class Item { + public static final ItemCapability MEDIA = ItemCapability.createVoid(modLoc("media_holder"), ADMediaHolder.class); + public static final ItemCapability IOTA = ItemCapability.createVoid(modLoc("iota_holder"), ADIotaHolder.class); + public static final ItemCapability STORED_HEX = ItemCapability.createVoid(modLoc("hex_holder"), ADHexHolder.class); + public static final ItemCapability VARIANT_ITEM = ItemCapability.createVoid(modLoc("variant"), ADVariantItem.class); + public static final ItemCapability COLOR = ItemCapability.createVoid(modLoc("color"), ADPigment.class); + } + + public static final class Entity { + public static final EntityCapability MEDIA = EntityCapability.createVoid(modLoc("media_holder"), ADMediaHolder.class); + public static final EntityCapability IOTA = EntityCapability.createVoid(modLoc("iota_holder"), ADIotaHolder.class); + public static final EntityCapability STORED_HEX = EntityCapability.createVoid(modLoc("hex_holder"), ADHexHolder.class); + public static final EntityCapability VARIANT_ITEM = EntityCapability.createVoid(modLoc("variant"), ADVariantItem.class); + public static final EntityCapability COLOR = EntityCapability.createVoid(modLoc("color"), ADPigment.class); + } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapClientCastingStack.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapClientCastingStack.java deleted file mode 100644 index bdba8678ca..0000000000 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapClientCastingStack.java +++ /dev/null @@ -1,24 +0,0 @@ -package at.petrak.hexcasting.forge.cap.adimpl; - -import at.petrak.hexcasting.api.client.ClientCastingStack; -import at.petrak.hexcasting.forge.cap.HexCapabilities; -import net.minecraft.world.entity.player.Player; -import net.minecraftforge.event.TickEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.LogicalSide; - -import java.util.function.Supplier; - -public record CapClientCastingStack(Player player, ClientCastingStack clientCastingStack) implements Supplier { - @Override - public ClientCastingStack get() { - return clientCastingStack; - } - - @SubscribeEvent - public static void tickClientPlayer(TickEvent.PlayerTickEvent evt) { - if (evt.side == LogicalSide.CLIENT && !evt.player.isDeadOrDying()) - evt.player.getCapability(HexCapabilities.CLIENT_CASTING_STACK).resolve() - .ifPresent(CastingStack -> CastingStack.get().tick()); - } -} diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapEntityIotaHolder.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapEntityIotaHolder.java index a8623e6249..a8e0e77ba8 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapEntityIotaHolder.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapEntityIotaHolder.java @@ -15,12 +15,6 @@ public Wrapper(ItemDelegatingEntityIotaHolder inner) { this.inner = inner; } - - @Override - public @Nullable CompoundTag readIotaTag() { - return inner.readIotaTag(); - } - @Override public boolean writeable() { return inner.writeable(); @@ -32,8 +26,8 @@ public boolean writeIota(@Nullable Iota iota, boolean simulate) { } @Override - public @Nullable Iota readIota(ServerLevel world) { - return inner.readIota(world); + public @Nullable Iota readIota() { + return inner.readIota(); } @Override diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemIotaHolder.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemIotaHolder.java index 29caaeb0d0..603742bf3c 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemIotaHolder.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapItemIotaHolder.java @@ -8,19 +8,12 @@ import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.Nullable; -public record CapItemIotaHolder(IotaHolderItem holder, - ItemStack stack) implements ADIotaHolder { +public record CapItemIotaHolder(IotaHolderItem holder, ItemStack stack) implements ADIotaHolder { @Override public @Nullable - CompoundTag readIotaTag() { - return holder.readIotaTag(stack); - } - - @Override - public @Nullable - Iota readIota(ServerLevel world) { - return holder.readIota(stack, world); + Iota readIota() { + return holder.readIota(stack); } @Override diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapStaticIotaHolder.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapStaticIotaHolder.java index f94cd93455..c0e5f947c8 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapStaticIotaHolder.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/cap/adimpl/CapStaticIotaHolder.java @@ -15,14 +15,7 @@ public record CapStaticIotaHolder(Function provider, @Override public @Nullable - CompoundTag readIotaTag() { - var iota = provider.apply(stack); - return iota == null ? null : IotaType.serialize(iota); - } - - @Override - public @Nullable - Iota readIota(ServerLevel world) { + Iota readIota() { return provider.apply(stack); } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexConditionsBuilder.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexConditionsBuilder.java index 93b1cfe529..ac7cac67af 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexConditionsBuilder.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexConditionsBuilder.java @@ -1,20 +1,18 @@ package at.petrak.hexcasting.forge.datagen; import at.petrak.hexcasting.datagen.IXplatConditionsBuilder; -import net.minecraft.advancements.CriterionTriggerInstance; -import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.advancements.Criterion; import net.minecraft.data.recipes.RecipeBuilder; +import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; -import net.minecraftforge.common.crafting.ConditionalRecipe; -import net.minecraftforge.common.crafting.conditions.ICondition; -import net.minecraftforge.common.crafting.conditions.IConditionBuilder; +import net.neoforged.neoforge.common.conditions.ICondition; +import net.neoforged.neoforge.common.conditions.IConditionBuilder; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; -import java.util.function.Consumer; public class ForgeHexConditionsBuilder implements IXplatConditionsBuilder, IConditionBuilder { private final List conditions = new ArrayList<>(); @@ -38,8 +36,8 @@ public IXplatConditionsBuilder whenModMissing(String modid) { @Override public @NotNull RecipeBuilder unlockedBy(@NotNull String string, - @NotNull CriterionTriggerInstance criterionTriggerInstance) { - return parent.unlockedBy(string, criterionTriggerInstance); + @NotNull Criterion criterion) { + return parent.unlockedBy(string, criterion); } @Override @@ -53,12 +51,9 @@ public IXplatConditionsBuilder whenModMissing(String modid) { } @Override - public void save(@NotNull Consumer consumer, @NotNull ResourceLocation resourceLocation) { - var conditionalBuilder = ConditionalRecipe.builder(); - for (ICondition condition : conditions) { - conditionalBuilder.addCondition(condition); - } - conditionalBuilder.addRecipe(recipeConsumer -> parent.save(recipeConsumer, resourceLocation)) - .build(consumer, resourceLocation); + public void save(RecipeOutput recipeOutput, ResourceLocation id) { + var out = recipeOutput.withConditions(conditions.toArray(ICondition[]::new)); + + parent.save(out, id); } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexDataGenerators.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexDataGenerators.java index c5ed351ea7..d50c7aa784 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexDataGenerators.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexDataGenerators.java @@ -28,12 +28,12 @@ import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; -import net.minecraftforge.common.Tags; -import net.minecraftforge.common.ToolActions; -import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.data.event.GatherDataEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.neoforge.common.ItemAbilities; +import net.neoforged.neoforge.common.Tags; +import net.neoforged.neoforge.common.data.DatapackBuiltinEntriesProvider; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.data.event.GatherDataEvent; import java.util.EnumMap; import java.util.List; @@ -43,12 +43,12 @@ public class ForgeHexDataGenerators { @SubscribeEvent public static void generateData(GatherDataEvent ev) { - if (System.getProperty("hexcasting.xplat_datagen") != null) { + //if (System.getProperty("hexcasting.xplat_datagen") != null) { configureXplatDatagen(ev); - } - if (System.getProperty("hexcasting.forge_datagen") != null) { - configureForgeDatagen(ev); - } + //} + //if (System.getProperty("hexcasting.neoforge_datagen") != null) { + configureNeoforgeDatagen(ev); + //} } private static void configureXplatDatagen(GatherDataEvent ev) { @@ -80,31 +80,32 @@ private static void configureXplatDatagen(GatherDataEvent ev) { } @SuppressWarnings({"DataFlowIssue", "UnreachableCode"}) - private static void configureForgeDatagen(GatherDataEvent ev) { - HexAPI.LOGGER.info("Starting Forge-specific datagen"); + private static void configureNeoforgeDatagen(GatherDataEvent ev) { + HexAPI.LOGGER.info("Starting NeoForge-specific datagen"); DataGenerator gen = ev.getGenerator(); var output = gen.getPackOutput(); var lookup = ev.getLookupProvider(); ExistingFileHelper efh = ev.getExistingFileHelper(); gen.addProvider(ev.includeServer(), new LootTableProvider( - output, Set.of(), List.of(new LootTableProvider.SubProviderEntry(HexLootTables::new, LootContextParamSets.ALL_PARAMS)) + output, Set.of(), List.of(new LootTableProvider.SubProviderEntry(HexLootTables::new, LootContextParamSets.ALL_PARAMS)), ev.getLookupProvider() )); - gen.addProvider(ev.includeServer(), new HexplatRecipes(output, INGREDIENTS, ForgeHexConditionsBuilder::new)); + gen.addProvider(ev.includeServer(), new HexplatRecipes(output, lookup, INGREDIENTS, ForgeHexConditionsBuilder::new)); // TODO: refactor? var xtags = IXplatAbstractions.INSTANCE.tags(); + var blockTagProvider = new HexBlockTagProvider(output, lookup, xtags); ((TagsProviderEFHSetter) blockTagProvider).setEFH(efh); gen.addProvider(ev.includeServer(), blockTagProvider); - var itemTagProvider = new HexItemTagProvider(output, lookup, blockTagProvider, IXplatAbstractions.INSTANCE.tags()); + var itemTagProvider = new HexItemTagProvider(output, lookup, blockTagProvider.contentsGetter(), IXplatAbstractions.INSTANCE.tags()); ((TagsProviderEFHSetter) itemTagProvider).setEFH(efh); gen.addProvider(ev.includeServer(), itemTagProvider); var hexTagProvider = new HexActionTagProvider(output, lookup); ((TagsProviderEFHSetter) hexTagProvider).setEFH(efh); gen.addProvider(ev.includeServer(), hexTagProvider); - gen.addProvider(ev.includeServer(), new ForgeHexLootModGen(output)); + gen.addProvider(ev.includeServer(), new ForgeHexLootModGen(output, ev.getLookupProvider())); } private static final IXplatIngredients INGREDIENTS = new IXplatIngredients() { @@ -115,7 +116,7 @@ public Ingredient glowstoneDust() { @Override public Ingredient leather() { - return Ingredient.of(Tags.Items.LEATHER); + return Ingredient.of(Tags.Items.LEATHERS); } @Override @@ -156,13 +157,13 @@ public EnumMap dyes() { public Ingredient stick() { return Ingredient.fromValues(Stream.of( new Ingredient.ItemValue(new ItemStack(Items.STICK)), - new Ingredient.TagValue(ItemTags.create(new ResourceLocation("forge", "rods/wooden"))) + new Ingredient.TagValue(ItemTags.create(ResourceLocation.fromNamespaceAndPath("forge", "rods/wooden"))) )); } @Override public Ingredient whenModIngredient(Ingredient defaultIngredient, String modid, Ingredient modIngredient) { - return ForgeModConditionalIngredient.of(defaultIngredient, modid, modIngredient); + return ForgeModConditionalIngredient.of(defaultIngredient, modid, modIngredient).toVanilla(); } // https://github.com/vectorwing/FarmersDelight/blob/1.18.2/src/generated/resources/data/farmersdelight/recipes/cutting/amethyst_block.json @@ -171,7 +172,7 @@ public FarmersDelightToolIngredient axeStrip() { return () -> { JsonObject object = new JsonObject(); object.addProperty("type", "farmersdelight:tool_action"); - object.addProperty("action", ToolActions.AXE_STRIP.name()); + object.addProperty("action", ItemAbilities.AXE_STRIP.name()); return object; }; } @@ -181,7 +182,7 @@ public FarmersDelightToolIngredient axeDig() { return () -> { JsonObject object = new JsonObject(); object.addProperty("type", "farmersdelight:tool_action"); - object.addProperty("action", ToolActions.AXE_DIG.name()); + object.addProperty("action", ItemAbilities.AXE_DIG.name()); return object; }; } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexLootModGen.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexLootModGen.java index d1a85e93e7..210c098ad5 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexLootModGen.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/ForgeHexLootModGen.java @@ -5,15 +5,20 @@ import at.petrak.hexcasting.forge.loot.ForgeHexAmethystLootMod; import at.petrak.hexcasting.forge.loot.ForgeHexLoreLootMod; import at.petrak.hexcasting.forge.loot.ForgeHexScrollLootMod; +import at.petrak.hexcasting.forge.loot.ForgeHexCypherLootMod; +import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -import net.minecraftforge.common.data.GlobalLootModifierProvider; -import net.minecraftforge.common.loot.LootTableIdCondition; +import net.neoforged.neoforge.common.data.GlobalLootModifierProvider; +import net.neoforged.neoforge.common.loot.LootTableIdCondition; + +import java.util.concurrent.CompletableFuture; public class ForgeHexLootModGen extends GlobalLootModifierProvider { - public ForgeHexLootModGen(PackOutput output) { - super(output, HexAPI.MOD_ID); + public ForgeHexLootModGen(PackOutput output, CompletableFuture registries) { + super(output, registries, HexAPI.MOD_ID); } @Override @@ -28,13 +33,19 @@ protected void start() { for (var injection : HexLootHandler.DEFAULT_LORE_INJECTS) { var name = "lore/%s/%s".formatted(injection.getNamespace(), injection.getPath()); add(name, new ForgeHexLoreLootMod(new LootItemCondition[]{ - LootTableIdCondition.builder(injection).build(), + LootTableIdCondition.builder(injection).build() }, HexLootHandler.DEFAULT_LORE_CHANCE)); } + for (var injection : HexLootHandler.DEFAULT_CYPHER_INJECTS) { + var name = "cypher/%s/%s".formatted(injection.getNamespace(), injection.getPath()); + add(name, new ForgeHexCypherLootMod(new LootItemCondition[]{ + LootTableIdCondition.builder(injection).build() + }, HexLootHandler.DEFAULT_CYPHER_CHANCE)); + } + add("amethyst_cluster", new ForgeHexAmethystLootMod(new LootItemCondition[]{ - LootTableIdCondition.builder(Blocks.AMETHYST_CLUSTER.getLootTable()).build() + LootTableIdCondition.builder(Blocks.AMETHYST_CLUSTER.getLootTable().location()).build() }, HexLootHandler.DEFAULT_SHARD_MODIFICATION)); - } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/TagsProviderEFHSetter.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/TagsProviderEFHSetter.java index ddda7d2966..d7a14b6358 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/TagsProviderEFHSetter.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/TagsProviderEFHSetter.java @@ -1,6 +1,6 @@ package at.petrak.hexcasting.forge.datagen; -import net.minecraftforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.common.data.ExistingFileHelper; public interface TagsProviderEFHSetter { void setEFH(ExistingFileHelper efh); diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexBlockStatesAndModels.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexBlockStatesAndModels.java index f4e30e8a42..d642eb88f3 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexBlockStatesAndModels.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexBlockStatesAndModels.java @@ -7,25 +7,31 @@ import at.petrak.hexcasting.common.blocks.circles.directrix.BlockBooleanDirectrix; import at.petrak.hexcasting.common.blocks.circles.directrix.BlockRedstoneDirectrix; import at.petrak.hexcasting.common.lib.HexBlocks; -import at.petrak.paucal.api.forge.datagen.PaucalBlockStateAndModelProvider; +import at.petrak.paucal.forge.api.datagen.PaucalBlockStateAndModelProvider; import net.minecraft.core.Direction; -import net.minecraft.data.DataGenerator; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraftforge.client.model.generators.BlockModelBuilder; -import net.minecraftforge.client.model.generators.ConfiguredModel; -import net.minecraftforge.client.model.generators.ModelBuilder; -import net.minecraftforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.client.model.generators.BlockModelBuilder; +import net.neoforged.neoforge.client.model.generators.ConfiguredModel; +import net.neoforged.neoforge.client.model.generators.ModelBuilder; +import net.neoforged.neoforge.client.model.generators.ModelFile; +import net.neoforged.neoforge.common.data.ExistingFileHelper; -import static net.minecraftforge.client.model.generators.ModelProvider.BLOCK_FOLDER; +import static net.neoforged.neoforge.client.model.generators.ModelProvider.BLOCK_FOLDER; public class HexBlockStatesAndModels extends PaucalBlockStateAndModelProvider { public HexBlockStatesAndModels(PackOutput output, ExistingFileHelper exFileHelper) { super(output, HexAPI.MOD_ID, exFileHelper); } + @Override + protected void blockAndItem(Block block, BlockModelBuilder model) { + simpleBlock(block, model); + simpleBlockItem(block, model); + } + @Override protected void registerStatesAndModels() { var slateModel = models().getExistingFile(modLoc("slate")); @@ -125,7 +131,7 @@ protected void registerStatesAndModels() { }); - blockAndItem(HexBlocks.SLATE_BLOCK, models().cubeAll("slate_block", modLoc("block/slate"))); + blockAndItem(HexBlocks.SLATE_BLOCK, models().cubeAll("slate_block", modLoc("block/slate_block"))); blockAndItem(HexBlocks.SLATE_TILES, models().cubeAll("block/deco/slate_tiles", modLoc("block/deco/slate_tiles"))); blockAndItem(HexBlocks.SLATE_BRICKS, models().cubeAll("block/deco/slate_bricks", modLoc("block/deco/slate_bricks"))); blockAndItem(HexBlocks.SLATE_BRICKS_SMALL, models().cubeAll("block/deco/slate_bricks_small", modLoc("block/deco/slate_bricks_small"))); @@ -186,7 +192,7 @@ protected void registerStatesAndModels() { blockAndItem(HexBlocks.EDIFIED_PANEL, models().cubeAll("edified_panel", modLoc("block/edified_panel"))); blockAndItem(HexBlocks.EDIFIED_TILE, models().cubeAll("edified_tile", modLoc("block/edified_tile"))); - ResourceLocation leavesParent = new ResourceLocation("block/leaves"); + ResourceLocation leavesParent = ResourceLocation.withDefaultNamespace("block/leaves"); blockAndItem(HexBlocks.AMETHYST_EDIFIED_LEAVES, models().withExistingParent("amethyst_edified_leaves", leavesParent) .texture("all", modLoc("block/amethyst_edified_leaves")) @@ -289,7 +295,7 @@ private void arrowCircleBlock(Block block, String name, ResourceLocation particl } private void impetus(Block block, String name, String stub, boolean itemModelIsLit) { - arrowCircleBlock(block, name, modLoc("block/slate"), + arrowCircleBlock(block, name, modLoc("block/slate_block"), "impetus/" + stub + "/front", "impetus/" + stub + "/top", "impetus/" + stub + "/left", @@ -300,7 +306,7 @@ private void impetus(Block block, String name, String stub, boolean itemModelIsL } private void doAllTheDirectrices() { - arrowCircleBlock(HexBlocks.EMPTY_DIRECTRIX, "directrix/empty", modLoc("block/slate"), + arrowCircleBlock(HexBlocks.EMPTY_DIRECTRIX, "directrix/empty", modLoc("block/slate_block"), "directrix/empty/front", "directrix/empty/top", "directrix/empty/left", "directrix/empty/right", "directrix/empty/back", false); @@ -339,7 +345,7 @@ private void doAllTheDirectrices() { var modelName = "block/circle/directrix/redstone/" + litness + "_" + poweredness + "_" + dir.getName(); var model = models().cube(modelName, modLoc(bottom), modLoc(top), modLoc(front), modLoc(back), modLoc(left), modLoc(right)) - .texture("particle", modLoc("block/slate")); + .texture("particle", modLoc("block/slate_block")); if (isLit && !isPowered && dir == Direction.EAST) { // getBuilder does not add the block/etc to the front if the path contains any slashes @@ -396,7 +402,7 @@ private void doAllTheDirectrices() { var modelName = "block/circle/directrix/boolean/" + litness + "_" + boolStateString + "_" + dir.getName(); var model = models().cube(modelName, modLoc(bottom), modLoc(top), modLoc(front), modLoc(back), modLoc(left), modLoc(right)) - .texture("particle", modLoc("block/slate")); + .texture("particle", modLoc("block/slate_block")); if (isLit && boolState == BlockBooleanDirectrix.State.FALSE && dir == Direction.EAST) { // getBuilder does not add the block/etc to the front if the path contains any slashes diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java index 7def15a4e4..8704d66482 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java @@ -13,35 +13,37 @@ import at.petrak.hexcasting.common.items.storage.ItemThoughtKnot; import at.petrak.hexcasting.common.lib.HexBlocks; import at.petrak.hexcasting.common.lib.HexItems; -import at.petrak.paucal.api.forge.datagen.PaucalItemModelProvider; -import net.minecraft.client.renderer.block.model.ItemTransforms; -import net.minecraft.data.DataGenerator; +import at.petrak.paucal.forge.api.datagen.PaucalItemModelProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.level.block.Block; -import net.minecraftforge.client.model.generators.ModelFile; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.registries.ForgeRegistries; +import net.neoforged.neoforge.client.model.generators.ModelFile; +import net.neoforged.neoforge.common.data.ExistingFileHelper; import java.util.Objects; +import java.util.concurrent.CompletableFuture; import java.util.function.BiFunction; public class HexItemModels extends PaucalItemModelProvider { + public HexItemModels(PackOutput output, ExistingFileHelper existingFileHelper) { super(output, HexAPI.MOD_ID, existingFileHelper); } private static final String[] PHIAL_SIZES = {"small", "medium", "large", "larger", "largest"}; - private static String getPath(Item item) { - return Objects.requireNonNull(ForgeRegistries.ITEMS.getKey(item)).getPath(); + // TODO port: maybe consider using registry lookup? But it's completable future... Not sure + private String getPath(Item item) { + return Objects.requireNonNull(BuiltInRegistries.ITEM.getKey(item)).getPath(); } - private static String getPath(Block block) { - return Objects.requireNonNull(ForgeRegistries.BLOCKS.getKey(block)).getPath(); + private String getPath(Block block) { + return Objects.requireNonNull(BuiltInRegistries.BLOCK.getKey(block)).getPath(); } @Override @@ -55,11 +57,11 @@ protected void registerModels() { simpleItem(HexItems.LORE_FRAGMENT); singleTexture(getPath(HexBlocks.CONJURED_BLOCK), - new ResourceLocation("item/generated"), - "layer0", new ResourceLocation("item/amethyst_shard")); + ResourceLocation.withDefaultNamespace("item/generated"), + "layer0", ResourceLocation.withDefaultNamespace("item/amethyst_shard")); singleTexture(getPath(HexBlocks.CONJURED_LIGHT), - new ResourceLocation("item/generated"), - "layer0", new ResourceLocation("item/amethyst_shard")); + ResourceLocation.withDefaultNamespace("item/generated"), + "layer0", ResourceLocation.withDefaultNamespace("item/amethyst_shard")); for (var age : new String[]{"pristine", "ancient"}) { for (var size : new String[]{"small", "medium", "large"}) { @@ -78,9 +80,9 @@ protected void registerModels() { .translation(-2.5f, 0f, -8f) .scale(0.4f); - singleTexture("old_staff", new ResourceLocation("item/handheld_rod"), + singleTexture("old_staff", ResourceLocation.withDefaultNamespace("item/handheld_rod"), "layer0", modLoc("item/staff/old")); - singleTexture("cherry_staff", new ResourceLocation("item/handheld_rod"), + singleTexture("cherry_staff", ResourceLocation.withDefaultNamespace("item/handheld_rod"), "layer0", modLoc("item/staff/cherry")); buildStaff(HexItems.STAFF_OAK, "oak"); @@ -99,10 +101,10 @@ protected void registerModels() { // again, doesn't like paths with slashes in them, so we do it manually buildFourVariantGaslight("item/staff/quenched", "item/staff/quenched", (name, path) -> - singleTexture(path.getPath(), new ResourceLocation("item/handheld_rod"), + singleTexture(path.getPath(), ResourceLocation.withDefaultNamespace("item/handheld_rod"), "layer0", modLoc(path.getPath()))); buildFourVariantGaslight(getPath(HexItems.QUENCHED_SHARD), "item/quenched_shard", (name, path) -> - singleTexture(path.getPath(), new ResourceLocation("item/handheld"), + singleTexture(path.getPath(), ResourceLocation.withDefaultNamespace("item/handheld"), "layer0", modLoc(path.getPath()))); buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY), "block/quenched_allay", (name, path) -> cubeAll(path.getPath(), path)); @@ -119,6 +121,7 @@ protected void registerModels() { buildSealableIotaHolder(HexItems.FOCUS, "focus", HexItems.FOCUS.numVariants()); buildSealableIotaHolder(HexItems.SPELLBOOK, "spellbook", HexItems.SPELLBOOK.numVariants()); + buildPackagedSpell(HexItems.ANCIENT_CYPHER, "ancient_cypher", HexItems.ANCIENT_CYPHER.numVariants()); buildPackagedSpell(HexItems.CYPHER, "cypher", HexItems.CYPHER.numVariants()); buildPackagedSpell(HexItems.TRINKET, "trinket", HexItems.TRINKET.numVariants()); buildPackagedSpell(HexItems.ARTIFACT, "artifact", HexItems.ARTIFACT.numVariants()); @@ -129,7 +132,7 @@ protected void registerModels() { String name = "phial_" + PHIAL_SIZES[size] + "_" + fill; singleTexture( name, - new ResourceLocation("item/generated"), + ResourceLocation.withDefaultNamespace("item/generated"), "layer0", modLoc("item/phial/" + name)); float fillProp = (float) fill / maxFill; @@ -143,17 +146,17 @@ protected void registerModels() { for (var dye : DyeColor.values()) { singleTexture(getPath(HexItems.DYE_PIGMENTS.get(dye)), - new ResourceLocation("item/generated"), + ResourceLocation.withDefaultNamespace("item/generated"), "layer0", modLoc("item/colorizer/dye_" + dye.getName())); } for (var type : ItemPridePigment.Type.values()) { singleTexture(getPath(HexItems.PRIDE_PIGMENTS.get(type)), - new ResourceLocation("item/generated"), + ResourceLocation.withDefaultNamespace("item/generated"), "layer0", modLoc("item/colorizer/pride_" + type.getName())); } - singleTexture(getPath(HexItems.UUID_PIGMENT), new ResourceLocation("item/generated"), + singleTexture(getPath(HexItems.UUID_PIGMENT), ResourceLocation.withDefaultNamespace("item/generated"), "layer0", modLoc("item/colorizer/uuid")); - singleTexture(getPath(HexItems.DEFAULT_PIGMENT), new ResourceLocation("item/generated"), + singleTexture(getPath(HexItems.DEFAULT_PIGMENT), ResourceLocation.withDefaultNamespace("item/generated"), "layer0", modLoc("item/colorizer/uuid")); simpleItem(modLoc("slate_blank")); @@ -204,16 +207,16 @@ protected void registerModels() { getBuilder(getPath(HexBlocks.EDIFIED_SLAB)).parent( new ModelFile.UncheckedModelFile(modLoc("block/edified_slab"))); getBuilder(getPath(HexBlocks.EDIFIED_BUTTON)).parent( - new ModelFile.UncheckedModelFile(new ResourceLocation("block/button_inventory"))) + new ModelFile.UncheckedModelFile(ResourceLocation.withDefaultNamespace("block/button_inventory"))) .texture("texture", modLoc("block/edified_planks")); getBuilder(getPath(HexBlocks.EDIFIED_PRESSURE_PLATE)) .parent(new ModelFile.UncheckedModelFile(modLoc("block/edified_pressure_plate"))); } private void buildThoughtKnot() { - var unwritten = singleTexture("thought_knot", new ResourceLocation("item/generated"), + var unwritten = singleTexture("thought_knot", ResourceLocation.withDefaultNamespace("item/generated"), "layer0", modLoc("item/thought_knot")); - var written = withExistingParent("thought_knot_written", new ResourceLocation("item/generated")) + var written = withExistingParent("thought_knot_written", ResourceLocation.withDefaultNamespace("item/generated")) .texture("layer0", modLoc("item/thought_knot")) .texture("layer1", modLoc("item/thought_knot_overlay")); getBuilder("thought_knot") @@ -227,14 +230,14 @@ private void buildSealableIotaHolder(Item item, String stub, int numVariants) { var name = getPath(item); var builder = getBuilder(name); for (int i = 0; i < numVariants; i++) { - var plain = i == 0 ? singleTexture(name, new ResourceLocation("item/generated"), + var plain = i == 0 ? singleTexture(name, ResourceLocation.withDefaultNamespace("item/generated"), "layer0", modLoc("item/cad/" + i + "_" + stub + "_empty")) - : withExistingParent(name + "_" + i, new ResourceLocation("item/generated")) + : withExistingParent(name + "_" + i, ResourceLocation.withDefaultNamespace("item/generated")) .texture("layer0", modLoc("item/cad/" + i + "_" + stub + "_empty")); - var unsealed = withExistingParent(name + "_" + i + "_filled", new ResourceLocation("item/generated")) + var unsealed = withExistingParent(name + "_" + i + "_filled", ResourceLocation.withDefaultNamespace("item/generated")) .texture("layer0", modLoc("item/cad/" + i + "_" + stub + "_filled")) .texture("layer1", modLoc("item/cad/" + i + "_" + stub + "_filled_overlay")); - var sealed = withExistingParent(name + "_" + i + "_sealed", new ResourceLocation("item/generated")) + var sealed = withExistingParent(name + "_" + i + "_sealed", ResourceLocation.withDefaultNamespace("item/generated")) .texture("layer0", modLoc("item/cad/" + i + "_" + stub + "_sealed")) .texture("layer1", modLoc("item/cad/" + i + "_" + stub + "_sealed_overlay")); builder.override().predicate(ItemFocus.VARIANT_PRED, i).predicate(ItemFocus.OVERLAY_PRED, 0f) @@ -257,7 +260,7 @@ private void buildScroll(Item item, String size) { } private void buildStaff(Item item, String name) { - singleTexture("item/" + getPath(item), new ResourceLocation("item/handheld_rod"), + singleTexture("item/" + getPath(item), ResourceLocation.withDefaultNamespace("item/handheld_rod"), "layer0", modLoc("item/staff/" + name)); getBuilder(getPath(item)) .override() @@ -275,11 +278,11 @@ private void buildPackagedSpell(Item item, String stub, int numVariants) { var name = getPath(item); var builder = getBuilder(name); for (int i = 0; i < numVariants; i++) { - var plain = i == 0 ? singleTexture(name, new ResourceLocation("item/generated"), + var plain = i == 0 ? singleTexture(name, ResourceLocation.withDefaultNamespace("item/generated"), "layer0", modLoc("item/cad/" + i + "_" + stub)) - : withExistingParent(name + "_" + i, new ResourceLocation("item/generated")) + : withExistingParent(name + "_" + i, ResourceLocation.withDefaultNamespace("item/generated")) .texture("layer0", modLoc("item/cad/" + i + "_" + stub)); - var filled = withExistingParent(name + "_" + i + "_filled", new ResourceLocation("item/generated")) + var filled = withExistingParent(name + "_" + i + "_filled", ResourceLocation.withDefaultNamespace("item/generated")) .texture("layer0", modLoc("item/cad/" + i + "_" + stub)) .texture("layer1", modLoc("item/cad/" + i + "_" + stub + "_overlay")); builder.override().predicate(ItemFocus.VARIANT_PRED, i).predicate(ItemPackagedHex.HAS_PATTERNS_PRED, -0.01f) diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/CuriosApiInterop.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/CuriosApiInterop.java index dfb750c35a..2d13ccb6d9 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/CuriosApiInterop.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/CuriosApiInterop.java @@ -3,25 +3,19 @@ import at.petrak.hexcasting.api.misc.DiscoveryHandlers; import at.petrak.hexcasting.common.items.HexBaubleItem; import at.petrak.hexcasting.common.items.magic.ItemCreativeUnlocker; -import at.petrak.hexcasting.forge.cap.ForgeCapabilityHandler; -import at.petrak.hexcasting.interop.HexInterop; import com.google.common.collect.Multimap; +import net.minecraft.core.Holder; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.common.capabilities.ICapabilityProvider; -import net.minecraftforge.fml.InterModComms; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; -import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent; +import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; import top.theillusivec4.curios.api.CuriosCapability; import top.theillusivec4.curios.api.SlotContext; -import top.theillusivec4.curios.api.SlotTypeMessage; -import top.theillusivec4.curios.api.SlotTypePreset; import top.theillusivec4.curios.api.type.capability.ICurio; -import java.util.UUID; -import java.util.concurrent.atomic.AtomicReference; - public class CuriosApiInterop { static class Wrapper implements ICurio { private final ItemStack stack; @@ -42,40 +36,35 @@ public ItemStack getStack() { } @Override - public Multimap getAttributeModifiers(SlotContext slotContext, UUID uuid) { - var map = ICurio.super.getAttributeModifiers(slotContext, uuid); + public Multimap, AttributeModifier> getAttributeModifiers(SlotContext slotContext, ResourceLocation id) { + var map = ICurio.super.getAttributeModifiers(slotContext, id); map.putAll(this.bauble.getHexBaubleAttrs(this.stack)); return map; } } - public static ICapabilityProvider curioCap(ItemStack stack) { - return ForgeCapabilityHandler.makeProvider(CuriosCapability.ITEM, new Wrapper(stack)); - } - public static void init() { DiscoveryHandlers.addDebugItemDiscoverer((player, type) -> { - AtomicReference result = new AtomicReference<>(ItemStack.EMPTY); - player.getCapability(CuriosCapability.INVENTORY).ifPresent(handler -> { - for (var stacksHandler : handler.getCurios().values()) { + var inv = player.getCapability(CuriosCapability.INVENTORY); + + if(inv != null) { + for (var stacksHandler : inv.getCurios().values()) { var stacks = stacksHandler.getStacks(); for (int i = 0; i < stacks.getSlots(); i++) { var stack = stacks.getStackInSlot(i); if (ItemCreativeUnlocker.isDebug(stack, type)) { - result.set(stack); - return; + return stack; } } } - }); - return result.get(); + } + return ItemStack.EMPTY; }); } - public static void onInterModEnqueue(final InterModEnqueueEvent event) { - InterModComms.sendTo(HexInterop.Forge.CURIOS_API_ID, SlotTypeMessage.REGISTER_TYPE, - () -> SlotTypePreset.HEAD.getMessageBuilder().build()); + public static void registerCap(RegisterCapabilitiesEvent evt, Item item) { + evt.registerItem(CuriosCapability.ITEM, (stack, ctx) -> new Wrapper(stack), item); } public static void onClientSetup(final FMLClientSetupEvent event) { diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/CuriosRenderers.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/CuriosRenderers.java index 3ec7edd483..a7785611ee 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/CuriosRenderers.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/CuriosRenderers.java @@ -8,12 +8,9 @@ import net.minecraft.client.model.geom.builders.CubeListBuilder; import net.minecraft.client.model.geom.builders.LayerDefinition; import net.minecraft.client.model.geom.builders.MeshDefinition; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.EntityRenderersEvent; +import net.neoforged.neoforge.client.event.EntityRenderersEvent; import top.theillusivec4.curios.api.client.CuriosRendererRegistry; -@OnlyIn(Dist.CLIENT) public class CuriosRenderers { public static void register() { CuriosRendererRegistry.register(HexItems.SCRYING_LENS, () -> new LensCurioRenderer(Minecraft.getInstance().getEntityModels().bakeLayer(LensCurioRenderer.LAYER))); diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/LensCurioRenderer.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/LensCurioRenderer.java index 38f5ff065f..a9f590d950 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/LensCurioRenderer.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/curios/LensCurioRenderer.java @@ -19,7 +19,7 @@ import top.theillusivec4.curios.api.client.ICurioRenderer; public class LensCurioRenderer implements ICurioRenderer { - public static final ModelLayerLocation LAYER = new ModelLayerLocation(new ResourceLocation(HexAPI.MOD_ID, "lens"), "lens"); + public static final ModelLayerLocation LAYER = new ModelLayerLocation(ResourceLocation.fromNamespaceAndPath(HexAPI.MOD_ID, "lens"), "lens"); private final HumanoidModel model; diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java index 6dddb8015a..9c739a32a0 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java @@ -1,9 +1,11 @@ package at.petrak.hexcasting.forge.interop.jei; import at.petrak.hexcasting.client.ClientTickCounter; +import at.petrak.hexcasting.common.casting.actions.spells.OpEdifySapling; import at.petrak.hexcasting.common.recipe.BrainsweepRecipe; import com.mojang.blaze3d.systems.RenderSystem; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; +import mezz.jei.api.gui.builder.ITooltipBuilder; import mezz.jei.api.gui.drawable.IDrawable; import mezz.jei.api.gui.drawable.IDrawableStatic; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; @@ -18,8 +20,6 @@ import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import org.jetbrains.annotations.NotNull; import java.util.Collections; @@ -44,16 +44,19 @@ public BrainsweepRecipeCategory(IGuiHelper guiHelper) { } @Override - @OnlyIn(Dist.CLIENT) public @NotNull Component getTitle() { return localizedName; } @Override - public @NotNull - IDrawable getBackground() { - return background; + public int getWidth() { + return background.getWidth(); + } + + @Override + public int getHeight() { + return background.getHeight(); } @Override @@ -63,19 +66,16 @@ IDrawable getIcon() { } @Override - public @NotNull - List getTooltipStrings(@NotNull BrainsweepRecipe recipe, - @NotNull IRecipeSlotsView recipeSlotsView, double mouseX, double mouseY) { + public void getTooltip(ITooltipBuilder tooltip, BrainsweepRecipe recipe, IRecipeSlotsView recipeSlotsView, double mouseX, double mouseY) { if (37 <= mouseX && mouseX <= 37 + 26 && 19 <= mouseY && mouseY <= 19 + 48) { Minecraft mc = Minecraft.getInstance(); - return recipe.entityIn().getTooltip(mc.options.advancedItemTooltips); + tooltip.addAll(recipe.entityIn().getTooltip(mc.options.advancedItemTooltips)); } - - return Collections.emptyList(); } @Override public void draw(@NotNull BrainsweepRecipe recipe, @NotNull IRecipeSlotsView recipeSlotsView, @NotNull GuiGraphics graphics, double mouseX, double mouseY) { + background.draw(graphics); ClientLevel level = Minecraft.getInstance().level; if (level != null) { var example = recipe.entityIn().exampleEntity(level); diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/EdifyRecipeCategory.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/EdifyRecipeCategory.java index 84ab9bab31..10c8d91a44 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/EdifyRecipeCategory.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/EdifyRecipeCategory.java @@ -5,18 +5,18 @@ import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.drawable.IDrawable; import mezz.jei.api.gui.drawable.IDrawableStatic; +import mezz.jei.api.gui.ingredient.IRecipeSlotsView; import mezz.jei.api.helpers.IGuiHelper; import mezz.jei.api.recipe.IFocusGroup; import mezz.jei.api.recipe.RecipeIngredientRole; import mezz.jei.api.recipe.RecipeType; import mezz.jei.api.recipe.category.IRecipeCategory; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import org.jetbrains.annotations.NotNull; import static at.petrak.hexcasting.api.HexAPI.modLoc; @@ -37,14 +37,23 @@ public EdifyRecipeCategory(IGuiHelper guiHelper) { } @Override - @OnlyIn(Dist.CLIENT) public @NotNull Component getTitle() { return localizedName; } @Override - public @NotNull IDrawable getBackground() { - return background; + public int getWidth() { + return background.getWidth(); + } + + @Override + public int getHeight() { + return background.getHeight(); + } + + @Override + public void draw(OpEdifySapling recipe, IRecipeSlotsView recipeSlotsView, GuiGraphics guiGraphics, double mouseX, double mouseY) { + background.draw(guiGraphics); } @Override diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/HexJEIPlugin.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/HexJEIPlugin.java index 32572ba10c..6e708cfacd 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/HexJEIPlugin.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/HexJEIPlugin.java @@ -17,6 +17,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; @@ -57,7 +58,7 @@ public void registerRecipes(@NotNull IRecipeRegistration registration) { Level level = Minecraft.getInstance().level; if (level != null) { registration.addRecipes(BRAINSWEEPING, - level.getRecipeManager().getAllRecipesFor(HexRecipeStuffRegistry.BRAINSWEEP_TYPE)); + level.getRecipeManager().getAllRecipesFor(HexRecipeStuffRegistry.BRAINSWEEP_TYPE).stream().map(RecipeHolder::value).toList()); } if (PhialRecipeStackBuilder.shouldAddRecipe()) { diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PhialRecipeCategory.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PhialRecipeCategory.java index 23a4272a4e..46d1645998 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PhialRecipeCategory.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PhialRecipeCategory.java @@ -1,21 +1,22 @@ package at.petrak.hexcasting.forge.interop.jei; import at.petrak.hexcasting.api.mod.HexTags; +import at.petrak.hexcasting.common.casting.actions.spells.OpEdifySapling; import at.petrak.hexcasting.common.casting.actions.spells.OpMakeBattery; import at.petrak.hexcasting.interop.utils.PhialRecipeStackBuilder; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.drawable.IDrawable; import mezz.jei.api.gui.drawable.IDrawableStatic; +import mezz.jei.api.gui.ingredient.IRecipeSlotsView; import mezz.jei.api.helpers.IGuiHelper; import mezz.jei.api.recipe.IFocusGroup; import mezz.jei.api.recipe.RecipeIngredientRole; import mezz.jei.api.recipe.RecipeType; import mezz.jei.api.recipe.category.IRecipeCategory; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Ingredient; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import org.jetbrains.annotations.NotNull; import static at.petrak.hexcasting.api.HexAPI.modLoc; @@ -36,14 +37,23 @@ public PhialRecipeCategory(IGuiHelper guiHelper) { } @Override - @OnlyIn(Dist.CLIENT) public @NotNull Component getTitle() { return localizedName; } @Override - public @NotNull IDrawable getBackground() { - return background; + public int getWidth() { + return background.getWidth(); + } + + @Override + public int getHeight() { + return background.getHeight(); + } + + @Override + public void draw(OpMakeBattery recipe, IRecipeSlotsView recipeSlotsView, GuiGraphics guiGraphics, double mouseX, double mouseY) { + background.draw(guiGraphics); } @Override diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexArgumentTypeRegistry.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexArgumentTypeRegistry.java index 4a3450372a..4dfa83695f 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexArgumentTypeRegistry.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexArgumentTypeRegistry.java @@ -1,30 +1,30 @@ package at.petrak.hexcasting.forge.lib; import at.petrak.hexcasting.api.HexAPI; -import at.petrak.hexcasting.common.command.PatternResLocArgument; +import at.petrak.hexcasting.common.command.PatternResKeyArgument; import com.mojang.brigadier.arguments.ArgumentType; import net.minecraft.commands.synchronization.ArgumentTypeInfo; import net.minecraft.commands.synchronization.ArgumentTypeInfos; import net.minecraft.commands.synchronization.SingletonArgumentInfo; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.minecraft.core.registries.Registries; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; // ArgumentTypeInfos.java public class ForgeHexArgumentTypeRegistry { public static final DeferredRegister> ARGUMENT_TYPES = DeferredRegister.create( - ForgeRegistries.COMMAND_ARGUMENT_TYPES, HexAPI.MOD_ID); + Registries.COMMAND_ARGUMENT_TYPE, HexAPI.MOD_ID); // how fucking ergonomic - public static final RegistryObject.Template>> - PATTERN_RESLOC = register(PatternResLocArgument.class, + public static final DeferredHolder, ArgumentTypeInfo.Template>> + PATTERN_RESLOC = register(PatternResKeyArgument.class, "pattern", - SingletonArgumentInfo.contextFree(PatternResLocArgument::id) + SingletonArgumentInfo.contextFree(PatternResKeyArgument::id) ); private static , T extends ArgumentTypeInfo.Template, I extends ArgumentTypeInfo> - RegistryObject> register( + DeferredHolder, ArgumentTypeInfo> register( Class clazz, String name, ArgumentTypeInfo ati) { diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexAttachments.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexAttachments.java new file mode 100644 index 0000000000..ce096c70bd --- /dev/null +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexAttachments.java @@ -0,0 +1,23 @@ +package at.petrak.hexcasting.forge.lib; + +import at.petrak.hexcasting.api.HexAPI; +import at.petrak.hexcasting.api.client.ClientCastingStack; +import at.petrak.hexcasting.forge.ForgeHexInitializer; +import net.neoforged.neoforge.attachment.AttachmentType; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.NeoForgeRegistries; + +import java.util.function.Supplier; + +public class ForgeHexAttachments { + private static final DeferredRegister> ATTACHMENT_TYPES = DeferredRegister.create(NeoForgeRegistries.ATTACHMENT_TYPES, HexAPI.MOD_ID); + + // TODO port: maybe make client-side only? + public static final Supplier> CLIENT_CASTING_STACK = ATTACHMENT_TYPES.register( + "casting_stack", () -> AttachmentType.builder(ClientCastingStack::new).build() + ); + + public static void register() { + ATTACHMENT_TYPES.register(ForgeHexInitializer.getModEventBus()); + } +} diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexIngredientTypes.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexIngredientTypes.java new file mode 100644 index 0000000000..e4361c7bce --- /dev/null +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexIngredientTypes.java @@ -0,0 +1,29 @@ +package at.petrak.hexcasting.forge.lib; + +import at.petrak.hexcasting.api.HexAPI; +import at.petrak.hexcasting.forge.loot.ForgeHexAmethystLootMod; +import at.petrak.hexcasting.forge.loot.ForgeHexCypherLootMod; +import at.petrak.hexcasting.forge.loot.ForgeHexLoreLootMod; +import at.petrak.hexcasting.forge.loot.ForgeHexScrollLootMod; +import at.petrak.hexcasting.forge.recipe.ForgeModConditionalIngredient; +import at.petrak.hexcasting.forge.recipe.ForgeUnsealedIngredient; +import com.mojang.serialization.MapCodec; +import net.neoforged.neoforge.common.crafting.IngredientType; +import net.neoforged.neoforge.common.loot.IGlobalLootModifier; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.NeoForgeRegistries; + +import java.util.function.Supplier; + +public class ForgeHexIngredientTypes { + public static final DeferredRegister> INGREDIENT_TYPES = + DeferredRegister.create(NeoForgeRegistries.Keys.INGREDIENT_TYPES, HexAPI.MOD_ID); + + public static final Supplier> UNSEALED_INGREDIENT = + INGREDIENT_TYPES.register("unsealed", + () -> new IngredientType<>(ForgeUnsealedIngredient.CODEC, ForgeUnsealedIngredient.STREAM_CODEC)); + public static final Supplier> MOD_CONDITIONAL_INGREDIENT = + INGREDIENT_TYPES.register("mod_conditional", + () -> new IngredientType<>(ForgeModConditionalIngredient.CODEC, ForgeModConditionalIngredient.STREAM_CODEC)); +} diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexLootMods.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexLootMods.java index a967358df2..e6e36db9b4 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexLootMods.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/lib/ForgeHexLootMods.java @@ -4,20 +4,25 @@ import at.petrak.hexcasting.forge.loot.ForgeHexAmethystLootMod; import at.petrak.hexcasting.forge.loot.ForgeHexLoreLootMod; import at.petrak.hexcasting.forge.loot.ForgeHexScrollLootMod; +import at.petrak.hexcasting.forge.loot.ForgeHexCypherLootMod; import com.mojang.serialization.Codec; -import net.minecraftforge.common.loot.IGlobalLootModifier; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import com.mojang.serialization.MapCodec; +import net.minecraft.core.registries.Registries; +import net.neoforged.neoforge.common.loot.IGlobalLootModifier; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.NeoForgeRegistries; public class ForgeHexLootMods { - public static final DeferredRegister> REGISTRY = DeferredRegister.create( - ForgeRegistries.Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, HexAPI.MOD_ID); + public static final DeferredRegister> REGISTRY = DeferredRegister.create( + NeoForgeRegistries.Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, HexAPI.MOD_ID); - public static final RegistryObject> INJECT_SCROLLS = REGISTRY.register( + public static final DeferredHolder, MapCodec> INJECT_SCROLLS = REGISTRY.register( "inject_scrolls", ForgeHexScrollLootMod.CODEC); - public static final RegistryObject> INJECT_LORE = REGISTRY.register( + public static final DeferredHolder, MapCodec> INJECT_LORE = REGISTRY.register( "inject_lore", ForgeHexLoreLootMod.CODEC); - public static final RegistryObject> AMETHYST = REGISTRY.register( + public static final DeferredHolder, MapCodec> INJECT_CYPHERS = REGISTRY.register( + "inject_cyphers", ForgeHexCypherLootMod.CODEC); + public static final DeferredHolder, MapCodec> AMETHYST = REGISTRY.register( "amethyst_cluster", ForgeHexAmethystLootMod.CODEC); } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexAmethystLootMod.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexAmethystLootMod.java index 671e9cec5b..05030e991c 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexAmethystLootMod.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexAmethystLootMod.java @@ -5,19 +5,21 @@ import at.petrak.hexcasting.forge.lib.ForgeHexLootMods; import com.google.common.base.Suppliers; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import net.minecraft.core.registries.Registries; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -import net.minecraftforge.common.loot.LootModifier; +import net.neoforged.neoforge.common.loot.LootModifier; import org.jetbrains.annotations.NotNull; import java.util.function.Supplier; public class ForgeHexAmethystLootMod extends LootModifier { - public static final Supplier> CODEC = - Suppliers.memoize(() -> RecordCodecBuilder.create( + public static final Supplier> CODEC = + Suppliers.memoize(() -> RecordCodecBuilder.mapCodec( inst -> codecStart(inst).and( Codec.DOUBLE.fieldOf("shardDelta").forGetter(it -> it.shardDelta) ).apply(inst, ForgeHexAmethystLootMod::new) @@ -33,7 +35,11 @@ public ForgeHexAmethystLootMod(LootItemCondition[] conditionsIn, double shardDel @Override protected @NotNull ObjectArrayList doApply(ObjectArrayList generatedLoot, LootContext context) { - var injectPool = context.getResolver().getLootTable(HexLootHandler.TABLE_INJECT_AMETHYST_CLUSTER); + var injectPool = context.getResolver() + .lookupOrThrow(Registries.LOOT_TABLE) + .getOrThrow(HexLootHandler.TABLE_INJECT_AMETHYST_CLUSTER) + .value(); + //noinspection deprecation injectPool.getRandomItemsRaw(context, generatedLoot::add); for (var stack : generatedLoot) { @@ -44,7 +50,7 @@ public ForgeHexAmethystLootMod(LootItemCondition[] conditionsIn, double shardDel } @Override - public Codec codec() { + public MapCodec codec() { return ForgeHexLootMods.AMETHYST.get(); } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexCypherLootMod.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexCypherLootMod.java new file mode 100644 index 0000000000..ad5e2d13c7 --- /dev/null +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexCypherLootMod.java @@ -0,0 +1,49 @@ +package at.petrak.hexcasting.forge.loot; + +import at.petrak.hexcasting.common.lib.HexItems; +import at.petrak.hexcasting.common.loot.AddHexToAncientCypherFunc; +import at.petrak.hexcasting.forge.lib.ForgeHexLootMods; +import com.google.common.base.Suppliers; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; +import net.neoforged.neoforge.common.loot.LootModifier; +import org.jetbrains.annotations.NotNull; + +import java.util.function.Supplier; + +public class ForgeHexCypherLootMod extends LootModifier { + public static final Supplier> CODEC = + Suppliers.memoize(() -> RecordCodecBuilder.mapCodec( + inst -> codecStart(inst).and( + Codec.DOUBLE.fieldOf("chance").forGetter(it -> it.chance) + ).apply(inst, ForgeHexCypherLootMod::new) + )); + + public final double chance; + + public ForgeHexCypherLootMod(LootItemCondition[] conditionsIn, double chance) { + super(conditionsIn); + this.chance = chance; + } + + @Override + protected @NotNull ObjectArrayList doApply(ObjectArrayList generatedLoot, + LootContext context) { + if (context.getRandom().nextDouble() < this.chance) { + var newStack = new ItemStack(HexItems.ANCIENT_CYPHER); + AddHexToAncientCypherFunc.doStatic(newStack, context.getRandom()); + generatedLoot.add(newStack); + } + return generatedLoot; + } + + @Override + public MapCodec codec() { + return ForgeHexLootMods.INJECT_CYPHERS.get(); + } +} diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexLoreLootMod.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexLoreLootMod.java index e5de13a237..b12b8a85df 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexLoreLootMod.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexLoreLootMod.java @@ -4,19 +4,20 @@ import at.petrak.hexcasting.forge.lib.ForgeHexLootMods; import com.google.common.base.Suppliers; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -import net.minecraftforge.common.loot.LootModifier; +import net.neoforged.neoforge.common.loot.LootModifier; import org.jetbrains.annotations.NotNull; import java.util.function.Supplier; public class ForgeHexLoreLootMod extends LootModifier { - public static final Supplier> CODEC = - Suppliers.memoize(() -> RecordCodecBuilder.create( + public static final Supplier> CODEC = + Suppliers.memoize(() -> RecordCodecBuilder.mapCodec( inst -> codecStart(inst).and( Codec.DOUBLE.fieldOf("chance").forGetter(it -> it.chance) ).apply(inst, ForgeHexLoreLootMod::new) @@ -39,7 +40,7 @@ public ForgeHexLoreLootMod(LootItemCondition[] conditionsIn, double chance) { } @Override - public Codec codec() { + public MapCodec codec() { return ForgeHexLootMods.INJECT_LORE.get(); } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexScrollLootMod.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexScrollLootMod.java index ffae0a85ce..107c95a647 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexScrollLootMod.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexScrollLootMod.java @@ -6,25 +6,26 @@ import at.petrak.hexcasting.forge.lib.ForgeHexLootMods; import com.google.common.base.Suppliers; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -import net.minecraftforge.common.loot.IGlobalLootModifier; -import net.minecraftforge.common.loot.LootModifier; +import net.neoforged.neoforge.common.loot.IGlobalLootModifier; +import net.neoforged.neoforge.common.loot.LootModifier; import org.jetbrains.annotations.NotNull; import java.util.function.Supplier; public class ForgeHexScrollLootMod extends LootModifier { - public static final Supplier> CODEC = - Suppliers.memoize(() -> RecordCodecBuilder.create( + public static final Supplier> CODEC = + Suppliers.memoize(() -> RecordCodecBuilder.mapCodec( inst -> codecStart(inst).and( Codec.INT.fieldOf("countRange").forGetter(it -> it.countRange) ).apply(inst, ForgeHexScrollLootMod::new) )); - + public final int countRange; public ForgeHexScrollLootMod(LootItemCondition[] conditionsIn, int countRange) { @@ -38,14 +39,14 @@ public ForgeHexScrollLootMod(LootItemCondition[] conditionsIn, int countRange) { int count = HexLootHandler.getScrollCount(this.countRange, context.getRandom()); for (int i = 0; i < count; i++) { var newStack = new ItemStack(HexItems.SCROLL_LARGE); - AddPerWorldPatternToScrollFunc.doStatic(newStack, context); + AddPerWorldPatternToScrollFunc.doStatic(newStack, context.getRandom(), context.getLevel().getServer().overworld()); generatedLoot.add(newStack); } return generatedLoot; } @Override - public Codec codec() { + public MapCodec codec() { return ForgeHexLootMods.INJECT_SCROLLS.get(); } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/mixin/ForgeAccessorBuiltInRegistries.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/mixin/ForgeAccessorBuiltInRegistries.java deleted file mode 100644 index b086d8714d..0000000000 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/mixin/ForgeAccessorBuiltInRegistries.java +++ /dev/null @@ -1,25 +0,0 @@ -package at.petrak.hexcasting.forge.mixin; - -import net.minecraft.core.DefaultedRegistry; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceKey; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(BuiltInRegistries.class) -public interface ForgeAccessorBuiltInRegistries { - @Invoker("registerDefaulted") - static DefaultedRegistry hex$registerDefaulted(ResourceKey> registryName, - String defaultId, - BuiltInRegistries.RegistryBootstrap bootstrap) { - throw new IllegalStateException(); - } - - @Invoker("registerSimple") - static Registry hex$registerSimple(ResourceKey> registryName, - BuiltInRegistries.RegistryBootstrap bootstrap) { - throw new IllegalStateException(); - } -} - diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/mixin/ForgeMixinTagsProvider.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/mixin/ForgeMixinTagsProvider.java index e815506337..4d731fac7e 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/mixin/ForgeMixinTagsProvider.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/mixin/ForgeMixinTagsProvider.java @@ -2,7 +2,7 @@ import at.petrak.hexcasting.forge.datagen.TagsProviderEFHSetter; import net.minecraft.data.tags.TagsProvider; -import net.minecraftforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.common.data.ExistingFileHelper; import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -25,7 +25,7 @@ public void setEFH(ExistingFileHelper efh) { @Redirect(method = "missing(Lnet/minecraft/tags/TagEntry;)Z", at = @At( value = "FIELD", - target = "Lnet/minecraft/data/tags/TagsProvider;existingFileHelper:Lnet/minecraftforge/common/data/ExistingFileHelper;", + target = "Lnet/minecraft/data/tags/TagsProvider;existingFileHelper:Lnet/neoforged/neoforge/common/data/ExistingFileHelper;", opcode = Opcodes.GETFIELD), remap = false) private ExistingFileHelper hex$missingRedirect(TagsProvider instance) { @@ -34,9 +34,9 @@ public void setEFH(ExistingFileHelper efh) { return actualFileHelper; } - @Redirect(method = "lambda$getOrCreateRawBuilder$9(Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/tags/TagBuilder;", at = @At( + @Redirect(method = "getOrCreateRawBuilder", at = @At( value = "FIELD", - target = "Lnet/minecraft/data/tags/TagsProvider;existingFileHelper:Lnet/minecraftforge/common/data/ExistingFileHelper;", + target = "Lnet/minecraft/data/tags/TagsProvider;existingFileHelper:Lnet/neoforged/neoforge/common/data/ExistingFileHelper;", opcode = Opcodes.GETFIELD), remap = false) private ExistingFileHelper hex$getOrCreateRawBuilderRedirect(TagsProvider instance) { diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/ForgePacketHandler.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/ForgePacketHandler.java index 78485aa6f9..5245c0c3a0 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/ForgePacketHandler.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/ForgePacketHandler.java @@ -1,82 +1,69 @@ package at.petrak.hexcasting.forge.network; import at.petrak.hexcasting.common.msgs.*; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; -import net.minecraftforge.network.NetworkEvent; -import net.minecraftforge.network.NetworkRegistry; -import net.minecraftforge.network.simple.SimpleChannel; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; +import net.neoforged.neoforge.network.handling.IPayloadHandler; +import net.neoforged.neoforge.network.registration.PayloadRegistrar; import org.apache.logging.log4j.util.TriConsumer; -import java.util.function.BiConsumer; import java.util.function.Consumer; -import java.util.function.Supplier; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; public class ForgePacketHandler { - private static final String PROTOCOL_VERSION = "1"; - private static final SimpleChannel NETWORK = NetworkRegistry.newSimpleChannel( - modLoc("main"), - () -> PROTOCOL_VERSION, - PROTOCOL_VERSION::equals, - PROTOCOL_VERSION::equals - ); - - public static SimpleChannel getNetwork() { - return NETWORK; - } - public static void init() { - int messageIdx = 0; + public static void init(IEventBus modBus) { + modBus.addListener(RegisterPayloadHandlersEvent.class, ev -> { + final PayloadRegistrar registar = ev.registrar("1"); - // Client -> server - NETWORK.registerMessage(messageIdx++, MsgNewSpellPatternC2S.class, MsgNewSpellPatternC2S::serialize, - MsgNewSpellPatternC2S::deserialize, makeServerBoundHandler(MsgNewSpellPatternC2S::handle)); - NETWORK.registerMessage(messageIdx++, MsgShiftScrollC2S.class, MsgShiftScrollC2S::serialize, - MsgShiftScrollC2S::deserialize, makeServerBoundHandler(MsgShiftScrollC2S::handle)); + // Client -> server + registar.playToServer(MsgNewSpellPatternC2S.TYPE, MsgNewSpellPatternC2S.STREAM_CODEC, + makeServerBoundHandler(MsgNewSpellPatternC2S::handle)); + registar.playToServer(MsgShiftScrollC2S.TYPE, MsgShiftScrollC2S.STREAM_CODEC, + makeServerBoundHandler(MsgShiftScrollC2S::handle)); - // Server -> client - NETWORK.registerMessage(messageIdx++, MsgNewSpellPatternS2C.class, MsgNewSpellPatternS2C::serialize, - MsgNewSpellPatternS2C::deserialize, makeClientBoundHandler(MsgNewSpellPatternS2C::handle)); - NETWORK.registerMessage(messageIdx++, MsgBlinkS2C.class, MsgBlinkS2C::serialize, - MsgBlinkS2C::deserialize, makeClientBoundHandler(MsgBlinkS2C::handle)); - NETWORK.registerMessage(messageIdx++, MsgSentinelStatusUpdateAck.class, MsgSentinelStatusUpdateAck::serialize, - MsgSentinelStatusUpdateAck::deserialize, makeClientBoundHandler(MsgSentinelStatusUpdateAck::handle)); - NETWORK.registerMessage(messageIdx++, MsgPigmentUpdateAck.class, MsgPigmentUpdateAck::serialize, - MsgPigmentUpdateAck::deserialize, makeClientBoundHandler(MsgPigmentUpdateAck::handle)); - NETWORK.registerMessage(messageIdx++, MsgAltioraUpdateAck.class, MsgAltioraUpdateAck::serialize, - MsgAltioraUpdateAck::deserialize, makeClientBoundHandler(MsgAltioraUpdateAck::handle)); - NETWORK.registerMessage(messageIdx++, MsgCastParticleS2C.class, MsgCastParticleS2C::serialize, - MsgCastParticleS2C::deserialize, makeClientBoundHandler(MsgCastParticleS2C::handle)); - NETWORK.registerMessage(messageIdx++, MsgOpenSpellGuiS2C.class, MsgOpenSpellGuiS2C::serialize, - MsgOpenSpellGuiS2C::deserialize, makeClientBoundHandler(MsgOpenSpellGuiS2C::handle)); - NETWORK.registerMessage(messageIdx++, MsgBeepS2C.class, MsgBeepS2C::serialize, - MsgBeepS2C::deserialize, makeClientBoundHandler(MsgBeepS2C::handle)); - NETWORK.registerMessage(messageIdx++, MsgBrainsweepAck.class, MsgBrainsweepAck::serialize, - MsgBrainsweepAck::deserialize, makeClientBoundHandler(MsgBrainsweepAck::handle)); - NETWORK.registerMessage(messageIdx++, MsgNewWallScrollS2C.class, MsgNewWallScrollS2C::serialize, - MsgNewWallScrollS2C::deserialize, makeClientBoundHandler(MsgNewWallScrollS2C::handle)); - NETWORK.registerMessage(messageIdx++, MsgRecalcWallScrollDisplayS2C.class, MsgRecalcWallScrollDisplayS2C::serialize, - MsgRecalcWallScrollDisplayS2C::deserialize, makeClientBoundHandler(MsgRecalcWallScrollDisplayS2C::handle)); - NETWORK.registerMessage(messageIdx++, MsgNewSpiralPatternsS2C.class, MsgNewSpiralPatternsS2C::serialize, - MsgNewSpiralPatternsS2C::deserialize, makeClientBoundHandler(MsgNewSpiralPatternsS2C::handle)); - NETWORK.registerMessage(messageIdx++, MsgClearSpiralPatternsS2C.class, MsgClearSpiralPatternsS2C::serialize, - MsgClearSpiralPatternsS2C::deserialize, makeClientBoundHandler(MsgClearSpiralPatternsS2C::handle)); + // Server -> client + registar.playToClient(MsgNewSpellPatternS2C.TYPE, MsgNewSpellPatternS2C.STREAM_CODEC, + makeClientBoundHandler(MsgNewSpellPatternS2C::handle)); + registar.playToClient(MsgBlinkS2C.TYPE, MsgBlinkS2C.STREAM_CODEC, + makeClientBoundHandler(MsgBlinkS2C::handle)); + registar.playToClient(MsgSentinelStatusUpdateAck.TYPE, MsgSentinelStatusUpdateAck.STREAM_CODEC, + makeClientBoundHandler(MsgSentinelStatusUpdateAck::handle)); + registar.playToClient(MsgPigmentUpdateAck.TYPE, MsgPigmentUpdateAck.STREAM_CODEC, + makeClientBoundHandler(MsgPigmentUpdateAck::handle)); + registar.playToClient(MsgAltioraUpdateAck.TYPE, MsgAltioraUpdateAck.STREAM_CODEC, + makeClientBoundHandler(MsgAltioraUpdateAck::handle)); + registar.playToClient(MsgCastParticleS2C.TYPE, MsgCastParticleS2C.STREAM_CODEC, + makeClientBoundHandler(MsgCastParticleS2C::handle)); + registar.playToClient(MsgOpenSpellGuiS2C.TYPE, MsgOpenSpellGuiS2C.STREAM_CODEC, + makeClientBoundHandler(MsgOpenSpellGuiS2C::handle)); + registar.playToClient(MsgBeepS2C.TYPE, MsgBeepS2C.STREAM_CODEC, + makeClientBoundHandler(MsgBeepS2C::handle)); + registar.playToClient(MsgBrainsweepAck.TYPE, MsgBrainsweepAck.STREAM_CODEC, + makeClientBoundHandler(MsgBrainsweepAck::handle)); + registar.playToClient(MsgNewWallScrollS2C.TYPE, MsgNewWallScrollS2C.STREAM_CODEC, + makeClientBoundHandler(MsgNewWallScrollS2C::handle)); + registar.playToClient(MsgRecalcWallScrollDisplayS2C.TYPE, MsgRecalcWallScrollDisplayS2C.STREAM_CODEC, + makeClientBoundHandler(MsgRecalcWallScrollDisplayS2C::handle)); + registar.playToClient(MsgNewSpiralPatternsS2C.TYPE, MsgNewSpiralPatternsS2C.STREAM_CODEC, + makeClientBoundHandler(MsgNewSpiralPatternsS2C::handle)); + registar.playToClient(MsgClearSpiralPatternsS2C.TYPE, MsgClearSpiralPatternsS2C.STREAM_CODEC, + makeClientBoundHandler(MsgClearSpiralPatternsS2C::handle)); + }); } - private static BiConsumer> makeServerBoundHandler( + private static IPayloadHandler makeServerBoundHandler( TriConsumer handler) { return (m, ctx) -> { - handler.accept(m, ctx.get().getSender().getServer(), ctx.get().getSender()); - ctx.get().setPacketHandled(true); + handler.accept(m, ctx.player().getServer(), (ServerPlayer) ctx.player()); }; } - private static BiConsumer> makeClientBoundHandler(Consumer consumer) { + private static IPayloadHandler makeClientBoundHandler(Consumer consumer) { return (m, ctx) -> { consumer.accept(m); - ctx.get().setPacketHandled(true); }; } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgAltioraUpdateAck.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgAltioraUpdateAck.java index 0e932b55ea..b2a4d16189 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgAltioraUpdateAck.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgAltioraUpdateAck.java @@ -1,52 +1,46 @@ package at.petrak.hexcasting.forge.network; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.player.AltioraAbility; -import at.petrak.hexcasting.common.msgs.IMessage; import at.petrak.hexcasting.xplat.IXplatAbstractions; -import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; -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 org.jetbrains.annotations.Nullable; -import static at.petrak.hexcasting.api.HexAPI.modLoc; +import java.util.Optional; -public record MsgAltioraUpdateAck(@Nullable AltioraAbility altiora) implements IMessage { - public static final ResourceLocation ID = modLoc("altiora"); +public record MsgAltioraUpdateAck(@Nullable AltioraAbility altiora) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("altiora")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.optional(AltioraAbility.STREAM_CODEC).map( + opt -> opt.orElse(null), + Optional::ofNullable + ), MsgAltioraUpdateAck::altiora, + MsgAltioraUpdateAck::new + ); @Override - public ResourceLocation getFabricId() { - return ID; + public CustomPacketPayload.Type type() { + return TYPE; } - public static MsgAltioraUpdateAck deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - - var extant = buf.readBoolean(); - if (!extant) { - return new MsgAltioraUpdateAck(null); - } - var grace = buf.readVarInt(); - return new MsgAltioraUpdateAck(new AltioraAbility(grace)); + public void handle() { + Handler.handle(this); } - @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeBoolean(this.altiora != null); - if (this.altiora != null) { - buf.writeVarInt(this.altiora.gracePeriod()); - } - } + public static final class Handler { - public static void handle(MsgAltioraUpdateAck self) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static void handle(MsgAltioraUpdateAck self) { + Minecraft.getInstance().execute(() -> { var player = Minecraft.getInstance().player; if (player != null) { IXplatAbstractions.INSTANCE.setAltiora(player, self.altiora); } - } - }); + }); + } } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgBrainsweepAck.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgBrainsweepAck.java index c9d24606fc..8e2957a70e 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgBrainsweepAck.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgBrainsweepAck.java @@ -1,47 +1,43 @@ package at.petrak.hexcasting.forge.network; -import at.petrak.hexcasting.common.msgs.IMessage; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.xplat.IXplatAbstractions; -import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; -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.Entity; import net.minecraft.world.entity.Mob; -import static at.petrak.hexcasting.api.HexAPI.modLoc; - /** * Sent server->client to synchronize the status of a brainswept mob. */ -public record MsgBrainsweepAck(int target) implements IMessage { - public static final ResourceLocation ID = modLoc("sweep"); +public record MsgBrainsweepAck(int target) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("sweep")); - @Override - public ResourceLocation getFabricId() { - return ID; - } - - public static MsgBrainsweepAck deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - - var target = buf.readInt(); - return new MsgBrainsweepAck(target); - } + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.INT.map( + MsgBrainsweepAck::new, + MsgBrainsweepAck::target + ).mapStream(b -> b); @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeInt(target); + public CustomPacketPayload.Type type() { + return TYPE; } public static MsgBrainsweepAck of(Entity target) { return new MsgBrainsweepAck(target.getId()); } - public static void handle(MsgBrainsweepAck msg) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public void handle() { + Handler.handle(this); + } + + public static final class Handler { + + public static void handle(MsgBrainsweepAck msg) { + Minecraft.getInstance().execute(() -> { var level = Minecraft.getInstance().level; if (level != null) { Entity entity = level.getEntity(msg.target()); @@ -49,7 +45,7 @@ public void run() { IXplatAbstractions.INSTANCE.setBrainsweepAddlData(living); } } - } - }); + }); + } } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgPigmentUpdateAck.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgPigmentUpdateAck.java index c38266b1ae..134e0e00ce 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgPigmentUpdateAck.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgPigmentUpdateAck.java @@ -1,48 +1,42 @@ package at.petrak.hexcasting.forge.network; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.pigment.FrozenPigment; -import at.petrak.hexcasting.common.msgs.IMessage; import at.petrak.hexcasting.xplat.IXplatAbstractions; -import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; /** * Sent server->client to synchronize the status of the sentinel. */ -public record MsgPigmentUpdateAck(FrozenPigment update) implements IMessage { - public static final ResourceLocation ID = modLoc("color"); +public record MsgPigmentUpdateAck(FrozenPigment update) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("color")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + FrozenPigment.STREAM_CODEC, MsgPigmentUpdateAck::update, + MsgPigmentUpdateAck::new + ); @Override - public ResourceLocation getFabricId() { - return ID; + public CustomPacketPayload.Type type() { + return TYPE; } - public static MsgPigmentUpdateAck deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - - var tag = buf.readAnySizeNbt(); - var colorizer = FrozenPigment.fromNBT(tag); - return new MsgPigmentUpdateAck(colorizer); + public void handle() { + Handler.handle(this); } - @Override - public void serialize(FriendlyByteBuf buf) { - buf.writeNbt(this.update.serializeToNBT()); - } + public static final class Handler { - public static void handle(MsgPigmentUpdateAck self) { - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static void handle(MsgPigmentUpdateAck self) { + Minecraft.getInstance().execute(() -> { var player = Minecraft.getInstance().player; if (player != null) { IXplatAbstractions.INSTANCE.setPigment(player, self.update()); } - } - }); + }); + } } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgSentinelStatusUpdateAck.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgSentinelStatusUpdateAck.java index dc8f712d8e..2a2afa156e 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgSentinelStatusUpdateAck.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/network/MsgSentinelStatusUpdateAck.java @@ -1,71 +1,49 @@ package at.petrak.hexcasting.forge.network; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.player.Sentinel; -import at.petrak.hexcasting.common.msgs.IMessage; import at.petrak.hexcasting.xplat.IXplatAbstractions; -import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; -import net.minecraft.core.registries.Registries; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.phys.Vec3; +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 javax.annotation.Nullable; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; +import java.util.Optional; /** * Sent server->client to synchronize the status of the sentinel. */ -public record MsgSentinelStatusUpdateAck(@Nullable Sentinel update) implements IMessage { - public static final ResourceLocation ID = modLoc("sntnl"); +public record MsgSentinelStatusUpdateAck(@Nullable Sentinel update) implements CustomPacketPayload { + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(HexAPI.modLoc("sntnl")); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.optional(Sentinel.STREAM_CODEC).map( + opt -> opt.orElse(null), + Optional::ofNullable + ), MsgSentinelStatusUpdateAck::update, + MsgSentinelStatusUpdateAck::new + ); @Override - public ResourceLocation getFabricId() { - return ID; + public CustomPacketPayload.Type type() { + return TYPE; } - public static MsgSentinelStatusUpdateAck deserialize(ByteBuf buffer) { - var buf = new FriendlyByteBuf(buffer); - - var exists = buf.readBoolean(); - if (!exists) { - return new MsgSentinelStatusUpdateAck(null); - } - - var greater = buf.readBoolean(); - var origin = new Vec3(buf.readDouble(), buf.readDouble(), buf.readDouble()); - var dimension = ResourceKey.create(Registries.DIMENSION, buf.readResourceLocation()); - - var sentinel = new Sentinel(greater, origin, dimension); - return new MsgSentinelStatusUpdateAck(sentinel); + public void handle() { + Handler.handle(this); } - public void serialize(FriendlyByteBuf buf) { - if (update == null) { - buf.writeBoolean(false); - return; - } + public static final class Handler { - buf.writeBoolean(true); - buf.writeBoolean(update.extendsRange()); - buf.writeDouble(update.position().x); - buf.writeDouble(update.position().y); - buf.writeDouble(update.position().z); - buf.writeResourceLocation(update.dimension().location()); - } - - public static void handle(MsgSentinelStatusUpdateAck self) { - //noinspection Convert2Lambda - Minecraft.getInstance().execute(new Runnable() { - @Override - public void run() { + public static void handle(MsgSentinelStatusUpdateAck self) { + Minecraft.getInstance().execute(() -> { var player = Minecraft.getInstance().player; if (player != null) { IXplatAbstractions.INSTANCE.setSentinel(player, self.update()); } - } - }); + }); + } } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/recipe/ForgeModConditionalIngredient.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/recipe/ForgeModConditionalIngredient.java index 0969291d47..2d82273ca8 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/recipe/ForgeModConditionalIngredient.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/recipe/ForgeModConditionalIngredient.java @@ -1,25 +1,43 @@ package at.petrak.hexcasting.forge.recipe; +import at.petrak.hexcasting.forge.lib.ForgeHexIngredientTypes; import at.petrak.hexcasting.xplat.IXplatAbstractions; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; 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.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; -import net.minecraftforge.common.crafting.AbstractIngredient; -import net.minecraftforge.common.crafting.IIngredientSerializer; +import net.neoforged.neoforge.common.crafting.ICustomIngredient; +import net.neoforged.neoforge.common.crafting.IngredientType; import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; import java.util.Arrays; import java.util.Objects; +import java.util.stream.Stream; import static at.petrak.hexcasting.api.HexAPI.modLoc; -public class ForgeModConditionalIngredient extends AbstractIngredient { - public static final ResourceLocation ID = modLoc("mod_conditional"); +public class ForgeModConditionalIngredient implements ICustomIngredient { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> inst.group( + Ingredient.CODEC.fieldOf("if_loaded").forGetter(ForgeModConditionalIngredient::getMain), + Codec.STRING.fieldOf("modid").forGetter(ForgeModConditionalIngredient::getModid), + Ingredient.CODEC.fieldOf("default").forGetter(ForgeModConditionalIngredient::getIfModLoaded) + ).apply(inst, ForgeModConditionalIngredient::of)); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + Ingredient.CONTENTS_STREAM_CODEC, ForgeModConditionalIngredient::getMain, + ByteBufCodecs.STRING_UTF8, ForgeModConditionalIngredient::getModid, + Ingredient.CONTENTS_STREAM_CODEC, ForgeModConditionalIngredient::getIfModLoaded, + ForgeModConditionalIngredient::new + ); private final Ingredient main; private final String modid; @@ -28,14 +46,28 @@ public class ForgeModConditionalIngredient extends AbstractIngredient { private final Ingredient toUse; protected ForgeModConditionalIngredient(Ingredient main, String modid, Ingredient ifModLoaded) { - super(IXplatAbstractions.INSTANCE.isModPresent(modid) ? Arrays.stream(ifModLoaded.values) : Arrays.stream(main.values)); this.main = main; this.modid = modid; this.ifModLoaded = ifModLoaded; - this.toUse = IXplatAbstractions.INSTANCE.isModPresent(modid) ? ifModLoaded : main; } + public String getModid() { + return modid; + } + + public Ingredient getMain() { + return main; + } + + public Ingredient getIfModLoaded() { + return ifModLoaded; + } + + public Ingredient getToUse() { + return toUse; + } + /** * Creates a new ingredient matching the given stack */ @@ -49,66 +81,17 @@ public boolean test(@Nullable ItemStack input) { } @Override - public boolean isSimple() { - return toUse.isSimple(); + public Stream getItems() { + return Arrays.stream(toUse.getItems()); } @Override - public @NotNull JsonElement toJson() { - JsonObject json = new JsonObject(); - json.addProperty("type", Objects.toString(ID)); - json.add("default", main.toJson()); - json.addProperty("modid", modid); - json.add("if_loaded", ifModLoaded.toJson()); - return json; + public boolean isSimple() { + return toUse.isSimple(); } @Override - public @NotNull IIngredientSerializer getSerializer() { - return Serializer.INSTANCE; - } - - public static @NotNull Ingredient fromNetwork(FriendlyByteBuf friendlyByteBuf) { - return Ingredient.fromNetwork(friendlyByteBuf); // Just send the actual ingredient - } - - public static Ingredient fromJson(JsonObject object) { - if (object.has("type") && object.getAsJsonPrimitive("type").getAsString().equals(ID.toString())) { - if (object.has("modid") && IXplatAbstractions.INSTANCE.isModPresent(object.getAsJsonPrimitive("modid").getAsString())) { - try { - Ingredient ingredient = Ingredient.fromJson(object.get("if_loaded")); - if (!ingredient.isEmpty()) { - return ingredient; - } - } catch (JsonParseException e) { - // NO-OP - } - } - - return Ingredient.fromJson(object.get("default")); - } - - return Ingredient.of(); - } - - public static class Serializer implements IIngredientSerializer { - public static final Serializer INSTANCE = new Serializer(); - - @Override - public @NotNull Ingredient parse(@NotNull FriendlyByteBuf buffer) { - return fromNetwork(buffer); - } - - @Override - public @NotNull Ingredient parse(@NotNull JsonObject json) { - return fromJson(json); - } - - @Override - public void write(@NotNull FriendlyByteBuf buffer, @NotNull Ingredient ingredient) { - if (ingredient instanceof ForgeModConditionalIngredient conditionalIngredient) - conditionalIngredient.toUse.toNetwork(buffer); - // It shouldn't be possible to not be a ForgeModConditionalIngredient here - } + public IngredientType getType() { + return ForgeHexIngredientTypes.MOD_CONDITIONAL_INGREDIENT.get(); } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/recipe/ForgeUnsealedIngredient.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/recipe/ForgeUnsealedIngredient.java index 434104aa9b..f0f77e1cce 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/recipe/ForgeUnsealedIngredient.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/recipe/ForgeUnsealedIngredient.java @@ -4,42 +4,56 @@ import at.petrak.hexcasting.api.casting.iota.NullIota; import at.petrak.hexcasting.api.item.IotaHolderItem; import at.petrak.hexcasting.api.utils.NBTHelper; +import at.petrak.hexcasting.common.lib.HexDataComponents; +import at.petrak.hexcasting.forge.lib.ForgeHexIngredientTypes; import at.petrak.hexcasting.xplat.IXplatAbstractions; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Unit; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; -import net.minecraftforge.common.crafting.AbstractIngredient; -import net.minecraftforge.common.crafting.CraftingHelper; -import net.minecraftforge.common.crafting.IIngredientSerializer; -import net.minecraftforge.common.crafting.PartialNBTIngredient; -import net.minecraftforge.registries.ForgeRegistries; +import net.neoforged.neoforge.common.crafting.ICustomIngredient; +import net.neoforged.neoforge.common.crafting.IngredientType; import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; import java.util.Objects; +import java.util.Optional; import java.util.stream.Stream; import static at.petrak.hexcasting.api.HexAPI.modLoc; -public class ForgeUnsealedIngredient extends AbstractIngredient { - public static final ResourceLocation ID = modLoc("unsealed"); +public class ForgeUnsealedIngredient implements ICustomIngredient { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> inst.group( + ItemStack.CODEC.fieldOf("stack").forGetter(ForgeUnsealedIngredient::getStack) + ).apply(inst, ForgeUnsealedIngredient::new)); + public static final StreamCodec STREAM_CODEC = ItemStack.STREAM_CODEC.map( + ForgeUnsealedIngredient::of, + ForgeUnsealedIngredient::getStack + ); private final ItemStack stack; private static ItemStack createStack(ItemStack base) { ItemStack newStack = base.copy(); - NBTHelper.putString(newStack, IotaHolderItem.TAG_OVERRIDE_VISUALLY, "any"); + base.set(HexDataComponents.VISUAL_OVERRIDE, Optional.empty()); return newStack; } protected ForgeUnsealedIngredient(ItemStack stack) { - super(Stream.of(new Ingredient.ItemValue(createStack(stack)))); this.stack = stack; } + public ItemStack getStack() { + return stack; + } + /** * Creates a new ingredient matching the given stack */ @@ -55,7 +69,7 @@ public boolean test(@Nullable ItemStack input) { if (this.stack.getItem() == input.getItem() && this.stack.getDamageValue() == input.getDamageValue()) { ADIotaHolder holder = IXplatAbstractions.INSTANCE.findDataHolder(this.stack); if (holder != null) { - return holder.readIotaTag() != null && holder.writeIota(new NullIota(), true); + return holder.readIota() != null && holder.writeIota(NullIota.INSTANCE, true); } } @@ -63,41 +77,17 @@ public boolean test(@Nullable ItemStack input) { } @Override - public boolean isSimple() { - return false; + public Stream getItems() { + return Stream.of(createStack(stack)); } @Override - public @NotNull IIngredientSerializer getSerializer() { - return ForgeUnsealedIngredient.Serializer.INSTANCE; + public boolean isSimple() { + return false; } @Override - public @NotNull JsonElement toJson() { - JsonObject json = new JsonObject(); - // TODO: should this be Partial or Strict - json.addProperty("type", Objects.toString(CraftingHelper.getID(PartialNBTIngredient.Serializer.INSTANCE))); - json.addProperty("item", Objects.toString(ForgeRegistries.ITEMS.getKey(stack.getItem()))); - return json; - } - - - public static class Serializer implements IIngredientSerializer { - public static final ForgeUnsealedIngredient.Serializer INSTANCE = new ForgeUnsealedIngredient.Serializer(); - - @Override - public @NotNull ForgeUnsealedIngredient parse(FriendlyByteBuf buffer) { - return new ForgeUnsealedIngredient(buffer.readItem()); - } - - @Override - public @NotNull ForgeUnsealedIngredient parse(@NotNull JsonObject json) { - return new ForgeUnsealedIngredient(CraftingHelper.getItemStack(json, true)); - } - - @Override - public void write(FriendlyByteBuf buffer, ForgeUnsealedIngredient ingredient) { - buffer.writeItem(ingredient.stack); - } + public IngredientType getType() { + return ForgeHexIngredientTypes.UNSEALED_INGREDIENT.get(); } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeClientXplatImpl.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeClientXplatImpl.java index d33c2654b0..451bbe82b6 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeClientXplatImpl.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeClientXplatImpl.java @@ -1,9 +1,7 @@ package at.petrak.hexcasting.forge.xplat; import at.petrak.hexcasting.api.client.ClientCastingStack; -import at.petrak.hexcasting.common.msgs.IMessage; -import at.petrak.hexcasting.forge.cap.HexCapabilities; -import at.petrak.hexcasting.forge.network.ForgePacketHandler; +import at.petrak.hexcasting.forge.lib.ForgeHexAttachments; import at.petrak.hexcasting.xplat.IClientXplatAbstractions; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRendererProvider; @@ -11,6 +9,8 @@ import net.minecraft.client.renderer.item.ItemProperties; import net.minecraft.client.renderer.item.ItemPropertyFunction; import net.minecraft.client.renderer.texture.AbstractTexture; +import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -18,11 +18,12 @@ import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.phys.AABB; +import net.neoforged.neoforge.network.PacketDistributor; public class ForgeClientXplatImpl implements IClientXplatAbstractions { @Override - public void sendPacketToServer(IMessage packet) { - ForgePacketHandler.getNetwork().sendToServer(packet); + public void sendPacketToServer(CustomPacketPayload packet) { + PacketDistributor.sendToServer(packet); } @Override @@ -49,10 +50,7 @@ public void registerItemProperty(Item item, ResourceLocation id, ItemPropertyFun @Override public ClientCastingStack getClientCastingStack(Player player) { - var maybeCap = player.getCapability(HexCapabilities.CLIENT_CASTING_STACK).resolve(); - if (maybeCap.isEmpty()) - return new ClientCastingStack(); // lie - return maybeCap.get().get(); + return player.getData(ForgeHexAttachments.CLIENT_CASTING_STACK); } @Override @@ -69,4 +67,9 @@ public void restoreLastFilter(AbstractTexture texture) { public boolean fabricAdditionalQuenchFrustumCheck(AABB aabb) { return true; // forge fixes this with a patch so we just say "yep" } + + @Override + public String getModelLocVariant() { + return ModelResourceLocation.STANDALONE_VARIANT; + } } diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeRegister.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeRegister.java new file mode 100644 index 0000000000..b4c7dd9f0e --- /dev/null +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeRegister.java @@ -0,0 +1,31 @@ +package at.petrak.hexcasting.forge.xplat; + +import at.petrak.hexcasting.forge.ForgeHexInitializer; +import at.petrak.hexcasting.xplat.IXplatRegister; +import net.minecraft.core.Holder; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.function.Supplier; + +public class ForgeRegister implements IXplatRegister { + private final DeferredRegister register; + + public ForgeRegister(DeferredRegister register) { + this.register = register; + } + + @Override + public void registerAll() { + register.register(ForgeHexInitializer.getModEventBus()); + } + + @Override + public Supplier register(String id, Supplier provider) { + return register.register(id, provider); + } + + @Override + public Holder registerHolder(String id, Supplier provider) { + return register.register(id, provider); + } +} diff --git a/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeXplatImpl.java b/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeXplatImpl.java index 9d9188599d..9410eecac3 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeXplatImpl.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/xplat/ForgeXplatImpl.java @@ -1,5 +1,6 @@ package at.petrak.hexcasting.forge.xplat; +import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.addldata.ADHexHolder; import at.petrak.hexcasting.api.addldata.ADIotaHolder; import at.petrak.hexcasting.api.addldata.ADMediaHolder; @@ -22,31 +23,29 @@ import at.petrak.hexcasting.api.player.Sentinel; import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.lib.HexRegistries; -import at.petrak.hexcasting.common.lib.hex.HexContinuationTypes; -import at.petrak.hexcasting.common.lib.hex.HexEvalSounds; -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import at.petrak.hexcasting.common.msgs.IMessage; +import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredientType; +import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredientType; import at.petrak.hexcasting.forge.cap.CapSyncers; import at.petrak.hexcasting.forge.cap.HexCapabilities; import at.petrak.hexcasting.forge.interop.curios.CuriosApiInterop; -import at.petrak.hexcasting.forge.mixin.ForgeAccessorBuiltInRegistries; -import at.petrak.hexcasting.forge.network.ForgePacketHandler; import at.petrak.hexcasting.forge.network.MsgBrainsweepAck; import at.petrak.hexcasting.forge.recipe.ForgeUnsealedIngredient; import at.petrak.hexcasting.interop.HexInterop; import at.petrak.hexcasting.interop.pehkui.PehkuiInterop; import at.petrak.hexcasting.xplat.IXplatAbstractions; +import at.petrak.hexcasting.xplat.IXplatRegister; import at.petrak.hexcasting.xplat.IXplatTags; import at.petrak.hexcasting.xplat.Platform; -import com.google.common.base.Suppliers; +import com.illusivesoulworks.caelus.api.CaelusApi; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.Tag; import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; @@ -72,35 +71,39 @@ import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.common.*; -import net.minecraftforge.common.loot.CanToolPerformAction; -import net.minecraftforge.common.util.FakePlayerFactory; -import net.minecraftforge.event.level.BlockEvent; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidType; -import net.minecraftforge.fluids.FluidUtil; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fml.ModContainer; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.fml.loading.FMLLoader; -import net.minecraftforge.network.NetworkDirection; -import net.minecraftforge.network.PacketDistributor; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.ModList; +import net.neoforged.fml.loading.FMLLoader; +import net.neoforged.neoforge.common.CommonHooks; +import net.neoforged.neoforge.common.ItemAbilities; +import net.neoforged.neoforge.common.NeoForge; +import net.neoforged.neoforge.common.loot.CanItemPerformAbility; +import net.neoforged.neoforge.common.util.FakePlayerFactory; +import net.neoforged.neoforge.event.level.BlockEvent; +import net.neoforged.neoforge.fluids.FluidStack; +import net.neoforged.neoforge.fluids.FluidType; +import net.neoforged.neoforge.fluids.FluidUtil; +import net.neoforged.neoforge.fluids.capability.IFluidHandler; +import net.neoforged.neoforge.network.PacketDistributor; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.RegistryBuilder; import org.jetbrains.annotations.Nullable; -import top.theillusivec4.caelus.api.CaelusApi; import virtuoel.pehkui.api.ScaleTypes; -import java.util.ArrayList; import java.util.List; import java.util.Optional; -import java.util.UUID; import java.util.function.BiFunction; -import java.util.function.Supplier; import static at.petrak.hexcasting.api.HexAPI.modLoc; -import static net.minecraftforge.fluids.capability.IFluidHandler.FluidAction.EXECUTE; public class ForgeXplatImpl implements IXplatAbstractions { + + @Override + public IXplatRegister createRegistar(ResourceKey> registryKey) { + return new ForgeRegister<>(DeferredRegister.create(registryKey, HexAPI.MOD_ID)); + } + @Override public Platform platform() { return Platform.FORGE; @@ -133,8 +136,7 @@ public void setBrainsweepAddlData(Mob mob) { mob.getPersistentData().putBoolean(TAG_BRAINSWEPT, true); if (mob.level() instanceof ServerLevel) { - ForgePacketHandler.getNetwork() - .send(PacketDistributor.TRACKING_ENTITY.with(() -> mob), MsgBrainsweepAck.of(mob)); + PacketDistributor.sendToPlayersTrackingEntity(mob, MsgBrainsweepAck.of(mob)); } } @@ -166,15 +168,17 @@ public void setAltiora(Player player, @Nullable AltioraAbility altiora) { } // The elytra ability is done with an event on fabric - var elytraing = CaelusApi.getInstance().getFlightAttribute(); + // TODO port: added null check, test if still works + var elytraing = CaelusApi.getInstance().getFallFlyingAttribute(); var inst = player.getAttributes().getInstance(elytraing); if (altiora != null) { - if (inst.getModifier(ALTIORA_ATTRIBUTE_ID) == null) { - inst.addTransientModifier(new AttributeModifier(ALTIORA_ATTRIBUTE_ID, "Altiora", 1.0, - AttributeModifier.Operation.ADDITION)); + if (inst != null && !inst.hasModifier(ALTIORA_ATTRIBUTE_ID)) { + inst.addTransientModifier(new AttributeModifier(ALTIORA_ATTRIBUTE_ID, 1.0, + AttributeModifier.Operation.ADD_VALUE)); } } else { - inst.removeModifier(ALTIORA_ATTRIBUTE_ID); + if(inst != null) + inst.removeModifier(ALTIORA_ATTRIBUTE_ID); } if (player instanceof ServerPlayer serverPlayer) { @@ -188,7 +192,7 @@ public void setAltiora(Player player, @Nullable AltioraAbility altiora) { CompoundTag tag = player.getPersistentData(); if (pigment != null) - tag.put(TAG_PIGMENT, pigment.serializeToNBT()); + tag.put(TAG_PIGMENT, FrozenPigment.CODEC.encodeStart(NbtOps.INSTANCE, pigment).getOrThrow()); else tag.remove(TAG_PIGMENT); @@ -220,16 +224,12 @@ public void setSentinel(Player player, @Nullable Sentinel sentinel) { @Override public void setStaffcastImage(ServerPlayer player, @Nullable CastingImage image) { - player.getPersistentData().put(TAG_HARNESS, image == null ? new CompoundTag() : image.serializeToNbt()); + player.getPersistentData().put(TAG_VM, image == null ? new CompoundTag() : CastingImage.getCODEC().encodeStart(NbtOps.INSTANCE, image).getOrThrow()); } @Override public void setPatterns(ServerPlayer player, List patterns) { - var listTag = new ListTag(); - for (ResolvedPattern pattern : patterns) { - listTag.add(pattern.serializeToNBT()); - } - player.getPersistentData().put(TAG_PATTERNS, listTag); + player.getPersistentData().put(TAG_PATTERNS, ResolvedPattern.CODEC.listOf().encodeStart(NbtOps.INSTANCE, patterns).getOrThrow()); } @Override @@ -246,7 +246,7 @@ public FlightAbility getFlight(ServerPlayer player) { var origin = HexUtils.vecFromNBT(tag.getCompound(TAG_FLIGHT_ORIGIN)); var radius = tag.getDouble(TAG_FLIGHT_RADIUS); var dimension = ResourceKey.create(Registries.DIMENSION, - new ResourceLocation(tag.getString(TAG_FLIGHT_DIMENSION))); + ResourceLocation.parse(tag.getString(TAG_FLIGHT_DIMENSION))); return new FlightAbility(timeLeft, dimension, origin, radius); } return null; @@ -265,9 +265,10 @@ public AltioraAbility getAltiora(Player player) { @Override public FrozenPigment getPigment(Player player) { - return FrozenPigment.fromNBT(player.getPersistentData().getCompound(TAG_PIGMENT)); + return FrozenPigment.CODEC.parse(NbtOps.INSTANCE, player.getPersistentData().getCompound(TAG_PIGMENT)).getOrThrow(); } + //TODO port: replace with codec? @Override public Sentinel getSentinel(Player player) { CompoundTag tag = player.getPersistentData(); @@ -277,112 +278,88 @@ public Sentinel getSentinel(Player player) { } var extendsRange = tag.getBoolean(TAG_SENTINEL_GREATER); var position = HexUtils.vecFromNBT(tag.getCompound(TAG_SENTINEL_POSITION)); - var dimension = ResourceKey.create(Registries.DIMENSION, - new ResourceLocation(tag.getString(TAG_SENTINEL_DIMENSION))); + var dimension = ResourceKey.create(Registries.DIMENSION, ResourceLocation.parse(tag.getString(TAG_SENTINEL_DIMENSION))); return new Sentinel(extendsRange, position, dimension); } @Override public CastingVM getStaffcastVM(ServerPlayer player, InteractionHand hand) { - // This is always from a staff because we don't need to load the harness when casting from item + // This is always from a staff because we don't need to load the VM when casting from item var ctx = new StaffCastEnv(player, hand); - return new CastingVM(CastingImage.loadFromNbt(player.getPersistentData().getCompound(TAG_HARNESS), - player.serverLevel()), ctx); + return new CastingVM(CastingImage.getCODEC().parse(NbtOps.INSTANCE, player.getPersistentData().getCompound(TAG_VM)).getOrThrow(), ctx); } @Override public List getPatternsSavedInUi(ServerPlayer player) { - ListTag patternsTag = player.getPersistentData().getList(TAG_PATTERNS, Tag.TAG_COMPOUND); - - List patterns = new ArrayList<>(patternsTag.size()); - - for (int i = 0; i < patternsTag.size(); i++) { - patterns.add(ResolvedPattern.fromNBT(patternsTag.getCompound(i))); - } - return patterns; + return ResolvedPattern.CODEC.listOf().parse(NbtOps.INSTANCE, player.getPersistentData().getList(TAG_PATTERNS, Tag.TAG_COMPOUND)).getOrThrow(); } @Override public void clearCastingData(ServerPlayer player) { - player.getPersistentData().remove(TAG_HARNESS); + player.getPersistentData().remove(TAG_VM); player.getPersistentData().remove(TAG_PATTERNS); } @Override public @Nullable ADMediaHolder findMediaHolder(ItemStack stack) { - var maybeCap = stack.getCapability(HexCapabilities.MEDIA).resolve(); - return maybeCap.orElse(null); - } - - @Override - public @Nullable ADMediaHolder findMediaHolder(ServerPlayer player) { - var maybeCap = player.getCapability(HexCapabilities.MEDIA).resolve(); - return maybeCap.orElse(null); + return stack.getCapability(HexCapabilities.Item.MEDIA); } @Override public @Nullable ADIotaHolder findDataHolder(ItemStack stack) { - var maybeCap = stack.getCapability(HexCapabilities.IOTA).resolve(); - return maybeCap.orElse(null); + return stack.getCapability(HexCapabilities.Item.IOTA); } @Override public @Nullable ADIotaHolder findDataHolder(Entity entity) { - var maybeCap = entity.getCapability(HexCapabilities.IOTA).resolve(); - return maybeCap.orElse(null); + return entity.getCapability(HexCapabilities.Entity.IOTA); } @Override public @Nullable ADHexHolder findHexHolder(ItemStack stack) { - var maybeCap = stack.getCapability(HexCapabilities.STORED_HEX).resolve(); - return maybeCap.orElse(null); + return stack.getCapability(HexCapabilities.Item.STORED_HEX); } @Override public @Nullable ADVariantItem findVariantHolder(ItemStack stack) { - var maybeCap = stack.getCapability(HexCapabilities.VARIANT_ITEM).resolve(); - return maybeCap.orElse(null); + return stack.getCapability(HexCapabilities.Item.VARIANT_ITEM); } @Override public boolean isPigment(ItemStack stack) { - return stack.getCapability(HexCapabilities.COLOR).isPresent(); + return stack.getCapability(HexCapabilities.Item.COLOR) != null; } @Override public ColorProvider getColorProvider(FrozenPigment pigment) { - var maybePigment = pigment.item().getCapability(HexCapabilities.COLOR).resolve(); - if (maybePigment.isPresent()) { - return maybePigment.get().provideColor(pigment.owner()); - } - return ColorProvider.MISSING; + var adPigment = pigment.item().getCapability(HexCapabilities.Item.COLOR); + return adPigment != null ? adPigment.provideColor(pigment.owner()) : ColorProvider.MISSING; } @Override - public void sendPacketToPlayer(ServerPlayer target, IMessage packet) { - ForgePacketHandler.getNetwork().send(PacketDistributor.PLAYER.with(() -> target), packet); + public void sendPacketToPlayer(ServerPlayer target, CustomPacketPayload packet) { + PacketDistributor.sendToPlayer(target, packet); } @Override - public void sendPacketNear(Vec3 pos, double radius, ServerLevel dimension, IMessage packet) { - ForgePacketHandler.getNetwork().send(PacketDistributor.NEAR.with(() -> new PacketDistributor.TargetPoint( - pos.x, pos.y, pos.z, radius * radius, dimension.dimension() - )), packet); + public void sendPacketNear(Vec3 pos, double radius, ServerLevel dimension, CustomPacketPayload packet) { + PacketDistributor.sendToPlayersNear(dimension, null, pos.x, pos.y, pos.z, radius, packet); } @Override - public void sendPacketTracking(Entity entity, IMessage packet) { - ForgePacketHandler.getNetwork().send(PacketDistributor.TRACKING_ENTITY.with(() -> entity), packet); + public void sendPacketTracking(Entity entity, CustomPacketPayload packet) { + PacketDistributor.sendToPlayersTrackingEntity(entity, packet); } @Override - public Packet toVanillaClientboundPacket(IMessage message) { + public Packet toVanillaClientboundPacket(CustomPacketPayload message) { + // TODO port: test cast //noinspection unchecked - return (Packet) ForgePacketHandler.getNetwork().toVanillaPacket(message, NetworkDirection.PLAY_TO_CLIENT); + return (Packet) (Object) message.toVanillaClientbound(); } @Override @@ -393,19 +370,19 @@ public BlockEntityType createBlockEntityType(BiFuncti @Override public boolean tryPlaceFluid(Level level, InteractionHand hand, BlockPos pos, Fluid fluid) { - Optional handler = FluidUtil.getFluidHandler(level, pos, Direction.UP).resolve(); + Optional handler = FluidUtil.getFluidHandler(level, pos, Direction.UP); return handler.isPresent() && - handler.get().fill(new FluidStack(fluid, FluidType.BUCKET_VOLUME), EXECUTE) > 0; + handler.get().fill(new FluidStack(fluid, FluidType.BUCKET_VOLUME), IFluidHandler.FluidAction.EXECUTE) > 0; } @Override public boolean drainAllFluid(Level level, BlockPos pos) { - Optional handler = FluidUtil.getFluidHandler(level, pos, Direction.UP).resolve(); + Optional handler = FluidUtil.getFluidHandler(level, pos, Direction.UP); if (handler.isPresent()) { boolean any = false; IFluidHandler pool = handler.get(); for (int i = 0; i < pool.getTanks(); i++) { - if (!pool.drain(pool.getFluidInTank(i), EXECUTE).isEmpty()) { + if (!pool.drain(pool.getFluidInTank(i), IFluidHandler.FluidAction.EXECUTE).isEmpty()) { any = true; } } @@ -416,12 +393,13 @@ public boolean drainAllFluid(Level level, BlockPos pos) { @Override public Ingredient getUnsealedIngredient(ItemStack stack) { - return ForgeUnsealedIngredient.of(stack); + return ForgeUnsealedIngredient.of(stack).toVanilla(); } @Override public boolean isCorrectTierForDrops(Tier tier, BlockState bs) { - return !bs.requiresCorrectToolForDrops() || TierSortingRegistry.isCorrectTierForDrops(tier, bs); + // TODO port: check tag + return !bs.is(HexTags.Blocks.HEX_UNBREAKABLE); } @Override @@ -432,12 +410,12 @@ public Item.Properties addEquipSlotFabric(EquipmentSlot slot) { private static final IXplatTags TAGS = new IXplatTags() { @Override public TagKey amethystDust() { - return HexTags.Items.create(new ResourceLocation("forge", "dusts/amethyst")); + return HexTags.Items.create(ResourceLocation.fromNamespaceAndPath("forge", "dusts/amethyst")); } @Override public TagKey gems() { - return HexTags.Items.create(new ResourceLocation("forge", "gems")); + return HexTags.Items.create(ResourceLocation.fromNamespaceAndPath("forge", "gems")); } }; @@ -448,7 +426,7 @@ public IXplatTags tags() { @Override public LootItemCondition.Builder isShearsCondition() { - return CanToolPerformAction.canToolPerformAction(ToolActions.SHEARS_DIG); + return CanItemPerformAbility.canItemPerformAbility(ItemAbilities.SHEARS_DIG); } @Override @@ -463,70 +441,83 @@ public String getModName(String namespace) { return namespace; } - private static final Supplier> ACTION_REGISTRY = Suppliers.memoize(() -> - ForgeAccessorBuiltInRegistries.hex$registerSimple( - HexRegistries.ACTION, null) - ); - private static final Supplier>> SPECIAL_HANDLER_REGISTRY = - Suppliers.memoize(() -> - ForgeAccessorBuiltInRegistries.hex$registerSimple( - HexRegistries.SPECIAL_HANDLER, null) - ); - private static final Supplier>> IOTA_TYPE_REGISTRY = Suppliers.memoize(() -> - ForgeAccessorBuiltInRegistries.hex$registerDefaulted( - HexRegistries.IOTA_TYPE, - modLoc("null").toString(), registry -> HexIotaTypes.NULL) - ); - private static final Supplier> ARITHMETIC_REGISTRY = Suppliers.memoize(() -> - ForgeAccessorBuiltInRegistries.hex$registerSimple( - HexRegistries.ARITHMETIC, null) - ); - private static final Supplier>> CONTINUATION_TYPE_REGISTRY = Suppliers.memoize(() -> - ForgeAccessorBuiltInRegistries.hex$registerDefaulted( - HexRegistries.CONTINUATION_TYPE, - modLoc("end").toString(), registry -> HexContinuationTypes.END) - ); - private static final Supplier> EVAL_SOUND_REGISTRY = Suppliers.memoize(() -> - ForgeAccessorBuiltInRegistries.hex$registerDefaulted( - HexRegistries.EVAL_SOUND, - modLoc("nothing").toString(), registry -> HexEvalSounds.NOTHING) - ); + private static final Registry ACTION_REGISTRY = new RegistryBuilder<>(HexRegistries.ACTION) + .sync(true) + .create(); + private static final Registry> SPECIAL_HANDLER_REGISTRY = new RegistryBuilder<>(HexRegistries.SPECIAL_HANDLER) + .sync(true) + .create(); + private static final Registry> IOTA_TYPE_REGISTRY = new RegistryBuilder<>(HexRegistries.IOTA_TYPE) + .sync(true) + .defaultKey(modLoc("null")) + .create(); + + private static final Registry ARITHMETIC_REGISTRY = new RegistryBuilder<>(HexRegistries.ARITHMETIC) + .sync(true) + .create(); + + private static final Registry> CONTINUATION_TYPE_REGISTRY = new RegistryBuilder<>(HexRegistries.CONTINUATION_TYPE) + .sync(true) + .defaultKey(modLoc("end")) + .create(); + private static final Registry EVAL_SOUND_REGISTRY = new RegistryBuilder<>(HexRegistries.EVAL_SOUND) + .sync(true) + .defaultKey(modLoc("nothing")) + .create(); + private static final Registry> STATE_INGREDIENT_REGISTRY = new RegistryBuilder<>(HexRegistries.STATE_INGREDIENT) + .sync(true) + .defaultKey(modLoc("none")) + .create(); + private static final Registry> BRAINSWEEPEE_INGREDIENT_REGISTRY = new RegistryBuilder<>(HexRegistries.BRAINSWEEPEE_INGREDIENT) + .sync(true) + .defaultKey(modLoc("none")) + .create(); @Override public Registry getActionRegistry() { - return ACTION_REGISTRY.get(); + return ACTION_REGISTRY; } @Override public Registry> getSpecialHandlerRegistry() { - return SPECIAL_HANDLER_REGISTRY.get(); + return SPECIAL_HANDLER_REGISTRY; } @Override public Registry> getIotaTypeRegistry() { - return IOTA_TYPE_REGISTRY.get(); + return IOTA_TYPE_REGISTRY; } @Override public Registry getArithmeticRegistry() { - return ARITHMETIC_REGISTRY.get(); + return ARITHMETIC_REGISTRY; } @Override public Registry> getContinuationTypeRegistry() { - return CONTINUATION_TYPE_REGISTRY.get(); + return CONTINUATION_TYPE_REGISTRY; } @Override public Registry getEvalSoundRegistry() { - return EVAL_SOUND_REGISTRY.get(); + return EVAL_SOUND_REGISTRY; + } + + @Override + public Registry> getStateIngredientRegistry() { + return STATE_INGREDIENT_REGISTRY; + } + + @Override + public Registry> getBrainsweepeeIngredientRegistry() { + return BRAINSWEEPEE_INGREDIENT_REGISTRY; } @Override public boolean isBreakingAllowed(ServerLevel world, BlockPos pos, BlockState state, @Nullable Player player) { if (player == null) player = FakePlayerFactory.get(world, HEXCASTING); - return !MinecraftForge.EVENT_BUS.post(new BlockEvent.BreakEvent(world, pos, state, player)); + return !NeoForge.EVENT_BUS.post(new BlockEvent.BreakEvent(world, pos, state, player)).isCanceled(); } @Override @@ -535,7 +526,7 @@ public boolean isPlacingAllowed(ServerLevel world, BlockPos pos, ItemStack block player = FakePlayerFactory.get(world, HEXCASTING); ItemStack cached = player.getMainHandItem(); player.setItemInHand(InteractionHand.MAIN_HAND, blockStack.copy()); - var evt = ForgeHooks.onRightClickBlock(player, InteractionHand.MAIN_HAND, pos, + var evt = CommonHooks.onRightClickBlock(player, InteractionHand.MAIN_HAND, pos, new BlockHitResult(Vec3.atCenterOf(pos), Direction.DOWN, pos, true)); player.setItemInHand(InteractionHand.MAIN_HAND, cached); return !evt.isCanceled(); @@ -583,8 +574,8 @@ public void setScale(Entity e, float scale) { public static final String TAG_ALTIORA_ALLOWED = "hexcasting:altiora_allowed"; public static final String TAG_ALTIORA_GRACE = "hexcasting:altiora_grace_period"; - public static final UUID ALTIORA_ATTRIBUTE_ID = UUID.fromString("91897c79-3ebb-468c-a265-40418ed01c41"); + public static final ResourceLocation ALTIORA_ATTRIBUTE_ID = modLoc("altiora"); - public static final String TAG_HARNESS = "hexcasting:spell_harness"; + public static final String TAG_VM = "hexcasting:spell_harness"; public static final String TAG_PATTERNS = "hexcasting:spell_patterns"; } diff --git a/Neoforge/src/main/resources/META-INF/neoforge.mods.toml b/Neoforge/src/main/resources/META-INF/neoforge.mods.toml index ff4213b599..6b5b68b202 100644 --- a/Neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/Neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -22,41 +22,46 @@ config = "hexcasting_forge.mixins.json" [[dependencies.hexcasting]] modId = "neoforge" mandatory = true -versionRange = "[81,)" +versionRange = "[21,)" ordering = "NONE" side = "BOTH" [[dependencies.hexcasting]] modId = "minecraft" mandatory = true -versionRange = "[1.20.1,1.21)" +versionRange = "[1.21.1,1.21.10)" ordering = "NONE" side = "BOTH" [[dependencies.hexcasting]] modId = "paucal" mandatory = true -versionRange = "[0.6.0,0.7.0)" +versionRange = "[0.7.1,)" ordering = "NONE" side = "BOTH" [[dependencies.hexcasting]] modId = "patchouli" mandatory = true -versionRange = "[1.20.1-80,)" +versionRange = "[1.21-80,)" ordering = "NONE" side = "BOTH" [[dependencies.hexcasting]] modId = "caelus" mandatory = true -versionRange = "[3.1.0+1.20,)" +versionRange = "[7.0.1+1.21.1,)" ordering = "NONE" side = "BOTH" [[dependencies.hexcasting]] modId = "inline" mandatory = true -versionRange = "[1.20.1-1.0.1,)" +versionRange = "[1.21.1-1.2.2,)" ordering = "NONE" -side = "BOTH" \ No newline at end of file +side = "BOTH" + +[[dependencies.hexcasting]] +modId = "accessories" +mandatory = false +versionRange = "[1.1.0-beta.16+1.21.1,)" \ No newline at end of file diff --git a/Neoforge/src/main/resources/data/curios/tags/items/head.json b/Neoforge/src/main/resources/data/curios/tags/item/head.json similarity index 100% rename from Neoforge/src/main/resources/data/curios/tags/items/head.json rename to Neoforge/src/main/resources/data/curios/tags/item/head.json diff --git a/Neoforge/src/main/resources/data/hexcasting/curios/entities/head.json b/Neoforge/src/main/resources/data/hexcasting/curios/entities/head.json new file mode 100644 index 0000000000..361fd3f548 --- /dev/null +++ b/Neoforge/src/main/resources/data/hexcasting/curios/entities/head.json @@ -0,0 +1,8 @@ +{ + "entities": [ + "player" + ], + "slots": [ + "head" + ] +} \ No newline at end of file diff --git a/Neoforge/src/main/resources/hexcasting_forge.mixins.json b/Neoforge/src/main/resources/hexcasting_forge.mixins.json index 3a50c75493..d05981caff 100644 --- a/Neoforge/src/main/resources/hexcasting_forge.mixins.json +++ b/Neoforge/src/main/resources/hexcasting_forge.mixins.json @@ -5,7 +5,6 @@ "refmap": "hexcasting.mixins.refmap.json", "package": "at.petrak.hexcasting.forge.mixin", "mixins": [ - "ForgeAccessorBuiltInRegistries", "ForgeMixinCursedRecipeSerializerBase", "ForgeMixinTagsProvider" ], diff --git a/build.gradle b/build.gradle index 2b02304af4..c0eb6812a5 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,11 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { // used for something?? - id 'dev.architectury.loom' version '1.7-SNAPSHOT' apply false + id 'dev.architectury.loom' version '1.13-SNAPSHOT' apply false // used for multi-loader stuff, NOT for the archi API id 'architectury-plugin' version '3.4-SNAPSHOT' + id 'com.gradleup.shadow' version '8.3.6' apply false id "org.jetbrains.kotlin.jvm" @@ -87,10 +90,9 @@ subprojects { // Disables Gradle's custom module metadata from being published to maven. The // metadata includes mapped dependencies which are not reasonably consumable by // other mod developers. - tasks.withType(GenerateModuleMetadata) { + tasks.withType(GenerateModuleMetadata).configureEach { enabled = false } - } allprojects { @@ -99,7 +101,7 @@ allprojects { } gradle.projectsEvaluated { - tasks.withType(JavaCompile) { + tasks.withType(JavaCompile).configureEach { options.compilerArgs << "-Xmaxerrs" << "1000" } } @@ -109,18 +111,18 @@ allprojects { } compileKotlin { - kotlinOptions { - jvmTarget = "21" + compilerOptions { + jvmTarget = JvmTarget.JVM_21 } } compileTestKotlin { - kotlinOptions { - jvmTarget = "21" + compilerOptions { + jvmTarget = JvmTarget.JVM_21 } } tasks.register("runAllDatagen") { - dependsOn ":Forge:runXplatDatagen" - dependsOn ":Forge:runForgeDatagen" + dependsOn ":Neoforge:runXplatDatagen" + dependsOn ":Neoforge:runDatagen" dependsOn ":Fabric:runDatagen" } diff --git a/gradle.properties b/gradle.properties index 94d51bc876..cce69bc225 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,8 +12,11 @@ minecraftVersion=1.21.1 kotlinVersion=2.0.21 modVersion=0.12.0-devel +fabric_loader_version=0.16.14 + # this is the version published to modrinth/cf i swear -paucalVersion=0.7.1-pre-23 +# haha not anymore it's from mavenLocal +paucalVersion=0.7.1-pre-25 patchouliVersion=88 accessoriesVersion=1.1.0-beta.16+1.21.1 @@ -21,5 +24,8 @@ emiVersion=1.1.18+1.21.1 pehkuiVersion=3.8.3 -inlineVersion=1.0.1 -clothConfigVersion=11.1.106 \ No newline at end of file +inlineVersion=1.2.2-74 +clothConfigVersion=15.0.140 + +# Runtime only +architecturyVersion=13.0.2 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9355b41557..ca025c83a7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle b/settings.gradle index b4f6d8d642..6f0bfae898 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,10 +1,10 @@ pluginManagement { repositories { gradlePluginPortal() -// maven { -// name = 'Fabric' -// url = 'https://maven.fabricmc.net/' -// } + maven { + name = 'Fabric' + url = 'https://maven.fabricmc.net/' + } maven { name = 'Sponge Snapshots' url = 'https://repo.spongepowered.org/repository/maven-public/'