diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index fb76acb55e..eb65102066 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -12,7 +12,7 @@ on: branches: main env: - JAVA_VERSION: 17 + JAVA_VERSION: '21.0.5' jobs: build: @@ -35,7 +35,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 diff --git a/Common/build.gradle b/Common/build.gradle index f243649c06..a5c91e1913 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -2,8 +2,18 @@ architectury { common(["fabric", "neoforge"]) } +loom { + accessWidenerPath = file("src/main/resources/hexplat.accesswidener") +} + +pkSubproj { + platform = "common" + pkPublish = false +} + repositories { mavenCentral() + mavenLocal() maven { url 'https://maven.blamejared.com' } @@ -25,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" @@ -60,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/assets/hexcasting/blockstates/akashic_bookshelf.json b/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_bookshelf.json deleted file mode 100644 index 2f79ec12a3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_bookshelf.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_connector.json b/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_connector.json deleted file mode 100644 index c4552b4918..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_connector.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/akashic_ligature" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_record.json b/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_record.json deleted file mode 100644 index c2aa512a1e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_record.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/akashic_record" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks.json b/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks.json deleted file mode 100644 index 267e1b4d43..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/deco/amethyst_bricks" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks_small.json deleted file mode 100644 index 66b78f9a12..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_bricks_small.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/deco/amethyst_bricks_small" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_dust_block.json b/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_dust_block.json deleted file mode 100644 index c27c62ffcb..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_dust_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/amethyst_dust_block" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_edified_leaves.json b/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_edified_leaves.json deleted file mode 100644 index db8af585b0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_edified_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/amethyst_edified_leaves" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_pillar.json b/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_pillar.json deleted file mode 100644 index 257e10ca4d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_pillar.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_sconce.json b/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_sconce.json deleted file mode 100644 index 03a9ebb676..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_sconce.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "variants": { - "facing=down,waterlogged=false": { - "model": "hexcasting:block/amethyst_sconce", - "x": 180 - }, - "facing=down,waterlogged=true": { - "model": "hexcasting:block/amethyst_sconce", - "x": 180 - }, - "facing=east,waterlogged=false": { - "model": "hexcasting:block/amethyst_sconce", - "x": 90, - "y": 90 - }, - "facing=east,waterlogged=true": { - "model": "hexcasting:block/amethyst_sconce", - "x": 90, - "y": 90 - }, - "facing=north,waterlogged=false": { - "model": "hexcasting:block/amethyst_sconce", - "x": 90 - }, - "facing=north,waterlogged=true": { - "model": "hexcasting:block/amethyst_sconce", - "x": 90 - }, - "facing=south,waterlogged=false": { - "model": "hexcasting:block/amethyst_sconce", - "x": 90, - "y": 180 - }, - "facing=south,waterlogged=true": { - "model": "hexcasting:block/amethyst_sconce", - "x": 90, - "y": 180 - }, - "facing=up,waterlogged=false": { - "model": "hexcasting:block/amethyst_sconce" - }, - "facing=up,waterlogged=true": { - "model": "hexcasting:block/amethyst_sconce" - }, - "facing=west,waterlogged=false": { - "model": "hexcasting:block/amethyst_sconce", - "x": 90, - "y": 270 - }, - "facing=west,waterlogged=true": { - "model": "hexcasting:block/amethyst_sconce", - "x": 90, - "y": 270 - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_tiles.json b/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_tiles.json deleted file mode 100644 index b716f2a5a9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_tiles.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/deco/amethyst_tiles" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper.json b/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper.json deleted file mode 100644 index 1c809c022b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/ancient_scroll_paper" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json b/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json deleted file mode 100644 index 3a632c39f3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/ancient_scroll_paper_lantern" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/aventurine_edified_leaves.json b/Common/src/generated/resources/assets/hexcasting/blockstates/aventurine_edified_leaves.json deleted file mode 100644 index 10383418f7..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/aventurine_edified_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/aventurine_edified_leaves" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/citrine_edified_leaves.json b/Common/src/generated/resources/assets/hexcasting/blockstates/citrine_edified_leaves.json deleted file mode 100644 index 3207814e50..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/citrine_edified_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/citrine_edified_leaves" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/conjured_block.json b/Common/src/generated/resources/assets/hexcasting/blockstates/conjured_block.json deleted file mode 100644 index 5e8ffe700c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/conjured_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/conjured" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/conjured_light.json b/Common/src/generated/resources/assets/hexcasting/blockstates/conjured_light.json deleted file mode 100644 index 5e8ffe700c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/conjured_light.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/conjured" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/directrix/boolean.json b/Common/src/generated/resources/assets/hexcasting/blockstates/directrix/boolean.json deleted file mode 100644 index 155f55cfe6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/directrix/boolean.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/directrix/empty.json b/Common/src/generated/resources/assets/hexcasting/blockstates/directrix/empty.json deleted file mode 100644 index 33b013562c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/directrix/empty.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/directrix/redstone.json b/Common/src/generated/resources/assets/hexcasting/blockstates/directrix/redstone.json deleted file mode 100644 index c93068cabf..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/directrix/redstone.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_button.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_button.json deleted file mode 100644 index 81efad6fd6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_door.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_door.json deleted file mode 100644 index 029d3bd5d2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_door.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_fence.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_fence.json deleted file mode 100644 index 7167013cf7..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_fence_gate.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_fence_gate.json deleted file mode 100644 index f925ddfddd..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log.json deleted file mode 100644 index 4cd8fe5d14..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_amethyst.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_amethyst.json deleted file mode 100644 index 7526dda321..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_amethyst.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_aventurine.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_aventurine.json deleted file mode 100644 index ed8e454e7e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_aventurine.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_citrine.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_citrine.json deleted file mode 100644 index 258b377acb..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_citrine.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_purple.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_purple.json deleted file mode 100644 index 078f72a986..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log_purple.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_panel.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_panel.json deleted file mode 100644 index 17d99a7903..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_panel.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/edified_panel" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_planks.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_planks.json deleted file mode 100644 index a2d790f061..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_planks.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_pressure_plate.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_pressure_plate.json deleted file mode 100644 index 6da4bab988..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_slab.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_slab.json deleted file mode 100644 index 6a4d4be0d2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_stairs.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_stairs.json deleted file mode 100644 index 23ac40ca7e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_tile.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_tile.json deleted file mode 100644 index 23d71da006..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_tile.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/edified_tile" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_trapdoor.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_trapdoor.json deleted file mode 100644 index 0df527ca32..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_trapdoor.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/edified_wood.json b/Common/src/generated/resources/assets/hexcasting/blockstates/edified_wood.json deleted file mode 100644 index 1d963101fc..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/edified_wood.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/empty.json b/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/empty.json deleted file mode 100644 index 057ad53aa6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/empty.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/look.json b/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/look.json deleted file mode 100644 index 0db9af4b2d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/look.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/redstone.json b/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/redstone.json deleted file mode 100644 index 2ad46e21cd..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/redstone.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/rightclick.json b/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/rightclick.json deleted file mode 100644 index 32a772b27e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/impetus/rightclick.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay.json b/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay.json deleted file mode 100644 index c6bce09cb5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/quenched_allay" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks.json b/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks.json deleted file mode 100644 index e3d66f7ed3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/quenched_allay_bricks" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks_small.json deleted file mode 100644 index 72aad9ca91..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_bricks_small.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/quenched_allay_bricks_small" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_tiles.json b/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_tiles.json deleted file mode 100644 index ddb791a0b1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/quenched_allay_tiles.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/quenched_allay_tiles" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper.json b/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper.json deleted file mode 100644 index 2621fa1b04..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/scroll_paper" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper_lantern.json b/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper_lantern.json deleted file mode 100644 index 328e1b46d9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper_lantern.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/scroll_paper_lantern" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/slate.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate.json deleted file mode 100644 index 8d7a817cc1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks.json deleted file mode 100644 index e99315f3fa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks_small.json deleted file mode 100644 index e6b5557c2f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_bricks_small.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_pillar.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_pillar.json deleted file mode 100644 index 056bc449b3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_pillar.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_tiles.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_tiles.json deleted file mode 100644 index 4c5f5d614b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_amethyst_tiles.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/deco/slate_amethyst_tiles" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_block.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate_block.json deleted file mode 100644 index 35169aaa2f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/slate_block" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_bricks.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate_bricks.json deleted file mode 100644 index 003a0daafe..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/deco/slate_bricks" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate_bricks_small.json deleted file mode 100644 index cdd21fd4d3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_bricks_small.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/deco/slate_bricks_small" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_pillar.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate_pillar.json deleted file mode 100644 index 6d0e098f31..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_pillar.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/slate_tiles.json b/Common/src/generated/resources/assets/hexcasting/blockstates/slate_tiles.json deleted file mode 100644 index 1482ae0827..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/slate_tiles.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/deco/slate_tiles" - } - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_log.json b/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_log.json deleted file mode 100644 index cb09f0122f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_log.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_wood.json b/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_wood.json deleted file mode 100644 index b6b89e3f85..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_wood.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf.json b/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf.json deleted file mode 100644 index dd5103c118..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_1.json b/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_1.json deleted file mode 100644 index 2402c6c597..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "hexcasting:block/akashic_bookshelf", - "textures": { - "overlay": "hexcasting:block/akashic_bookshelf_overlay_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_2.json b/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_2.json deleted file mode 100644 index 4846d3c2e6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "hexcasting:block/akashic_bookshelf", - "textures": { - "overlay": "hexcasting:block/akashic_bookshelf_overlay_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_3.json b/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_3.json deleted file mode 100644 index 9352317b12..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "hexcasting:block/akashic_bookshelf", - "textures": { - "overlay": "hexcasting:block/akashic_bookshelf_overlay_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_4.json b/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_4.json deleted file mode 100644 index 4f98ee656b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "hexcasting:block/akashic_bookshelf", - "textures": { - "overlay": "hexcasting:block/akashic_bookshelf_overlay_4" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_empty.json b/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_empty.json deleted file mode 100644 index 9b788e5d7c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_empty.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/akashic_ligature.json b/Common/src/generated/resources/assets/hexcasting/models/block/akashic_ligature.json deleted file mode 100644 index 72a32c3aa8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_ligature.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/akashic_ligature" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_record.json b/Common/src/generated/resources/assets/hexcasting/models/block/akashic_record.json deleted file mode 100644 index 7068b7d62f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/akashic_record.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_dust_block.json b/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_dust_block.json deleted file mode 100644 index 8fa450ab32..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_dust_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "hexcasting:block/cube_half_mirrored", - "textures": { - "all": "hexcasting:block/amethyst_dust_block" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_edified_leaves.json b/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_edified_leaves.json deleted file mode 100644 index 463617eb53..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_edified_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper.json b/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper.json deleted file mode 100644 index 5b5b77bbf0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/ancient_scroll_paper" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper_lantern.json b/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper_lantern.json deleted file mode 100644 index 19fc5366df..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper_lantern.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/aventurine_edified_leaves.json b/Common/src/generated/resources/assets/hexcasting/models/block/aventurine_edified_leaves.json deleted file mode 100644 index eb1802e0b9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/aventurine_edified_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/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 deleted file mode 100644 index 59d6517a5e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 59d6517a5e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 59d6517a5e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 59d6517a5e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 59d6517a5e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 59d6517a5e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_false_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_neither_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 70f47f0263..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 70f47f0263..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 70f47f0263..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 70f47f0263..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 70f47f0263..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 70f47f0263..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/dim_true_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 618362394c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 618362394c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 618362394c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 618362394c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 618362394c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 618362394c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_false_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index ec90eae94b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_neither_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0eac9a0e36..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0eac9a0e36..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0eac9a0e36..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0eac9a0e36..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0eac9a0e36..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0eac9a0e36..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/boolean/lit_true_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0cf00e0267..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0cf00e0267..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0cf00e0267..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0cf00e0267..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0cf00e0267..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0cf00e0267..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f4f0467931..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f4f0467931..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f4f0467931..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f4f0467931..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f4f0467931..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f4f0467931..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/empty/lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0100db33b8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0100db33b8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0100db33b8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0100db33b8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0100db33b8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 0100db33b8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_powered_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index dbdd0a7e28..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index dbdd0a7e28..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index dbdd0a7e28..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index dbdd0a7e28..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index dbdd0a7e28..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index dbdd0a7e28..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/dim_unpowered_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 5ba4750e26..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 5ba4750e26..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 5ba4750e26..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 5ba4750e26..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 5ba4750e26..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 5ba4750e26..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_powered_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index e597b41daa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index e597b41daa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index e597b41daa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index e597b41daa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index e597b41daa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index e597b41daa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/directrix/redstone/lit_unpowered_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index a4c86b9217..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index a4c86b9217..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index a4c86b9217..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index a4c86b9217..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index a4c86b9217..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index a4c86b9217..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 7a57e354a9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 7a57e354a9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 7a57e354a9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 7a57e354a9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 7a57e354a9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 7a57e354a9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/empty/lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 25c889223f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 25c889223f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 25c889223f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 25c889223f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 25c889223f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 25c889223f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f2514c5742..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f2514c5742..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f2514c5742..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f2514c5742..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f2514c5742..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f2514c5742..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/look/lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index c46569cd8c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index c46569cd8c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index c46569cd8c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index c46569cd8c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index c46569cd8c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index c46569cd8c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 1f6d0d72fe..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 1f6d0d72fe..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 1f6d0d72fe..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 1f6d0d72fe..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 1f6d0d72fe..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index 1f6d0d72fe..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/redstone/lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f25b1aa354..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f25b1aa354..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f25b1aa354..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f25b1aa354..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f25b1aa354..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index f25b1aa354..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index b55b1f7a90..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index b55b1f7a90..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index b55b1f7a90..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index b55b1f7a90..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index b55b1f7a90..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/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 deleted file mode 100644 index b55b1f7a90..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/circle/impetus/rightclick/lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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", - "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/Common/src/generated/resources/assets/hexcasting/models/block/citrine_edified_leaves.json b/Common/src/generated/resources/assets/hexcasting/models/block/citrine_edified_leaves.json deleted file mode 100644 index 3bef12c734..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/citrine_edified_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/conjured.json b/Common/src/generated/resources/assets/hexcasting/models/block/conjured.json deleted file mode 100644 index 9f80c11ee0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/conjured.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "render_type": "minecraft:cutout", - "textures": { - "particle": "minecraft:block/amethyst_block" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks.json deleted file mode 100644 index 89c8ec51c2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/amethyst_bricks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks_small.json deleted file mode 100644 index fc1202b603..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_bricks_small.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/amethyst_bricks_small" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_pillar.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_pillar.json deleted file mode 100644 index 5ee8934b7a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_pillar.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_tiles.json deleted file mode 100644 index ab9ffcda39..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/amethyst_tiles.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/amethyst_tiles" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_0.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_0.json deleted file mode 100644 index e0c97c18e6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_1.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_1.json deleted file mode 100644 index 61215cda68..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_2.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_2.json deleted file mode 100644 index 536da9000b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_3.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_3.json deleted file mode 100644 index e45bf99d14..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_0.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_0.json deleted file mode 100644 index 2b93f32793..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_small_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_1.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_1.json deleted file mode 100644 index 91ade20515..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_small_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_2.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_2.json deleted file mode 100644 index e6b6bd7b22..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_small_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_3.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_3.json deleted file mode 100644 index 7da0cdfcf8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_bricks_small_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_small_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_0.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_0.json deleted file mode 100644 index 3d953c5628..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_tiles_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_1.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_1.json deleted file mode 100644 index 6d6150b8d5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_tiles_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_2.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_2.json deleted file mode 100644 index 758194fe82..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_tiles_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_3.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_3.json deleted file mode 100644 index 5c83c33eb0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/quenched_allay_tiles_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_tiles_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_0.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_0.json deleted file mode 100644 index 910ec09904..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_amethyst_bricks_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_1.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_1.json deleted file mode 100644 index 4d565a54ae..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_amethyst_bricks_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_2.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_2.json deleted file mode 100644 index a9072bacc0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_amethyst_bricks_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_0.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_0.json deleted file mode 100644 index ad3c92af5d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_amethyst_bricks_small_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_1.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_1.json deleted file mode 100644 index 1f24ff9a6d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_amethyst_bricks_small_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_2.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_2.json deleted file mode 100644 index e106adbead..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_bricks_small_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_amethyst_bricks_small_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_tiles.json deleted file mode 100644 index 2c80ba1498..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_amethyst_tiles.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_amethyst_tiles" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks.json deleted file mode 100644 index 7fb51bcd7c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_bricks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks_small.json deleted file mode 100644 index 3b262eafff..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_bricks_small.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_bricks_small" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_tiles.json deleted file mode 100644 index d18efee914..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/deco/slate_tiles.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/slate_tiles" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_button.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_button.json deleted file mode 100644 index 1c75ef18d3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_button.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/button", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_button_pressed.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_button_pressed.json deleted file mode 100644 index a026dba7ad..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_button_pressed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/button_pressed", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left.json deleted file mode 100644 index 610c3ae5b9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left_open.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left_open.json deleted file mode 100644 index acf2e96275..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left_open.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right.json deleted file mode 100644 index 2eaa905b77..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right_open.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right_open.json deleted file mode 100644 index 8a46564f74..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right_open.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left.json deleted file mode 100644 index 90ea9df1d9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left_open.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left_open.json deleted file mode 100644 index 5573390683..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left_open.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right.json deleted file mode 100644 index 3a78e863b7..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right_open.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right_open.json deleted file mode 100644 index 26d8c1a200..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right_open.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate.json deleted file mode 100644 index c3015ca6d3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_fence_gate", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_open.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_open.json deleted file mode 100644 index ac141eb406..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_fence_gate_open", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall.json deleted file mode 100644 index ea98b16740..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_fence_gate_wall", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall_open.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall_open.json deleted file mode 100644 index 86d82ca2fc..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_gate_wall_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_fence_gate_wall_open", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_post.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_post.json deleted file mode 100644 index 281f2acc6d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/fence_post", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_side.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_side.json deleted file mode 100644 index 707af51bf2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_fence_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/fence_side", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log.json deleted file mode 100644 index 9ba1530b0c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst.json deleted file mode 100644 index e9833c81a8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst_horizontal.json deleted file mode 100644 index fdfc8bd1c1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_amethyst_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine.json deleted file mode 100644 index f9f832f6ee..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine_horizontal.json deleted file mode 100644 index e7ddcd8ed5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_aventurine_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine.json deleted file mode 100644 index ea1b1d60a5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine_horizontal.json deleted file mode 100644 index 2ae70b9aef..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_citrine_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_horizontal.json deleted file mode 100644 index 84e434e72a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_purple.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_purple.json deleted file mode 100644 index 70736370d2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_purple.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_purple_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_purple_horizontal.json deleted file mode 100644 index 235890db18..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_purple_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_panel.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_panel.json deleted file mode 100644 index 3d790f2af0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_panel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/edified_panel" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks.json deleted file mode 100644 index a722301054..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_2.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_2.json deleted file mode 100644 index d0c4c5832b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/edified_planks_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_3.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_3.json deleted file mode 100644 index bad8e6ac05..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/edified_planks_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate.json deleted file mode 100644 index 5a1b2b5727..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/pressure_plate_up", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate_down.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate_down.json deleted file mode 100644 index eeaa36461c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate_down.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/pressure_plate_down", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab.json deleted file mode 100644 index 09d601ec7b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab_top.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab_top.json deleted file mode 100644 index f4d2fcf98c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs.json deleted file mode 100644 index 6e9ae9aaae..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_inner.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_inner.json deleted file mode 100644 index 7597f2c8a4..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_outer.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_outer.json deleted file mode 100644 index 62d7ab50a9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_tile.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_tile.json deleted file mode 100644 index 595adf007a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_tile.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/edified_tile" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_bottom.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_bottom.json deleted file mode 100644 index 9c65b36965..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_bottom.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_open.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_open.json deleted file mode 100644 index 40217afd9c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_open.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_top.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_top.json deleted file mode 100644 index 325f5d4351..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_top.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood.json deleted file mode 100644 index 22851df079..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood_horizontal.json deleted file mode 100644 index 72149b4bc9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay.json b/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay.json deleted file mode 100644 index 6c2a8abe6d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/quenched_allay_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_0.json b/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_0.json deleted file mode 100644 index 6c2a8abe6d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/quenched_allay_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_1.json b/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_1.json deleted file mode 100644 index 441d91052a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/quenched_allay_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_2.json b/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_2.json deleted file mode 100644 index a561a358cc..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/quenched_allay_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_3.json b/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_3.json deleted file mode 100644 index a6fe237391..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/quenched_allay_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks.json b/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks.json deleted file mode 100644 index e0c97c18e6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks_small.json deleted file mode 100644 index 2b93f32793..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_bricks_small.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_bricks_small_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_tiles.json deleted file mode 100644 index 3d953c5628..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/quenched_allay_tiles.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/deco/quenched_allay_tiles_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper.json b/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper.json deleted file mode 100644 index 621451b72c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/scroll_paper" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper_lantern.json b/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper_lantern.json deleted file mode 100644 index 3c16a2113f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper_lantern.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar.json b/Common/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar.json deleted file mode 100644 index 1ec3ef6cf3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar_horizontal.json deleted file mode 100644 index bbd24d1c98..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/slate_amethyst_pillar_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/slate_block.json b/Common/src/generated/resources/assets/hexcasting/models/block/slate_block.json deleted file mode 100644 index 0afe24d83a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/slate_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/slate" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/block/slate_pillar.json b/Common/src/generated/resources/assets/hexcasting/models/block/slate_pillar.json deleted file mode 100644 index 697f4daab2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/slate_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/slate_pillar_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/slate_pillar_horizontal.json deleted file mode 100644 index cca16a0c07..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/slate_pillar_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log.json b/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log.json deleted file mode 100644 index 4aa871e92c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log_horizontal.json deleted file mode 100644 index 0925c23c78..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood.json b/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood.json deleted file mode 100644 index 8ef17c0d21..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood_horizontal.json b/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood_horizontal.json deleted file mode 100644 index 57dcfcc53c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/abacus.json b/Common/src/generated/resources/assets/hexcasting/models/item/abacus.json deleted file mode 100644 index f6947c4360..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/abacus.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/abacus" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/akashic_bookshelf.json b/Common/src/generated/resources/assets/hexcasting/models/item/akashic_bookshelf.json deleted file mode 100644 index 7c88c3e218..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/akashic_bookshelf.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/akashic_bookshelf_empty" -} \ 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_connector.json deleted file mode 100644 index de9a37be49..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/akashic_connector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/akashic_ligature" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/akashic_record.json b/Common/src/generated/resources/assets/hexcasting/models/item/akashic_record.json deleted file mode 100644 index 1ea5e0eeb6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/akashic_record.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/akashic_record" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks.json b/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks.json deleted file mode 100644 index 5ec0842948..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/amethyst_bricks" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks_small.json deleted file mode 100644 index 1b8fe48dd2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_bricks_small.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/amethyst_bricks_small" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust.json b/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust.json deleted file mode 100644 index 140659dfab..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/amethyst_dust" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust_block.json b/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust_block.json deleted file mode 100644 index 8cd53fc3ab..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/amethyst_dust_block" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_edified_leaves.json b/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_edified_leaves.json deleted file mode 100644 index d6015ea1f2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_edified_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/amethyst_edified_leaves" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_pillar.json b/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_pillar.json deleted file mode 100644 index 98d9d0c82f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/amethyst_pillar" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_sconce.json b/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_sconce.json deleted file mode 100644 index bb1657f9a1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_sconce.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/amethyst_sconce" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_tiles.json deleted file mode 100644 index b8ecd40c70..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_tiles.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/amethyst_tiles" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_colorizer.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_colorizer.json deleted file mode 100644 index 8e99cad0e1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_colorizer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/ancient" - } -} \ No newline at end of file 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 deleted file mode 100644 index ffc8b5e1cc..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "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 deleted file mode 100644 index b38ad18d6d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_0_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 deleted file mode 100644 index e8b7b12d55..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "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 deleted file mode 100644 index 856b0a26d7..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_1_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 deleted file mode 100644 index 3badfcdd0f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "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 deleted file mode 100644 index effb9e0198..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_2_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 deleted file mode 100644 index 98aabd91e8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "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 deleted file mode 100644 index 2f19e9feea..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_3_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 deleted file mode 100644 index 93318f7bc4..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "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 deleted file mode 100644 index 081cfd65c4..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_4_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 deleted file mode 100644 index 836e50f966..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "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 deleted file mode 100644 index 2ab2d47128..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_5_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "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 deleted file mode 100644 index bf9c9fe505..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "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 deleted file mode 100644 index 199292d90f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_6_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 deleted file mode 100644 index 56e0653080..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "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 deleted file mode 100644 index b408892c14..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_cypher_7_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper.json deleted file mode 100644 index 810d0e68c5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/ancient_scroll_paper" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper_lantern.json b/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper_lantern.json deleted file mode 100644 index 39cf0ac289..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper_lantern.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/ancient_scroll_paper_lantern" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/artifact.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact.json deleted file mode 100644 index d0db0e434f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/artifact_0_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_0_filled.json deleted file mode 100644 index 1e835b5f74..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_0_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/artifact_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_1.json deleted file mode 100644 index 870900b6f1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/1_artifact" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_1_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_1_filled.json deleted file mode 100644 index a0f005be3f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_1_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/artifact_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_2.json deleted file mode 100644 index f2f7fbea97..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/2_artifact" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_2_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_2_filled.json deleted file mode 100644 index cade3931d1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_2_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/artifact_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_3.json deleted file mode 100644 index 2cb6553e13..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/3_artifact" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_3_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_3_filled.json deleted file mode 100644 index 23c0456285..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_3_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/artifact_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_4.json deleted file mode 100644 index 216c308d2c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/4_artifact" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_4_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_4_filled.json deleted file mode 100644 index d48959f9d1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_4_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/artifact_5.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_5.json deleted file mode 100644 index d3ca0607a4..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_5.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/cad/5_artifact" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_5_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_5_filled.json deleted file mode 100644 index 50a87b02a5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_5_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/cad/5_artifact", - "layer1": "hexcasting:item/cad/5_artifact_overlay" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_6.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_6.json deleted file mode 100644 index c66d93ec85..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_6.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/6_artifact" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_6_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_6_filled.json deleted file mode 100644 index 3d5f969ddf..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_6_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/artifact_7.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_7.json deleted file mode 100644 index 1b89f90904..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_7.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/7_artifact" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_7_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/artifact_7_filled.json deleted file mode 100644 index 0e9043060d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/artifact_7_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/aventurine_edified_leaves.json b/Common/src/generated/resources/assets/hexcasting/models/item/aventurine_edified_leaves.json deleted file mode 100644 index 0ae3302116..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/aventurine_edified_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/aventurine_edified_leaves" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/battery.json b/Common/src/generated/resources/assets/hexcasting/models/item/battery.json deleted file mode 100644 index 11be0c6cd1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/battery.json +++ /dev/null @@ -1,179 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/charged_amethyst.json b/Common/src/generated/resources/assets/hexcasting/models/item/charged_amethyst.json deleted file mode 100644 index 2d147958cb..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/charged_amethyst.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/charged_amethyst" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cherry_staff.json b/Common/src/generated/resources/assets/hexcasting/models/item/cherry_staff.json deleted file mode 100644 index 1fb6398518..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cherry_staff.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/cherry" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/citrine_edified_leaves.json b/Common/src/generated/resources/assets/hexcasting/models/item/citrine_edified_leaves.json deleted file mode 100644 index f44ca6c924..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/citrine_edified_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/citrine_edified_leaves" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/conjured_block.json b/Common/src/generated/resources/assets/hexcasting/models/item/conjured_block.json deleted file mode 100644 index a0bab4ff76..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/conjured_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "minecraft:item/amethyst_shard" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/conjured_light.json b/Common/src/generated/resources/assets/hexcasting/models/item/conjured_light.json deleted file mode 100644 index a0bab4ff76..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/conjured_light.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "minecraft:item/amethyst_shard" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/creative_unlocker.json b/Common/src/generated/resources/assets/hexcasting/models/item/creative_unlocker.json deleted file mode 100644 index 452b44f612..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/creative_unlocker.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/creative_unlocker" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cypher.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher.json deleted file mode 100644 index 1a93187096..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/cypher_0_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_0_filled.json deleted file mode 100644 index 190be7e602..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_0_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/cypher_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_1.json deleted file mode 100644 index 71a9ff7cc0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/1_cypher" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_1_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_1_filled.json deleted file mode 100644 index abff99cd2f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_1_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/cypher_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_2.json deleted file mode 100644 index f7b22a7958..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/2_cypher" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_2_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_2_filled.json deleted file mode 100644 index 75143f8a30..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_2_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/cypher_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_3.json deleted file mode 100644 index da55138305..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/3_cypher" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_3_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_3_filled.json deleted file mode 100644 index cbac2eaf44..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_3_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/cypher_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_4.json deleted file mode 100644 index 90430a8f8a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/4_cypher" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_4_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_4_filled.json deleted file mode 100644 index e56ed90c0a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_4_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/cypher_5.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_5.json deleted file mode 100644 index 83f0da6e92..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_5.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/cad/5_cypher" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_5_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_5_filled.json deleted file mode 100644 index 9561773539..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_5_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/cad/5_cypher", - "layer1": "hexcasting:item/cad/5_cypher_overlay" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_6.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_6.json deleted file mode 100644 index bdb310d836..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_6.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/6_cypher" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_6_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_6_filled.json deleted file mode 100644 index f9ed07c951..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_6_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/cypher_7.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_7.json deleted file mode 100644 index 29e4768e9a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_7.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/7_cypher" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_7_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/cypher_7_filled.json deleted file mode 100644 index 2de0bb8752..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/cypher_7_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/default_colorizer.json b/Common/src/generated/resources/assets/hexcasting/models/item/default_colorizer.json deleted file mode 100644 index 9041330dd9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/default_colorizer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/default" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/directrix/boolean.json b/Common/src/generated/resources/assets/hexcasting/models/item/directrix/boolean.json deleted file mode 100644 index cd729d804c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/directrix/boolean.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/circle/directrix/boolean/lit_false_east" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/directrix/empty.json b/Common/src/generated/resources/assets/hexcasting/models/item/directrix/empty.json deleted file mode 100644 index 98be3ef487..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/directrix/empty.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/circle/directrix/empty/dim_east" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/directrix/redstone.json b/Common/src/generated/resources/assets/hexcasting/models/item/directrix/redstone.json deleted file mode 100644 index e2b947d5a9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/directrix/redstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/circle/directrix/redstone/lit_unpowered_east" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_black.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_black.json deleted file mode 100644 index 2f55b6c22b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_black" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_blue.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_blue.json deleted file mode 100644 index add421a999..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_blue" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_brown.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_brown.json deleted file mode 100644 index 3be301eb1a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_brown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_brown" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_cyan.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_cyan.json deleted file mode 100644 index c436f3155b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_cyan.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_cyan" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_gray.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_gray.json deleted file mode 100644 index 146f01411c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_gray" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_green.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_green.json deleted file mode 100644 index 679f147944..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_green.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_green" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_blue.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_blue.json deleted file mode 100644 index 433877e853..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_light_blue" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_gray.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_gray.json deleted file mode 100644 index f5625b67c2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_light_gray" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_lime.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_lime.json deleted file mode 100644 index c1cf22959e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_lime.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_lime" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_magenta.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_magenta.json deleted file mode 100644 index 12dcaa82c4..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_magenta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_magenta" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_orange.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_orange.json deleted file mode 100644 index 99679c17f8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_orange.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_orange" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_pink.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_pink.json deleted file mode 100644 index c138e93ff0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_pink.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_pink" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_purple.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_purple.json deleted file mode 100644 index d31e3b601c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_purple.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_purple" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_red.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_red.json deleted file mode 100644 index 1fb8f9dd4d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_red.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_red" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_white.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_white.json deleted file mode 100644 index db4d15eb32..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_white" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_yellow.json b/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_yellow.json deleted file mode 100644 index 594bb0a09d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_yellow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/dye_yellow" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_button.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_button.json deleted file mode 100644 index e18736c2c8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_button.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/button_inventory", - "textures": { - "texture": "hexcasting:block/edified_planks" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_door.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_door.json deleted file mode 100644 index 5d6fb8d7ff..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_door.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/edified_door" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_fence.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_fence.json deleted file mode 100644 index db31b01904..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_fence_inventory" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_fence_gate.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_fence_gate.json deleted file mode 100644 index 3dfe521195..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_fence_gate" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_log.json deleted file mode 100644 index d3c7aeeb06..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_log" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_amethyst.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_amethyst.json deleted file mode 100644 index 8e80eb679a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_amethyst.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_log_amethyst" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_aventurine.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_aventurine.json deleted file mode 100644 index 45007ec40b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_aventurine.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_log_aventurine" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_citrine.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_citrine.json deleted file mode 100644 index 9cae394851..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_citrine.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_log_citrine" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_purple.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_purple.json deleted file mode 100644 index 62c67453ce..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_log_purple.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_log_purple" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_panel.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_panel.json deleted file mode 100644 index 355e2765e1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_panel.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_panel" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_planks.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_planks.json deleted file mode 100644 index 4ed5d45aab..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_planks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_planks" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_pressure_plate.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_pressure_plate.json deleted file mode 100644 index 921f7f5bd0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_pressure_plate" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_slab.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_slab.json deleted file mode 100644 index 4772af6ed1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_slab" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_stairs.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_stairs.json deleted file mode 100644 index 90eb4d5123..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_stairs" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_tile.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_tile.json deleted file mode 100644 index 05702f6ed8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_tile.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_tile" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_trapdoor.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_trapdoor.json deleted file mode 100644 index 8c89f1e881..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_trapdoor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_trapdoor_bottom" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/edified_wood.json b/Common/src/generated/resources/assets/hexcasting/models/item/edified_wood.json deleted file mode 100644 index c9bfee3a01..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/edified_wood.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/edified_wood" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/focus.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus.json deleted file mode 100644 index 78328a9dee..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_0_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_0_filled.json deleted file mode 100644 index 508a3497f6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_0_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_0_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_0_sealed.json deleted file mode 100644 index 0a64292241..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_0_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_1.json deleted file mode 100644 index 75d8bf400d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/1_focus_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/focus_1_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_1_filled.json deleted file mode 100644 index bd04934627..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_1_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_1_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_1_sealed.json deleted file mode 100644 index 001bf05b5a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_1_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_2.json deleted file mode 100644 index a9ef859978..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/2_focus_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/focus_2_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_2_filled.json deleted file mode 100644 index 05c2799dfc..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_2_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_2_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_2_sealed.json deleted file mode 100644 index 1c7c230bef..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_2_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_3.json deleted file mode 100644 index fb366d08b2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/3_focus_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/focus_3_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_3_filled.json deleted file mode 100644 index 3ad27dfcdf..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_3_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_3_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_3_sealed.json deleted file mode 100644 index 447b7b4198..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_3_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_4.json deleted file mode 100644 index a3c1bf4eb2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/4_focus_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/focus_4_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_4_filled.json deleted file mode 100644 index 8b9eb2024f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_4_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_4_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_4_sealed.json deleted file mode 100644 index 2831235f44..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_4_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_5.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_5.json deleted file mode 100644 index e13b4fa14b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_5.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/5_focus_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/focus_5_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_5_filled.json deleted file mode 100644 index cbac2be535..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_5_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_5_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_5_sealed.json deleted file mode 100644 index 248801d925..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_5_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_6.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_6.json deleted file mode 100644 index 3bc3f8518f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_6.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/6_focus_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/focus_6_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_6_filled.json deleted file mode 100644 index e950df1223..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_6_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_6_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_6_sealed.json deleted file mode 100644 index c10282e6b1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_6_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_7.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_7.json deleted file mode 100644 index 8ad8085617..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_7.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/7_focus_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/focus_7_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_7_filled.json deleted file mode 100644 index e6d7b1f28d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_7_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/focus_7_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/focus_7_sealed.json deleted file mode 100644 index 52d149f4ae..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/focus_7_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/impetus/empty.json b/Common/src/generated/resources/assets/hexcasting/models/item/impetus/empty.json deleted file mode 100644 index 68e7192da1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/impetus/empty.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/circle/impetus/empty/dim_east" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/impetus/look.json b/Common/src/generated/resources/assets/hexcasting/models/item/impetus/look.json deleted file mode 100644 index 73f69303be..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/impetus/look.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/circle/impetus/look/lit_east" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/impetus/redstone.json b/Common/src/generated/resources/assets/hexcasting/models/item/impetus/redstone.json deleted file mode 100644 index 523b5343b6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/impetus/redstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/circle/impetus/redstone/lit_east" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/impetus/rightclick.json b/Common/src/generated/resources/assets/hexcasting/models/item/impetus/rightclick.json deleted file mode 100644 index 381232171f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/impetus/rightclick.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/circle/impetus/rightclick/lit_east" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/jeweler_hammer.json b/Common/src/generated/resources/assets/hexcasting/models/item/jeweler_hammer.json deleted file mode 100644 index 22447e1fbd..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/jeweler_hammer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "hexcasting:item/jeweler_hammer" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/lens.json b/Common/src/generated/resources/assets/hexcasting/models/item/lens.json deleted file mode 100644 index 2fdc8f9ce5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/lens.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/lore_fragment.json b/Common/src/generated/resources/assets/hexcasting/models/item/lore_fragment.json deleted file mode 100644 index 2b2f9e66fa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/lore_fragment.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/lore_fragment" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/old_staff.json b/Common/src/generated/resources/assets/hexcasting/models/item/old_staff.json deleted file mode 100644 index f40e6b8ab1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/old_staff.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/old" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/patchouli_book.json b/Common/src/generated/resources/assets/hexcasting/models/item/patchouli_book.json deleted file mode 100644 index a840c0e427..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/patchouli_book.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/patchouli_book" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_0.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_0.json deleted file mode 100644 index db3db02acd..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_large_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_1.json deleted file mode 100644 index bdff2d1022..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_large_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_2.json deleted file mode 100644 index 9c09bea449..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_large_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_3.json deleted file mode 100644 index 085960c8d8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_large_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_4.json deleted file mode 100644 index c39357f8de..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_large_4" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_0.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_0.json deleted file mode 100644 index d5e18bb295..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_larger_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_1.json deleted file mode 100644 index b19928c486..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_larger_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_2.json deleted file mode 100644 index ac7ed775cc..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_larger_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_3.json deleted file mode 100644 index b02ce98e95..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_larger_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_4.json deleted file mode 100644 index 8b313df86f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_larger_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_larger_4" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_0.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_0.json deleted file mode 100644 index 0e44b418f2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_largest_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_1.json deleted file mode 100644 index 4f456814f5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_largest_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_2.json deleted file mode 100644 index ab2bdf4a2b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_largest_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_3.json deleted file mode 100644 index 10d70acab3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_largest_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_4.json deleted file mode 100644 index 3c0682e560..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_largest_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_largest_4" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_0.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_0.json deleted file mode 100644 index cb8b4c0920..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_medium_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_1.json deleted file mode 100644 index a7f30e8113..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_medium_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_2.json deleted file mode 100644 index f9f5615cf2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_medium_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_3.json deleted file mode 100644 index dbfcb528bd..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_medium_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_4.json deleted file mode 100644 index a7501a8e1b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_medium_4" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_0.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_0.json deleted file mode 100644 index fda398e2d9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_small_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_1.json deleted file mode 100644 index df784108aa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_small_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_2.json deleted file mode 100644 index f868032c36..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_small_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_3.json deleted file mode 100644 index ce4a7999b0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_small_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_4.json deleted file mode 100644 index bde40839db..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/phial/phial_small_4" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_agender.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_agender.json deleted file mode 100644 index 9c68ff47ff..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_agender.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_agender" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aroace.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aroace.json deleted file mode 100644 index eb0fabc595..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aroace.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_aroace" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aromantic.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aromantic.json deleted file mode 100644 index 7ea60f31e3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aromantic.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_aromantic" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_asexual.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_asexual.json deleted file mode 100644 index d40b1f2bcb..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_asexual.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_asexual" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_bisexual.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_bisexual.json deleted file mode 100644 index e1d4b2d77f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_bisexual.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_bisexual" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demiboy.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demiboy.json deleted file mode 100644 index cd0fe06093..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demiboy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_demiboy" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demigirl.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demigirl.json deleted file mode 100644 index afda4cabea..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demigirl.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_demigirl" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_gay.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_gay.json deleted file mode 100644 index 353816c8ad..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_gay.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_gay" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderfluid.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderfluid.json deleted file mode 100644 index fe3641c797..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderfluid.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_genderfluid" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderqueer.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderqueer.json deleted file mode 100644 index 270eeb011f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderqueer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_genderqueer" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_intersex.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_intersex.json deleted file mode 100644 index 506facd3de..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_intersex.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_intersex" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_lesbian.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_lesbian.json deleted file mode 100644 index 61d110d4cc..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_lesbian.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_lesbian" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_nonbinary.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_nonbinary.json deleted file mode 100644 index 0212b47a17..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_nonbinary.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_nonbinary" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_pansexual.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_pansexual.json deleted file mode 100644 index 706726a311..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_pansexual.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_pansexual" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_plural.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_plural.json deleted file mode 100644 index e6ecd7890e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_plural.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_plural" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_transgender.json b/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_transgender.json deleted file mode 100644 index 2655a8e596..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_transgender.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/pride_transgender" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json deleted file mode 100644 index c6ee6b0951..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json deleted file mode 100644 index c3a1b63856..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json deleted file mode 100644 index c0e376a548..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json deleted file mode 100644 index 495e817b78..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json deleted file mode 100644 index 5ea5cf33c5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_0.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_0.json deleted file mode 100644 index bdd43ddc80..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "hexcasting:item/quenched_shard_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_1.json deleted file mode 100644 index 4cffa2efe0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "hexcasting:item/quenched_shard_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_2.json deleted file mode 100644 index e24c8dafbf..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "hexcasting:item/quenched_shard_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_3.json deleted file mode 100644 index 208890fe3d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_shard_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "hexcasting:item/quenched_shard_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/scroll.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll.json deleted file mode 100644 index 5453ed3ec6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_large.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_large.json deleted file mode 100644 index 192b9920a6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_large.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/scroll_ancient_large" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_medium.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_medium.json deleted file mode 100644 index eccfe83cb7..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_medium.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/scroll_ancient_medium" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_small.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_small.json deleted file mode 100644 index 5f66417b21..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_small.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/scroll_ancient_small" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_medium.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_medium.json deleted file mode 100644 index 7752e9be45..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_medium.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper.json deleted file mode 100644 index ee576746b9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/scroll_paper" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper_lantern.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper_lantern.json deleted file mode 100644 index 8fafbd4a86..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper_lantern.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/scroll_paper_lantern" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_large.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_large.json deleted file mode 100644 index 0042b78487..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_large.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/scroll_pristine_large" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_medium.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_medium.json deleted file mode 100644 index a219c7855d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_medium.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/scroll_pristine_medium" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_small.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_small.json deleted file mode 100644 index 6405ebefb2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_small.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/scroll_pristine_small" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_small.json b/Common/src/generated/resources/assets/hexcasting/models/item/scroll_small.json deleted file mode 100644 index 583fd0f3c8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/scroll_small.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/slate.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate.json deleted file mode 100644 index 146695e299..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks.json deleted file mode 100644 index 727a50c807..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/slate_amethyst_bricks_0" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks_small.json deleted file mode 100644 index accf94f2b3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_bricks_small.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/slate_amethyst_bricks_small_0" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_pillar.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_pillar.json deleted file mode 100644 index 749887313c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/slate_amethyst_pillar" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_tiles.json deleted file mode 100644 index e20b742c26..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_amethyst_tiles.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/slate_amethyst_tiles" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_blank.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_blank.json deleted file mode 100644 index df037ffa4b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_blank.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/slate_blank" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_block.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_block.json deleted file mode 100644 index c40e37f12b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/slate_block" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_bricks.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_bricks.json deleted file mode 100644 index adc880399e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/slate_bricks" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_bricks_small.json deleted file mode 100644 index 4d0555b2c6..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_bricks_small.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/slate_bricks_small" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_pillar.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_pillar.json deleted file mode 100644 index 8d6a18fa25..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/slate_pillar" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_tiles.json deleted file mode 100644 index c2bf7616b8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_tiles.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/deco/slate_tiles" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/slate_written.json b/Common/src/generated/resources/assets/hexcasting/models/item/slate_written.json deleted file mode 100644 index a17de30bf5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/slate_written.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/slate_written" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook.json deleted file mode 100644 index 5acb33c2cd..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_0_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_0_filled.json deleted file mode 100644 index 1727f3854d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_0_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_0_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_0_sealed.json deleted file mode 100644 index e580e3ceb5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_0_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_1.json deleted file mode 100644 index 6b832d7806..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/1_spellbook_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_1_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_1_filled.json deleted file mode 100644 index 3ded667934..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_1_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_1_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_1_sealed.json deleted file mode 100644 index 91c0ed2bc4..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_1_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_2.json deleted file mode 100644 index 2d1355b5e9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/2_spellbook_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_2_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_2_filled.json deleted file mode 100644 index 9af15dfbbb..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_2_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_2_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_2_sealed.json deleted file mode 100644 index bd336d2d1a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_2_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_3.json deleted file mode 100644 index e18eaf0d3c..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/3_spellbook_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_3_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_3_filled.json deleted file mode 100644 index 6b611c62b0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_3_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_3_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_3_sealed.json deleted file mode 100644 index 25a265b6d3..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_3_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_4.json deleted file mode 100644 index 38cd5d8fc0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/4_spellbook_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_4_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_4_filled.json deleted file mode 100644 index ebccd06cef..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_4_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_4_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_4_sealed.json deleted file mode 100644 index d281078d45..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_4_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_5.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_5.json deleted file mode 100644 index 2f82f7d8a2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_5.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/5_spellbook_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_5_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_5_filled.json deleted file mode 100644 index 99cc74e732..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_5_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_5_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_5_sealed.json deleted file mode 100644 index 0a4a822a5b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_5_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_6.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_6.json deleted file mode 100644 index 608c5cdd24..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_6.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/6_spellbook_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_6_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_6_filled.json deleted file mode 100644 index b47cfbac66..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_6_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_6_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_6_sealed.json deleted file mode 100644 index 2fa15268d2..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_6_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_7.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_7.json deleted file mode 100644 index 1e7e436978..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_7.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/7_spellbook_empty" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_7_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_7_filled.json deleted file mode 100644 index 8438b02ac0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_7_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_7_sealed.json b/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_7_sealed.json deleted file mode 100644 index d91512283f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_7_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/staff/acacia.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/acacia.json deleted file mode 100644 index ea1bd514d1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/acacia.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/acacia" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/bamboo.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/bamboo.json deleted file mode 100644 index cb00188989..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/bamboo.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/bamboo" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/birch.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/birch.json deleted file mode 100644 index c56b377279..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/birch.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/birch" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/cherry.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/cherry.json deleted file mode 100644 index 1fb6398518..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/cherry.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/cherry" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/crimson.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/crimson.json deleted file mode 100644 index fa68214ae5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/crimson.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/crimson" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/dark_oak.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/dark_oak.json deleted file mode 100644 index ef89b141c8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/dark_oak.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/dark_oak" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/edified.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/edified.json deleted file mode 100644 index 2ecbbaa4b8..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/edified.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/edified" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/jungle.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/jungle.json deleted file mode 100644 index 81fc631e34..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/jungle.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/jungle" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/mangrove.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/mangrove.json deleted file mode 100644 index 1d055a8943..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/mangrove.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/mangrove" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/mindsplice.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/mindsplice.json deleted file mode 100644 index a2a679a5b5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/mindsplice.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/mindsplice" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/oak.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/oak.json deleted file mode 100644 index c9a35a19c7..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/oak.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/oak" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json deleted file mode 100644 index 16e5858599..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_0.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_0.json deleted file mode 100644 index d34dbbfe48..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/quenched_0" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_1.json deleted file mode 100644 index b3b4d49426..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/quenched_1" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_2.json deleted file mode 100644 index 9d34fae3ed..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/quenched_2" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_3.json deleted file mode 100644 index 61a55746b1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/quenched_3" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/spruce.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/spruce.json deleted file mode 100644 index aa60185a6a..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/spruce.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/spruce" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/warped.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/warped.json deleted file mode 100644 index 4a157768aa..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/warped.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staff/warped" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_log.json b/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_log.json deleted file mode 100644 index 69e448436d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/stripped_edified_log" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_wood.json b/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_wood.json deleted file mode 100644 index 45e5b99e81..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_wood.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/stripped_edified_wood" -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/sub_sandwich.json b/Common/src/generated/resources/assets/hexcasting/models/item/sub_sandwich.json deleted file mode 100644 index c5dd346a84..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/sub_sandwich.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/sub_sandwich" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/thought_knot.json b/Common/src/generated/resources/assets/hexcasting/models/item/thought_knot.json deleted file mode 100644 index 4a9917224b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/thought_knot.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/thought_knot_written.json b/Common/src/generated/resources/assets/hexcasting/models/item/thought_knot_written.json deleted file mode 100644 index f5b12c99d9..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/thought_knot_written.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/trinket.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket.json deleted file mode 100644 index 19102d169b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/trinket_0_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_0_filled.json deleted file mode 100644 index 77da0e72e5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_0_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/trinket_1.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_1.json deleted file mode 100644 index 4eb168d7f1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/1_trinket" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_1_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_1_filled.json deleted file mode 100644 index 80a274ce90..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_1_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/trinket_2.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_2.json deleted file mode 100644 index f38c5e5dc4..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/2_trinket" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_2_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_2_filled.json deleted file mode 100644 index 6c60bb9486..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_2_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/trinket_3.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_3.json deleted file mode 100644 index 4410e1a4ff..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/3_trinket" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_3_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_3_filled.json deleted file mode 100644 index 4aea4da78e..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_3_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/trinket_4.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_4.json deleted file mode 100644 index 87903d7d9b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/4_trinket" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_4_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_4_filled.json deleted file mode 100644 index 9b61c263fb..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_4_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/trinket_5.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_5.json deleted file mode 100644 index 7e5d29274b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_5.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/cad/5_trinket" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_5_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_5_filled.json deleted file mode 100644 index 0b07194441..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_5_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/cad/5_trinket", - "layer1": "hexcasting:item/cad/5_trinket_overlay" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_6.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_6.json deleted file mode 100644 index 6cc75f387d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_6.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/6_trinket" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_6_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_6_filled.json deleted file mode 100644 index bdd007f345..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_6_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/trinket_7.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_7.json deleted file mode 100644 index a2f57e04cc..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_7.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cad/7_trinket" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_7_filled.json b/Common/src/generated/resources/assets/hexcasting/models/item/trinket_7_filled.json deleted file mode 100644 index e83c8fa4bc..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/trinket_7_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/item/uuid_colorizer.json b/Common/src/generated/resources/assets/hexcasting/models/item/uuid_colorizer.json deleted file mode 100644 index 0b76dd8f8f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/item/uuid_colorizer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/colorizer/uuid" - } -} \ No newline at end of file diff --git a/Common/src/generated/resources/assets/hexcasting/models/staff/acacia.json b/Common/src/generated/resources/assets/hexcasting/models/staff/acacia.json deleted file mode 100644 index 6a28f12462..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/acacia.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/bamboo.json b/Common/src/generated/resources/assets/hexcasting/models/staff/bamboo.json deleted file mode 100644 index c0f063051f..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/bamboo.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/birch.json b/Common/src/generated/resources/assets/hexcasting/models/staff/birch.json deleted file mode 100644 index 571e454dd7..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/birch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/cherry.json b/Common/src/generated/resources/assets/hexcasting/models/staff/cherry.json deleted file mode 100644 index 9a663a248b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/cherry.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/crimson.json b/Common/src/generated/resources/assets/hexcasting/models/staff/crimson.json deleted file mode 100644 index 059589861d..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/crimson.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/dark_oak.json b/Common/src/generated/resources/assets/hexcasting/models/staff/dark_oak.json deleted file mode 100644 index 31dc19c0e5..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/dark_oak.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/edified.json b/Common/src/generated/resources/assets/hexcasting/models/staff/edified.json deleted file mode 100644 index 903e47409b..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/edified.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/jungle.json b/Common/src/generated/resources/assets/hexcasting/models/staff/jungle.json deleted file mode 100644 index 06b8e032d0..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/jungle.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/mangrove.json b/Common/src/generated/resources/assets/hexcasting/models/staff/mangrove.json deleted file mode 100644 index 0d75f169c1..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/mangrove.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/mindsplice.json b/Common/src/generated/resources/assets/hexcasting/models/staff/mindsplice.json deleted file mode 100644 index 5c469011ad..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/mindsplice.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/oak.json b/Common/src/generated/resources/assets/hexcasting/models/staff/oak.json deleted file mode 100644 index 8903a42caf..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/oak.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/spruce.json b/Common/src/generated/resources/assets/hexcasting/models/staff/spruce.json deleted file mode 100644 index 3f3562c473..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/spruce.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/Common/src/generated/resources/assets/hexcasting/models/staff/warped.json b/Common/src/generated/resources/assets/hexcasting/models/staff/warped.json deleted file mode 100644 index 62ab1990d7..0000000000 --- a/Common/src/generated/resources/assets/hexcasting/models/staff/warped.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "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/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/damage_type/overcast.json b/Common/src/generated/resources/data/hexcasting/damage_type/overcast.json deleted file mode 100644 index 012582c4b2..0000000000 --- a/Common/src/generated/resources/data/hexcasting/damage_type/overcast.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "exhaustion": 0.0, - "message_id": "hexcasting.overcast", - "scaling": "when_caused_by_living_non_player" -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json deleted file mode 100644 index 4209c89aa3..0000000000 --- a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:overcast" - ] -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json deleted file mode 100644 index 4209c89aa3..0000000000 --- a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:overcast" - ] -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json deleted file mode 100644 index 4209c89aa3..0000000000 --- a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:overcast" - ] -} \ 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/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 ae149a081e..7b16566b1b 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 @@ -11,10 +11,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; @@ -171,35 +168,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)) @@ -207,12 +206,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/CastingEnvironment.java b/Common/src/main/java/at/petrak/hexcasting/api/casting/eval/CastingEnvironment.java index 2345eb4267..d47c19f675 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 @@ -12,6 +12,7 @@ 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; @@ -230,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; 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 333deaa813..e453ec221b 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 @@ -15,6 +15,7 @@ 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; 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 83e58a818b..8b816825b7 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 @@ -18,6 +18,7 @@ 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; @@ -154,7 +155,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)); @@ -178,9 +179,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 cf887a117b..da06cdd4ac 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 11503b0b6f..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 @@ -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 02d9612767..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. @@ -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/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 0eddd14808..824161c7f5 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,19 +1,17 @@ package at.petrak.hexcasting.api.casting.iota; import at.petrak.hexcasting.api.casting.SpellList; +import at.petrak.hexcasting.api.mod.HexConfig; import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import at.petrak.hexcasting.api.mod.HexConfig; +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; @@ -22,11 +20,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) { @@ -42,7 +42,7 @@ public ListIota(@NotNull List list) { } public SpellList getList() { - return (SpellList) this.payload; + return list; } @Override @@ -78,15 +78,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(); @@ -102,46 +93,49 @@ 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 method on IotaType to allow it to opt out of commas? + if (i < list.size() - 1) { + var thisIotaNeedsComma = sub.type != PatternIota.TYPE; + var nextIotaNeedsComma = list.getAt(i + 1).type != PatternIota.TYPE; + var alwaysShowCommas = HexConfig.client() != null && HexConfig.client().alwaysShowListCommas(); + if (thisIotaNeedsComma || nextIotaNeedsComma || alwaysShowCommas) + 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 method on IotaType to allow it to opt out of commas? - if (i < list.size() - 1) { - var thisIotaNeedsComma = IotaType.getTypeFromTag(csub) != PatternIota.TYPE; - var nextIotaNeedsComma = IotaType.getTypeFromTag(HexUtils.downcast(list.get(i+1), CompoundTag.TYPE)) != PatternIota.TYPE; - var alwaysShowCommas = HexConfig.client() != null && HexConfig.client().alwaysShowListCommas(); - if (thisIotaNeedsComma || nextIotaNeedsComma || alwaysShowCommas) - 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 74db0a95fb..d3700b676b 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 f491f90fca..97bcca7a4f 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 import kotlin.jvm.Throws @@ -74,12 +77,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 { @@ -138,18 +135,12 @@ data class HexPattern(val startDir: HexDir, val angles: MutableList = ).apply(instance, HexPattern::fromAnglesUnchecked) } - @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 + ) /** * Construct a [HexPattern] from an angle signature and starting direction. 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/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 2741b1df4d..18462ce2e2 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 @@ -21,7 +21,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): Component? { 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 4e9f9a18df..efaa6c42f1 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 @@ -20,7 +20,7 @@ class MishapInvalidPattern(val pattern: HexPattern?) : 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): Component? { 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 aa4859f5ed..497f633af4 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 @@ -109,11 +109,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 3317bdbc80..cfeda63b4a 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 @@ -54,6 +54,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 4f2f1540bc..63b133295c 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,36 +22,23 @@ * 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); - + () -> new FrozenPigment(new ItemStack(HexItems.DEFAULT_PIGMENT), Util.NIL_UUID); public static final Supplier ANCIENT = - () -> new FrozenPigment(new ItemStack(HexItems.ANCIENT_PIGMENT), Util.NIL_UUID); + () -> new FrozenPigment(new ItemStack(HexItems.ANCIENT_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 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(); - } - } 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 14ce4e1d22..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,10 +59,10 @@ 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); @@ -69,7 +72,7 @@ public static void init() { 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; @@ -134,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 @@ -166,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); } @@ -192,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)) { @@ -209,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) { @@ -222,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); @@ -256,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/"; @@ -264,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/"; @@ -278,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 df0c5acb60..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 ) @@ -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 0e96540a91..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(); 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 ca7af5d23f..bdbfd18ea5 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) { @@ -101,17 +106,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"))); @@ -119,26 +125,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 ac3957323b..ae16b64cf6 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,10 +20,10 @@ 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) 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 f0c0543252..7cefbb95e2 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 @@ -30,7 +30,7 @@ class OpMakePackagedSpell(val isValid: Predicate, val expectedTypeDes 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 { @@ -59,7 +59,7 @@ class OpMakePackagedSpell(val isValid: Predicate, val expectedTypeDes ) } - 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 88c3113e68..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({ ItemStack.isSameItemSameTags(it, placeeStack) }, 1, false)) { + if (env.withdrawItem({ ItemStack.isSameItemSameComponents(it, placeeStack) }, 1, false)) { val res = spoofedStack.useOn(placeContext) if (res != InteractionResult.FAIL) { - env.withdrawItem({ ItemStack.isSameItemSameTags(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 585f50c9db..29730acca9 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 @@ -33,10 +33,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) @@ -55,9 +55,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 e853718ddd..c8319ce50a 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 @@ -14,11 +14,13 @@ import at.petrak.hexcasting.api.mod.HexConfig import at.petrak.hexcasting.api.mod.HexTags 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 @@ -27,11 +29,11 @@ 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) @@ -77,7 +79,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 8180d5223b..fdf2132032 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.fromAnglesUnchecked(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 558f716dc5..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 @@ -6,6 +6,8 @@ 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; @@ -18,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); @@ -43,10 +45,14 @@ public InteractionResultHolder use(Level world, Player player, Intera if (!world.isClientSide() && player instanceof ServerPlayer serverPlayer) { var vm = IXplatAbstractions.INSTANCE.getStaffcastVM(serverPlayer, hand); var patterns = IXplatAbstractions.INSTANCE.getPatternsSavedInUi(serverPlayer); - var descs = vm.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 index 44568c1f8e..b6e8d2ef02 100644 --- 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 @@ -2,6 +2,7 @@ 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; @@ -14,7 +15,6 @@ import java.util.List; public class ItemAncientCypher extends ItemCypher { - public static final String TAG_PATTERNS = "patterns"; public static final String TAG_HEX_NAME = "hex_name"; public ItemAncientCypher(Properties pProperties) { @@ -24,13 +24,13 @@ public ItemAncientCypher(Properties pProperties) { @Override public void clearHex(ItemStack stack) { super.clearHex(stack); - NBTHelper.remove(stack, TAG_HEX_NAME); + stack.remove(HexDataComponents.HEX_NAME); } @Override - public Component getName(ItemStack pStack) { - var descID = this.getDescriptionId(pStack); - var hexName = NBTHelper.getString(pStack, TAG_HEX_NAME); + 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 { @@ -39,21 +39,21 @@ public Component getName(ItemStack pStack) { } @Override - public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List pTooltipComponents, - TooltipFlag pIsAdvanced) { + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { // display media fullness as usual - super.appendHoverText(pStack, pLevel, pTooltipComponents, pIsAdvanced); + super.appendHoverText(stack, context, tooltipComponents, tooltipFlag); + + var patterns = stack.get(HexDataComponents.PATTERNS); // also show contained spell - var patternsTag = NBTHelper.getList(pStack, TAG_PATTERNS, Tag.TAG_COMPOUND); - if (patternsTag != null) { + if(patterns != null) { var storedHex = Component.translatable("hexcasting.tooltip.stored_hex"); - for (var iotaTag : patternsTag) { - var iotaTagC = NBTHelper.getAsCompound(iotaTag); - var iotaComponent = IotaType.getDisplay(iotaTagC).copy(); - storedHex.append(iotaComponent.withStyle(ChatFormatting.DARK_PURPLE)); + + for(var iota : patterns) { + storedHex.append(iota.display().plainCopy().withStyle(ChatFormatting.DARK_PURPLE)); } - pTooltipComponents.add(storedHex); + + 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 1c8886f999..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 @@ -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 1bea5dfec5..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,12 +1,15 @@ 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; @@ -15,6 +18,7 @@ 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; @@ -32,6 +36,7 @@ import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; +import java.util.Objects; import java.util.Optional; import java.util.List; @@ -47,9 +52,6 @@ * (none): "Empty Scroll" */ 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 String TAG_NEEDS_PURCHASE = "needs_purchase"; public static final ResourceLocation ANCIENT_PREDICATE = modLoc("ancient"); public final int blockSize; @@ -60,28 +62,15 @@ public ItemScroll(Properties pProperties, int blockSize) { } // this produces a scroll that will load the correct pattern for your world once it ticks - public static ItemStack withPerWorldPattern(ItemStack stack, String op_id) { + public static ItemStack withPerWorldPattern(ItemStack stack, ResourceKey action) { Item item = stack.getItem(); - if (item instanceof ItemScroll) - NBTHelper.putString(stack, TAG_OP_ID, op_id); + if (item instanceof ItemScroll) { + stack.set(HexDataComponents.ACTION, action); + } return stack; } - @Override - public @Nullable - CompoundTag readIotaTag(ItemStack stack) { - CompoundTag pattern = NBTHelper.getCompound(stack, TAG_PATTERN); - if (pattern == null) { - return null; - } - // 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; - } - @Override public boolean writeable(ItemStack stack) { return true; @@ -96,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); } } } @@ -119,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()) { @@ -146,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, 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); @@ -167,47 +155,44 @@ public Component getName(ItemStack pStack) { 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 (NBTHelper.getBoolean(pStack, TAG_NEEDS_PURCHASE)) { - NBTHelper.remove(pStack, TAG_NEEDS_PURCHASE); - } + 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 (NBTHelper.hasString(pStack, TAG_OP_ID) && !NBTHelper.hasCompound(pStack, TAG_PATTERN) && pEntity.getServer() != null) { - var opID = ResourceLocation.tryParse(NBTHelper.getString(pStack, TAG_OP_ID)); - if (opID == null) { - // if the provided op_id is invalid, remove it so we don't keep trying every tick - NBTHelper.remove(pStack, TAG_OP_ID); - return; - } - var patternKey = ResourceKey.create(IXplatAbstractions.INSTANCE.getActionRegistry().key(), opID); - var pat = PatternRegistryManifest.getCanonicalStrokesPerWorld(patternKey, pEntity.getServer().overworld()); - NBTHelper.put(pStack, TAG_PATTERN, pat.serializeToNBT()); + 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 pStack, @Nullable Level pLevel, List pTooltipComponents, - TooltipFlag pIsAdvanced) { - if (NBTHelper.getBoolean(pStack, TAG_NEEDS_PURCHASE)) { + 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"); - pTooltipComponents.add(needsPurchase.withStyle(ChatFormatting.GRAY)); - } else if (NBTHelper.hasString(pStack, TAG_OP_ID) && !NBTHelper.hasCompound(pStack, TAG_PATTERN)) { + 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"); - pTooltipComponents.add(notLoaded.withStyle(ChatFormatting.GRAY)); + tooltipComponents.add(notLoaded.withStyle(ChatFormatting.GRAY)); } } @Override public Optional getTooltipImage(ItemStack stack) { - var compound = NBTHelper.getCompound(stack, TAG_PATTERN); - if (compound != null && !NBTHelper.getBoolean(stack, TAG_NEEDS_PURCHASE)) { - 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, 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 3f70ddbd40..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,64 +1,43 @@ package at.petrak.hexcasting.common.lib; -import at.petrak.hexcasting.api.HexAPI; import at.petrak.hexcasting.api.casting.eval.env.PlayerBasedCastEnv; -import net.minecraft.resources.ResourceLocation; +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<>(); - - private static final String MOD_ID = HexAPI.MOD_ID; + public static void register() { + REGISTER.registerAll(); + } - public static final Attribute GRID_ZOOM = make("grid_zoom", new RangedAttribute( - 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( - MOD_ID + ".attributes.scry_sight", 0.0, 0.0, 1.0)).setSyncable(true); + 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 Attribute FEEBLE_MIND = make("feeble_mind", new RangedAttribute( + 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 Attribute MEDIA_CONSUMPTION_MODIFIER = make("media_consumption", new RangedAttribute( + 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 Attribute AMBIT_RADIUS = make("ambit_radius", new RangedAttribute( + 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 Attribute SENTINEL_RADIUS = make("sentinel_radius", new RangedAttribute( + 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)); - - - - 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; - } } 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 6608b324b6..ed7c9f81bf 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(); } @@ -196,7 +194,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", @@ -213,17 +211,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))); @@ -285,8 +283,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 03d8b26615..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,6 +1,8 @@ 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; @@ -10,6 +12,7 @@ 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 { @@ -21,11 +24,15 @@ 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 CreativeModeTab SCROLLS = register("scrolls", CreativeModeTab.builder(CreativeModeTab.Row.TOP, 7) - .icon(() -> ItemScroll.withPerWorldPattern(new ItemStack(HexItems.SCROLL_LARGE),""))); + 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.hexcasting." + name)).build(); 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 3cd0e47c32..f4dcc334ff 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 @@ -18,8 +18,12 @@ 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.*; @@ -37,8 +41,9 @@ public static void registerItems(BiConsumer r) { } public static void registerItemCreativeTab(CreativeModeTab.Output r, CreativeModeTab tab) { - if (tab == HexCreativeTabs.SCROLLS) generateScrollEntries(); - 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); } } @@ -69,8 +74,8 @@ public static void registerItemCreativeTab(CreativeModeTab.Output r, CreativeMod public static final ItemStaff STAFF_MINDSPLICE = make("staff/mindsplice", new ItemStaff(unstackable().rarity(Rarity.UNCOMMON))); 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())); @@ -83,7 +88,19 @@ public static void registerItemCreativeTab(CreativeModeTab.Output r, CreativeMod 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)); @@ -92,7 +109,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), @@ -126,7 +143,7 @@ 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; }); @@ -139,16 +156,16 @@ public static void registerItemCreativeTab(CreativeModeTab.Output r, CreativeMod // 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()))); // @@ -160,18 +177,18 @@ public static Item.Properties unstackable() { return props().stacksTo(1); } - private static void generateScrollEntries() { + 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( (a, b) -> a.location().compareTo(b.location()) ); + keyList.sort(Comparator.comparing(ResourceKey::location)); for (var key : keyList) { - addToTab(() -> ItemScroll.withPerWorldPattern( - new ItemStack(HexItems.SCROLL_LARGE), - key.location().toString() - ),HexCreativeTabs.SCROLLS); + r.accept(ItemScroll.withPerWorldPattern( + new ItemStack(HexItems.SCROLL_LARGE), + key + )); } } 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 409f5c979c..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 @@ -4,6 +4,7 @@ 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; @@ -13,22 +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 HEX_CYPHER = register("hex_cypher", - new LootItemFunctionType(new AddHexToAncientCypherFunc.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 c724300302..c7a509676d 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 @@ -422,7 +422,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 index 8dac9cfeb0..3d6ba439f4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/loot/AddHexToAncientCypherFunc.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/loot/AddHexToAncientCypherFunc.java @@ -4,19 +4,14 @@ 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.mod.HexConfig; -import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.api.item.VariantItem; import at.petrak.hexcasting.api.misc.MediaConstants; import at.petrak.hexcasting.api.pigment.FrozenPigment; import at.petrak.hexcasting.common.items.magic.ItemAncientCypher; -import at.petrak.hexcasting.common.items.magic.ItemPackagedHex; -import at.petrak.hexcasting.common.lib.HexItems; +import at.petrak.hexcasting.common.lib.HexDataComponents; 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; +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; @@ -26,7 +21,11 @@ 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; /** @@ -36,7 +35,12 @@ * is used on both sides */ public class AddHexToAncientCypherFunc extends LootItemConditionalFunction { - public AddHexToAncientCypherFunc(LootItemCondition[] lootItemConditions) { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + p_344674_ -> commonFields(p_344674_) + .apply(p_344674_, AddHexToAncientCypherFunc::new) + ); + + public AddHexToAncientCypherFunc(List lootItemConditions) { super(lootItemConditions); } @@ -45,23 +49,15 @@ public AddHexToAncientCypherFunc(LootItemCondition[] lootItemConditions) { */ public static ItemStack doStatic(ItemStack stack, RandomSource rand) { var hex = LOOT_HEXES.get(rand.nextInt(LOOT_HEXES.size())); - var patsTag = new ListTag(); - for (var patString : hex.getSecond()){ - var pieces = patString.split(" "); - var pat = HexPattern.fromAnglesUnchecked(pieces[1],HexDir.fromString(pieces[0])); - patsTag.add(IotaType.serialize(new PatternIota(pat))); - } - - var tag = new CompoundTag(); - tag.putString(ItemAncientCypher.TAG_HEX_NAME, hex.getFirst()); - tag.put(ItemAncientCypher.TAG_PATTERNS, patsTag); - tag.put(ItemPackagedHex.TAG_PIGMENT, FrozenPigment.ANCIENT.get().serializeToNBT()); - tag.putLong(ItemAncientCypher.TAG_MEDIA, 32*MediaConstants.SHARD_UNIT); - tag.putLong(ItemAncientCypher.TAG_MAX_MEDIA, 32*MediaConstants.SHARD_UNIT); - tag.putInt(VariantItem.TAG_VARIANT, rand.nextInt(8)); - - stack.getOrCreateTag().merge(tag); + 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; } @@ -72,23 +68,10 @@ protected ItemStack run(ItemStack stack, LootContext ctx) { } @Override - public LootItemFunctionType getType() { + public LootItemFunctionType getType() { return HexLootFunctions.HEX_CYPHER; } - public static class Serializer extends LootItemConditionalFunction.Serializer { - @Override - public void serialize(JsonObject json, AddHexToAncientCypherFunc value, JsonSerializationContext ctx) { - super.serialize(json, value, ctx); - } - - @Override - public AddHexToAncientCypherFunc deserialize(JsonObject object, JsonDeserializationContext ctx, - LootItemCondition[] conditions) { - return new AddHexToAncientCypherFunc(conditions); - } - } - // 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"}), 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 0d45634db4..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 @@ -6,24 +6,25 @@ 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.resources.ResourceLocation; 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. @@ -32,7 +33,12 @@ * 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); } @@ -49,8 +55,8 @@ public static ItemStack doStatic(ItemStack stack, RandomSource rand, ServerLevel } var patternKey = perWorldKeys.get(rand.nextInt(perWorldKeys.size())); var pat = PatternRegistryManifest.getCanonicalStrokesPerWorld(patternKey, overworld); - NBTHelper.putString(stack, ItemScroll.TAG_OP_ID, patternKey.location().toString()); - NBTHelper.put(stack, ItemScroll.TAG_PATTERN, pat.serializeToNBT()); + stack.set(HexDataComponents.ACTION, patternKey); + stack.set(HexDataComponents.PATTERN, pat); return stack; } @@ -60,20 +66,7 @@ protected ItemStack run(ItemStack stack, LootContext ctx) { } @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 cb4cee9211..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,8 +1,11 @@ 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; @@ -24,54 +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) - - // you can use the table hexcasting:random_scroll to get exactly 1 scroll and nothing else + 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( - new ResourceLocation("minecraft", "chests/simple_dungeon"), - new ResourceLocation("minecraft", "chests/abandoned_mineshaft"), - new ResourceLocation("minecraft", "chests/stronghold_corridor"), - new ResourceLocation("minecraft", "chests/jungle_temple"), - new ResourceLocation("minecraft", "chests/desert_pyramid"), - new ResourceLocation("minecraft", "chests/ancient_city"), - new ResourceLocation("minecraft", "chests/nether_bridge") - // you can use the table hexcasting:random_cypher to get exactly 1 cypher and nothing else + 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) { @@ -82,7 +82,7 @@ public static int getScrollCount(int range, RandomSource random) { 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/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/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/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/StateIngredientBlock.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlock.java similarity index 54% rename from Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlock.java rename to Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlock.java index ac9febaf7f..cfb1209cd5 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlock.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlock.java @@ -1,9 +1,12 @@ -package at.petrak.hexcasting.common.recipe.ingredient; +package at.petrak.hexcasting.common.recipe.ingredient.state; -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.network.FriendlyByteBuf; +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; @@ -20,6 +23,11 @@ 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(); @@ -30,20 +38,6 @@ 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) { @@ -81,4 +75,25 @@ public int hashCode() { 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/StateIngredientBlockState.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlockState.java similarity index 62% rename from Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlockState.java rename to Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlockState.java index c1018f47df..7a01d09e47 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlockState.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlockState.java @@ -1,10 +1,12 @@ -package at.petrak.hexcasting.common.recipe.ingredient; +package at.petrak.hexcasting.common.recipe.ingredient.state; -import com.google.common.collect.ImmutableMap; -import com.google.gson.JsonObject; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.ChatFormatting; -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.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Block; @@ -21,6 +23,11 @@ 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; @@ -31,19 +38,6 @@ 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(); @@ -56,7 +50,7 @@ public List getDisplayedStacks() { @Nullable @Override public List descriptionTooltip() { - ImmutableMap, Comparable> map = state.getValues(); + Map, Comparable> map = state.getValues(); if (map.isEmpty()) { return StateIngredient.super.descriptionTooltip(); } @@ -100,4 +94,25 @@ public int hashCode() { 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/StateIngredientBlocks.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlocks.java similarity index 58% rename from Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlocks.java rename to Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlocks.java index eb0291709f..4f828e2f13 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientBlocks.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientBlocks.java @@ -1,11 +1,13 @@ -package at.petrak.hexcasting.common.recipe.ingredient; +package at.petrak.hexcasting.common.recipe.ingredient.state; import com.google.common.collect.ImmutableSet; -import com.google.gson.JsonArray; -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.network.FriendlyByteBuf; +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; @@ -25,6 +27,11 @@ 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()); @@ -35,28 +42,6 @@ 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() @@ -95,4 +80,25 @@ public boolean equals(Object o) { 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/StateIngredientTag.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTag.java similarity index 61% rename from Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTag.java rename to Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTag.java index 5850bd1bf2..dac2e84b3b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTag.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTag.java @@ -1,11 +1,13 @@ -package at.petrak.hexcasting.common.recipe.ingredient; +package at.petrak.hexcasting.common.recipe.ingredient.state; import com.google.common.collect.ImmutableSet; -import com.google.gson.JsonObject; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; 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.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.ItemStack; @@ -23,9 +25,14 @@ public class StateIngredientTag extends StateIngredientBlocks { private final TagKey tag; - public StateIngredientTag(ResourceLocation tag) { + public StateIngredientTag(TagKey tag) { super(ImmutableSet.of()); - this.tag = TagKey.create(Registries.BLOCK, tag); + this.tag = tag; + } + + @Override + public StateIngredientType getType() { + return StateIngredients.TAG; } public Stream resolve() { @@ -47,14 +54,6 @@ public BlockState pick(Random random) { 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() @@ -74,8 +73,8 @@ public List getDisplayed() { return resolve().map(Block::defaultBlockState).collect(Collectors.toList()); } - public ResourceLocation getTagId() { - return tag.location(); + public TagKey getTag() { + return tag; } @Override @@ -98,4 +97,25 @@ public int hashCode() { 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/StateIngredientTagExcluding.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTagExcluding.java similarity index 51% rename from Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTagExcluding.java rename to Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTagExcluding.java index b77dd7ddc3..2a08f605be 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredientTagExcluding.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/state/StateIngredientTagExcluding.java @@ -1,8 +1,13 @@ -package at.petrak.hexcasting.common.recipe.ingredient; +package at.petrak.hexcasting.common.recipe.ingredient.state; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; +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; @@ -16,11 +21,16 @@ public class StateIngredientTagExcluding extends StateIngredientTag { private final List excludes; - public StateIngredientTagExcluding(ResourceLocation id, Collection excludes) { - super(id); + 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)) { @@ -57,19 +67,6 @@ 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() @@ -92,4 +89,30 @@ public List getDisplayed() { .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 2ba8629a35..4def9f9862 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,22 +10,21 @@ 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; @@ -33,18 +33,21 @@ 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; @@ -63,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); @@ -144,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 ") @@ -197,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)); @@ -392,7 +397,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) @@ -402,7 +407,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) @@ -411,7 +416,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) @@ -422,7 +427,7 @@ 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); // Stone sets stoneSet(recipes, HexBlocks.SLATE_BLOCK.asItem(), HexBlocks.SLATE_BRICKS.asItem(), HexBlocks.SLATE_BRICKS_SMALL.asItem(), HexBlocks.SLATE_TILES.asItem(), HexBlocks.SLATE_PILLAR.asItem()); @@ -455,64 +460,64 @@ public void buildRecipes(Consumer recipes) { .requires(HexBlocks.AMETHYST_PILLAR) .unlockedBy("has_item", has(HexBlocks.SLATE)).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) @@ -520,7 +525,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) @@ -563,14 +568,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) @@ -582,7 +587,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) @@ -594,12 +599,154 @@ 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); } - private void stoneSet(Consumer recipes, Item base, Item bricks, Item smallBricks, Item tiles, @Nullable Item pillar) { + private void stoneSet(RecipeOutput recipes, Item base, Item bricks, Item smallBricks, Item tiles, @Nullable Item pillar) { + String smallBricksPath = BuiltInRegistries.ITEM.getKey(smallBricks).getPath(); + String bricksPath = BuiltInRegistries.ITEM.getKey(bricks).getPath(); // Bricks from base block ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, bricks, 4) .define('#', base) @@ -612,13 +759,13 @@ private void stoneSet(Consumer recipes, Item base, Item bricks, ShapelessRecipeBuilder.shapeless(RecipeCategory.BUILDING_BLOCKS, bricks) .requires(smallBricks) .unlockedBy("has_item", hasItem(base)) - .save(recipes, modLoc(bricks + "_from_" + smallBricks)); + .save(recipes, modLoc(bricksPath + "_from_" + smallBricksPath)); // Small bricks from bricks ShapelessRecipeBuilder.shapeless(RecipeCategory.BUILDING_BLOCKS, smallBricks) .requires(bricks) .unlockedBy("has_item", hasItem(base)) - .save(recipes, modLoc(smallBricks + "_from_" + bricks)); + .save(recipes, modLoc(smallBricksPath + "_from_" + bricksPath)); // Tiles from bricks ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, tiles, 4) @@ -639,11 +786,12 @@ private void stoneSet(Consumer recipes, Item base, Item bricks, } } - private void stoneCutterFromTag(Consumer recipes, TagKey tagKey, Item ...results) { + private void stoneCutterFromTag(RecipeOutput recipes, TagKey tagKey, Item ...results) { for (Item result : results) { + var resultPath = BuiltInRegistries.ITEM.getKey(result).getPath(); SingleItemRecipeBuilder.stonecutting(Ingredient.of(tagKey), RecipeCategory.BUILDING_BLOCKS, result) .unlockedBy("has_item", hasItem(tagKey)) - .save(recipes, modLoc("stonecutting/" + result)); + .save(recipes, modLoc("stonecutting/" + resultPath)); } } } 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 5f99c7f229..446a52fe27 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; } @@ -141,11 +141,11 @@ protected void addTags(HolderLookup.Provider provider) { HexBlocks.QUENCHED_ALLAY, HexBlocks.QUENCHED_ALLAY_BRICKS, HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL, HexBlocks.QUENCHED_ALLAY_TILES); // 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 4e04185999..ab7c286da9 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 f737701fc7..c06c04238c 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 index 6ccfa837fc..f8172dc5b2 100644 --- a/Common/src/main/java/at/petrak/hexcasting/mixin/MixinWanderingTrader.java +++ b/Common/src/main/java/at/petrak/hexcasting/mixin/MixinWanderingTrader.java @@ -1,6 +1,9 @@ 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; @@ -30,8 +33,8 @@ private void addNewTrades(CallbackInfo ci) { if (rand.nextFloat() < HexConfig.server().traderScrollChance() && self.getServer() != null) { ItemStack scroll = new ItemStack(HexItems.SCROLL_LARGE); AddPerWorldPatternToScrollFunc.doStatic(scroll, rand, self.getServer().overworld()); - NBTHelper.putBoolean(scroll, ItemScroll.TAG_NEEDS_PURCHASE, true); - offerList.set(5, new MerchantOffer(new ItemStack(Items.EMERALD, 12), scroll, 1, 1, 1)); + 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 37e8a218fa..640a34d95f 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 @@ -142,7 +142,7 @@ akashic_: { record: "Akashic Record", bookshelf: "Akashic Bookshelf", - connector: "Akashic Ligature", + ligature: "Akashic Ligature", }, slate: { 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 index 98b2fca094..9785217d90 100644 --- 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 @@ -12,7 +12,7 @@ { "type": "patchouli:spotlight", "text": "hexcasting.page.ancient_cyphers.2", - "item": "hexcasting:ancient_cypher{variant:0},hexcasting:ancient_cypher{variant:1},hexcasting:ancient_cypher{variant:2},hexcasting:ancient_cypher{variant:3},hexcasting:ancient_cypher{variant:4},hexcasting:ancient_cypher{variant:5},hexcasting:ancient_cypher{variant:6},hexcasting:ancient_cypher{variant:7}" + "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]" }, { "type": "patchouli:crafting", diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/creative_items.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/creative_items.json index 31ba2000c5..6cd91fc238 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/creative_items.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/items/creative_items.json @@ -24,7 +24,7 @@ "type": "patchouli:spotlight", "title": "hexcasting.page.creative_items.debug_media.title", "text": "hexcasting.page.creative_items.debug_media.desc", - "item": "hexcasting:creative_unlocker{display:{Name:'{\\\"text\\\":\\\"debug media\\\"}'}}" + "item": "hexcasting:creative_unlocker[custom_name='{text:\"debug media\"}']" } ] } \ 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/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/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_tables/grant_patchi_book.json b/Common/src/main/resources/data/hexcasting/loot_table/grant_patchi_book.json similarity index 63% rename from Common/src/main/resources/data/hexcasting/loot_tables/grant_patchi_book.json rename to Common/src/main/resources/data/hexcasting/loot_table/grant_patchi_book.json index a154e45b43..121f1d8144 100644 --- a/Common/src/main/resources/data/hexcasting/loot_tables/grant_patchi_book.json +++ b/Common/src/main/resources/data/hexcasting/loot_table/grant_patchi_book.json @@ -9,8 +9,10 @@ "name": "patchouli:guide_book", "functions": [ { - "function": "set_nbt", - "tag": "{\"patchouli:book\": \"hexcasting:thehexbook\"}" + "function": "set_components", + "components": { + "patchouli:book": "hexcasting:thehexbook" + } } ] } diff --git a/Common/src/main/resources/data/hexcasting/loot_tables/random_cypher.json b/Common/src/main/resources/data/hexcasting/loot_table/random_cypher.json similarity index 100% rename from Common/src/main/resources/data/hexcasting/loot_tables/random_cypher.json rename to Common/src/main/resources/data/hexcasting/loot_table/random_cypher.json diff --git a/Common/src/main/resources/data/hexcasting/loot_tables/random_scroll.json b/Common/src/main/resources/data/hexcasting/loot_table/random_scroll.json similarity index 100% rename from Common/src/main/resources/data/hexcasting/loot_tables/random_scroll.json rename to Common/src/main/resources/data/hexcasting/loot_table/random_scroll.json diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/thought_knot.json b/Common/src/main/resources/data/hexcasting/recipe/patchi_book.json similarity index 52% rename from Fabric/src/generated/resources/data/hexcasting/recipes/thought_knot.json rename to Common/src/main/resources/data/hexcasting/recipe/patchi_book.json index 2f2c9f9504..2881ee9001 100644 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/thought_knot.json +++ b/Common/src/main/resources/data/hexcasting/recipe/patchi_book.json @@ -1,15 +1,17 @@ { "type": "minecraft:crafting_shapeless", - "category": "equipment", "ingredients": [ { - "item": "hexcasting:amethyst_dust" + "item": "minecraft:book" }, { - "item": "minecraft:string" + "item": "hexcasting:amethyst_dust" } ], "result": { - "item": "hexcasting:thought_knot" + "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 bbc3836c0f..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": [ @@ -12,14 +12,11 @@ "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 459b9cf898..b12f4b9e0c 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 { @@ -9,6 +10,7 @@ architectury { // FIXME: update dependencies/versions before releasing 0.12 pkSubproj { + platform = "fabric" pkPublish = true curseforgeJar = remapJar.archiveFile curseforgeDependencies([ @@ -81,13 +83,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/" } @@ -113,26 +125,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 === @@ -142,6 +151,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" @@ -155,9 +170,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" @@ -165,13 +181,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 } @@ -188,3 +197,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 24029726cd..3e4e03d1ca 100644 --- a/Fabric/gradle.properties +++ b/Fabric/gradle.properties @@ -7,7 +7,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 @@ -18,5 +18,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/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/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/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_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks.json deleted file mode 100644 index e044c18391..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks.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:amethyst_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_from_amethyst_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_from_amethyst_bricks_small.json deleted file mode 100644 index 521d28ac91..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_from_amethyst_bricks_small.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:amethyst_bricks_from_amethyst_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_bricks_from_amethyst_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_small_from_amethyst_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_small_from_amethyst_bricks.json deleted file mode 100644 index 687815c8ed..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_small_from_amethyst_bricks.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:amethyst_bricks_small_from_amethyst_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_bricks_small_from_amethyst_bricks" - ] - }, - "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_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_pillar.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_pillar.json deleted file mode 100644 index 9a8101e969..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_pillar.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:amethyst_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_pillar" - ] - }, - "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 d48447b4e1..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": [ - "minecraft:amethyst_block" - ] - } - ] - }, - "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/quenched_allay_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks.json deleted file mode 100644 index b0e5ce990b..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:quenched_allay_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:quenched_allay_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_from_quenched_allay_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_from_quenched_allay_bricks_small.json deleted file mode 100644 index 0bab79c647..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_from_quenched_allay_bricks_small.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:quenched_allay_bricks_from_quenched_allay_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:quenched_allay_bricks_from_quenched_allay_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_small_from_quenched_allay_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_small_from_quenched_allay_bricks.json deleted file mode 100644 index 513c193a63..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_small_from_quenched_allay_bricks.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:quenched_allay_bricks_small_from_quenched_allay_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:quenched_allay_bricks_small_from_quenched_allay_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_tiles.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_tiles.json deleted file mode 100644 index 0dd1f089e7..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_tiles.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:quenched_allay_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:quenched_allay_tiles" - ] - }, - "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_amethyst_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks.json deleted file mode 100644 index ffd1ea1840..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks.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_amethyst_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_amethyst_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks_small.json deleted file mode 100644 index 241b8a9c92..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks_small.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_amethyst_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_amethyst_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_pillar.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_pillar.json deleted file mode 100644 index 860df61f62..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_pillar.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_amethyst_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_amethyst_pillar" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_tiles.json deleted file mode 100644 index 9549138cc4..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_tiles.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_amethyst_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_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/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/slate_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks.json deleted file mode 100644 index a600188b5d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_from_slate_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_from_slate_bricks_small.json deleted file mode 100644 index a631cf0095..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_from_slate_bricks_small.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_bricks_from_slate_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_bricks_from_slate_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_small_from_slate_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_small_from_slate_bricks.json deleted file mode 100644 index b525018821..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_small_from_slate_bricks.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_bricks_small_from_slate_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_bricks_small_from_slate_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_pillar.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_pillar.json deleted file mode 100644 index f38da3557b..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_pillar.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_pillar" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_tiles.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_tiles.json deleted file mode 100644 index 0df2c49263..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_tiles.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_tiles" - ] - }, - "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_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_bricks.json deleted file mode 100644 index 164b02fdea..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_bricks.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:amethyst_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/amethyst_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/amethyst_bricks" - ] - }, - "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_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_bricks_small.json deleted file mode 100644 index 02b28d05ac..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_bricks_small.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:amethyst_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/amethyst_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/amethyst_bricks_small" - ] - }, - "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_pillar.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_pillar.json deleted file mode 100644 index 88d4914aa4..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_pillar.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:amethyst_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/amethyst_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/amethyst_pillar" - ] - }, - "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 83fd5c44e1..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:amethyst_blocks" - } - ] - }, - "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/stonecutting/quenched_allay_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks.json deleted file mode 100644 index b90d2aab65..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:quenched_allay_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/quenched_allay_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/quenched_allay_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks_small.json deleted file mode 100644 index 56f48d4c58..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks_small.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:quenched_allay_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/quenched_allay_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/quenched_allay_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_tiles.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_tiles.json deleted file mode 100644 index 75aff08481..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_tiles.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:quenched_allay_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/quenched_allay_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/quenched_allay_tiles" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks.json deleted file mode 100644 index 57d1f132b6..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:slate_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/slate_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/slate_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks_small.json deleted file mode 100644 index fa9f1894b9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks_small.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:slate_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/slate_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/slate_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_pillar.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_pillar.json deleted file mode 100644 index c7bd943b17..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_pillar.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:slate_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/slate_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/slate_pillar" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_tiles.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_tiles.json deleted file mode 100644 index 98390070fc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_tiles.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:slate_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/slate_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/slate_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/ancient_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/ancient_colorizer.json deleted file mode 100644 index e29d71dae5..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/advancements/recipes/misc/ancient_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:ancient_colorizer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:ancient_colorizer" - ] - }, - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json deleted file mode 100644 index 78a36f62ec..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/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/akashic_record.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_record.json deleted file mode 100644 index 5c93f81681..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_record.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks.json deleted file mode 100644 index 4c60a77364..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json deleted file mode 100644 index 3d39f82987..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_dust_block.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_dust_block.json deleted file mode 100644 index 7c054a0aab..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_dust_block.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/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/amethyst_pillar.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_pillar.json deleted file mode 100644 index 2eeb112461..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_sconce.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_sconce.json deleted file mode 100644 index e2c38fe09e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_sconce.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_tiles.json deleted file mode 100644 index 13010296ca..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_tiles.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json deleted file mode 100644 index 2bb2887920..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json deleted file mode 100644 index f2ea006a03..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/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/directrix/boolean.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/boolean.json deleted file mode 100644 index 7510be752b..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/boolean.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/empty.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/empty.json deleted file mode 100644 index 056282de33..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/empty.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/redstone.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/redstone.json deleted file mode 100644 index b130eb19de..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/redstone.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_button.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_button.json deleted file mode 100644 index a24172124e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_button.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_door.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_door.json deleted file mode 100644 index 942a65484f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_door.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence.json deleted file mode 100644 index f45eea22be..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence_gate.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence_gate.json deleted file mode 100644 index 01cbf2a5e1..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence_gate.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log.json deleted file mode 100644 index 396a3fcb45..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_amethyst.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_amethyst.json deleted file mode 100644 index d6c0759bfa..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_amethyst.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_aventurine.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_aventurine.json deleted file mode 100644 index 31892f2177..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_aventurine.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_citrine.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_citrine.json deleted file mode 100644 index 21ac1cd0fb..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_citrine.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_purple.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_purple.json deleted file mode 100644 index f9c2c33343..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_purple.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_panel.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_panel.json deleted file mode 100644 index 83cb1f1b59..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_panel.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_planks.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_planks.json deleted file mode 100644 index 5f1b5f7280..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_planks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_pressure_plate.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_pressure_plate.json deleted file mode 100644 index d733b30a49..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_pressure_plate.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_slab.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_slab.json deleted file mode 100644 index 0bdc00f6b3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_slab.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_stairs.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_stairs.json deleted file mode 100644 index 7cb6566434..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_stairs.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_tile.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_tile.json deleted file mode 100644 index dbc6bd1426..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_tile.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_trapdoor.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_trapdoor.json deleted file mode 100644 index f76ea0437f..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_trapdoor.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_wood.json deleted file mode 100644 index 2e1faee977..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_wood.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/empty.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/empty.json deleted file mode 100644 index 67fe1185ac..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/empty.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/look.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/look.json deleted file mode 100644 index 87f6f0ef09..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/look.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/redstone.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/redstone.json deleted file mode 100644 index 1635ee4207..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/redstone.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/rightclick.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/rightclick.json deleted file mode 100644 index 37f1e9df10..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/rightclick.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/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/quenched_allay_bricks.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json deleted file mode 100644 index eb1a87b224..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json deleted file mode 100644 index 879089b6d4..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json deleted file mode 100644 index 0c81157382..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper.json deleted file mode 100644 index 8c3d628108..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json deleted file mode 100644 index ccea471c66..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/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/blocks/slate_amethyst_bricks.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json deleted file mode 100644 index f6d9ea8d1a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json deleted file mode 100644 index 6f7cfb5825..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json deleted file mode 100644 index 96dd26f7fb..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json deleted file mode 100644 index e91ebad3ce..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_block.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_block.json deleted file mode 100644 index d136fe7460..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_block.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks.json deleted file mode 100644 index d42593f8d5..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks_small.json deleted file mode 100644 index f77a608dec..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks_small.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_pillar.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_pillar.json deleted file mode 100644 index 060b60ebf9..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_tiles.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_tiles.json deleted file mode 100644 index 81cda1a13a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_tiles.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_log.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_log.json deleted file mode 100644 index 7dab40f3a1..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_wood.json b/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_wood.json deleted file mode 100644 index 60b009f032..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_wood.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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/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/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_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_bricks.json deleted file mode 100644 index 84cd942bb3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_bricks.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "minecraft:amethyst_block" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:amethyst_bricks" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_from_amethyst_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_from_amethyst_bricks_small.json deleted file mode 100644 index 71f55ac6dd..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_from_amethyst_bricks_small.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:amethyst_bricks_small" - } - ], - "result": { - "item": "hexcasting:amethyst_bricks" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_small_from_amethyst_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_small_from_amethyst_bricks.json deleted file mode 100644 index d41d6cbbf7..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_small_from_amethyst_bricks.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:amethyst_bricks" - } - ], - "result": { - "item": "hexcasting:amethyst_bricks_small" - } -} \ 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_pillar.json b/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_pillar.json deleted file mode 100644 index bc5387bff3..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_pillar.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "minecraft:amethyst_block" - } - }, - "pattern": [ - "#", - "#" - ], - "result": { - "count": 2, - "item": "hexcasting:amethyst_pillar" - }, - "show_notification": true -} \ 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 674715a62d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/amethyst_tiles.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:amethyst_bricks" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:amethyst_tiles" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/ancient_colorizer.json b/Fabric/src/generated/resources/data/hexcasting/recipes/ancient_colorizer.json deleted file mode 100644 index 41d540f77e..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/ancient_colorizer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "hexcasting:amethyst_dust" - }, - "I": { - "item": "minecraft:copper_ingot" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "result": { - "item": "hexcasting:ancient_colorizer" - }, - "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 50c3da93a6..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/default_colorizer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "hexcasting:amethyst_dust" - }, - "I": { - "item": "minecraft:amethyst_shard" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "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/dynamicseal_focus.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dynamicseal_focus.json deleted file mode 100644 index 28edc09f6d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dynamicseal_focus.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type": "hexcasting:seal_focus", - "category": "misc" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json b/Fabric/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json deleted file mode 100644 index 5bf703566d..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type": "hexcasting:seal_spellbook", - "category": "misc" -} \ 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/quenched_allay_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks.json deleted file mode 100644 index 28f0b32b12..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:quenched_allay" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:quenched_allay_bricks" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_from_quenched_allay_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_from_quenched_allay_bricks_small.json deleted file mode 100644 index fe5d0689ea..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_from_quenched_allay_bricks_small.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_bricks_small" - } - ], - "result": { - "item": "hexcasting:quenched_allay_bricks" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_small_from_quenched_allay_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_small_from_quenched_allay_bricks.json deleted file mode 100644 index 39371d2da1..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_small_from_quenched_allay_bricks.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_bricks" - } - ], - "result": { - "item": "hexcasting:quenched_allay_bricks_small" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_tiles.json b/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_tiles.json deleted file mode 100644 index 4551fabc34..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/quenched_allay_tiles.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:quenched_allay_bricks" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:quenched_allay_tiles" - }, - "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_amethyst_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks.json deleted file mode 100644 index 11cab9aed7..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_bricks" - }, - { - "item": "hexcasting:amethyst_bricks" - } - ], - "result": { - "count": 2, - "item": "hexcasting:slate_amethyst_bricks" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks_small.json deleted file mode 100644 index a403896319..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks_small.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_bricks_small" - }, - { - "item": "hexcasting:amethyst_bricks_small" - } - ], - "result": { - "count": 2, - "item": "hexcasting:slate_amethyst_bricks_small" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_pillar.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_pillar.json deleted file mode 100644 index 1265220319..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_pillar.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_pillar" - }, - { - "item": "hexcasting:amethyst_pillar" - } - ], - "result": { - "count": 2, - "item": "hexcasting:slate_amethyst_pillar" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_tiles.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_tiles.json deleted file mode 100644 index 5cb7e77e23..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_amethyst_tiles.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_tiles" - }, - { - "item": "hexcasting:amethyst_tiles" - } - ], - "result": { - "count": 2, - "item": "hexcasting:slate_amethyst_tiles" - } -} \ 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/slate_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_bricks.json deleted file mode 100644 index e7320fda78..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_bricks.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:slate_block" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:slate_bricks" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_bricks_from_slate_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_bricks_from_slate_bricks_small.json deleted file mode 100644 index 2afebcd850..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_bricks_from_slate_bricks_small.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_bricks_small" - } - ], - "result": { - "item": "hexcasting:slate_bricks" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_bricks_small_from_slate_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_bricks_small_from_slate_bricks.json deleted file mode 100644 index c7160e7d35..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_bricks_small_from_slate_bricks.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_bricks" - } - ], - "result": { - "item": "hexcasting:slate_bricks_small" - } -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_pillar.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_pillar.json deleted file mode 100644 index 95df1e497a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_pillar.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:slate_block" - } - }, - "pattern": [ - "#", - "#" - ], - "result": { - "count": 2, - "item": "hexcasting:slate_pillar" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_tiles.json b/Fabric/src/generated/resources/data/hexcasting/recipes/slate_tiles.json deleted file mode 100644 index beb80118a8..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/slate_tiles.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:slate_bricks" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:slate_tiles" - }, - "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_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks.json deleted file mode 100644 index e31a365848..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:amethyst_blocks" - }, - "result": "hexcasting:amethyst_bricks" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks_small.json deleted file mode 100644 index 224e2b2227..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks_small.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:amethyst_blocks" - }, - "result": "hexcasting:amethyst_bricks_small" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_pillar.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_pillar.json deleted file mode 100644 index e90486e072..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_pillar.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:amethyst_blocks" - }, - "result": "hexcasting:amethyst_pillar" -} \ 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 b8d3256be2..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": { - "tag": "hexcasting:amethyst_blocks" - }, - "result": "hexcasting:amethyst_tiles" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks.json deleted file mode 100644 index b3c53456f8..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:quenched_allay_blocks" - }, - "result": "hexcasting:quenched_allay_bricks" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks_small.json deleted file mode 100644 index d77c21d186..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks_small.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:quenched_allay_blocks" - }, - "result": "hexcasting:quenched_allay_bricks_small" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_tiles.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_tiles.json deleted file mode 100644 index 6be7b1f7dc..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_tiles.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:quenched_allay_blocks" - }, - "result": "hexcasting:quenched_allay_tiles" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks.json deleted file mode 100644 index 45ec158d58..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:slate_blocks" - }, - "result": "hexcasting:slate_bricks" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks_small.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks_small.json deleted file mode 100644 index 0fd812ed48..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks_small.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:slate_blocks" - }, - "result": "hexcasting:slate_bricks_small" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_pillar.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_pillar.json deleted file mode 100644 index 7bed33595a..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_pillar.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:slate_blocks" - }, - "result": "hexcasting:slate_pillar" -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_tiles.json b/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_tiles.json deleted file mode 100644 index eec5621823..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_tiles.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:slate_blocks" - }, - "result": "hexcasting:slate_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/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/blocks/amethyst_blocks.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/amethyst_blocks.json deleted file mode 100644 index bf9788dbf2..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/amethyst_blocks.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:amethyst_block", - "hexcasting:amethyst_bricks", - "hexcasting:amethyst_bricks_small", - "hexcasting:amethyst_tiles", - "hexcasting:amethyst_pillar" - ] -} \ 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/quenched_allay_blocks.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/quenched_allay_blocks.json deleted file mode 100644 index fafd43cff0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/quenched_allay_blocks.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:quenched_allay", - "hexcasting:quenched_allay_bricks", - "hexcasting:quenched_allay_bricks_small", - "hexcasting:quenched_allay_tiles" - ] -} \ No newline at end of file diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/slate_blocks.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/slate_blocks.json deleted file mode 100644 index d8769826ea..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/slate_blocks.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:slate_block", - "hexcasting:slate_bricks", - "hexcasting:slate_bricks_small", - "hexcasting:slate_tiles", - "hexcasting:slate_pillar" - ] -} \ 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/items/amethyst_blocks.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/amethyst_blocks.json deleted file mode 100644 index bf9788dbf2..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/amethyst_blocks.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:amethyst_block", - "hexcasting:amethyst_bricks", - "hexcasting:amethyst_bricks_small", - "hexcasting:amethyst_tiles", - "hexcasting:amethyst_pillar" - ] -} \ 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/quenched_allay_blocks.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/quenched_allay_blocks.json deleted file mode 100644 index fafd43cff0..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/quenched_allay_blocks.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:quenched_allay", - "hexcasting:quenched_allay_bricks", - "hexcasting:quenched_allay_bricks_small", - "hexcasting:quenched_allay_tiles" - ] -} \ 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/slate_blocks.json b/Fabric/src/generated/resources/data/hexcasting/tags/items/slate_blocks.json deleted file mode 100644 index d8769826ea..0000000000 --- a/Fabric/src/generated/resources/data/hexcasting/tags/items/slate_blocks.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "replace": false, - "values": [ - "hexcasting:slate_block", - "hexcasting:slate_bricks", - "hexcasting:slate_bricks_small", - "hexcasting:slate_tiles", - "hexcasting:slate_pillar" - ] -} \ 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/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/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 6ab5d09ff4..3d8d3a9a8e 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexConfig.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexConfig.java @@ -241,7 +241,7 @@ public void validatePostLoad() throws ValidationException { 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); } @@ -253,7 +253,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) { @@ -265,7 +265,7 @@ public void validatePostLoad() throws ValidationException { this.cypherInjections = new ArrayList<>(); try { for (var table : this.cypherInjectionsRaw) { - ResourceLocation loc = new ResourceLocation(table); + ResourceLocation loc = ResourceLocation.parse(table); this.cypherInjections.add(loc); } } catch (Exception e) { 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 383deefaab..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,7 +3,9 @@ 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; @@ -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) { + public void readFromNbt(CompoundTag tag, HolderLookup.Provider provider) { this.lazyLoadedTag = tag.getCompound(TAG_VM); } @Override - public void writeToNbt(CompoundTag tag) { + 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/trinkets/LensTrinketRenderer.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/accessories/LensAccessoryRenderer.java similarity index 55% rename from Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/trinkets/LensTrinketRenderer.java rename to Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/accessories/LensAccessoryRenderer.java index 805905d03f..2e80525fe5 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/trinkets/LensTrinketRenderer.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/accessories/LensAccessoryRenderer.java @@ -1,18 +1,17 @@ -package at.petrak.hexcasting.fabric.interop.trinkets; +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 dev.emi.trinkets.api.SlotReference; -import dev.emi.trinkets.api.client.TrinketRenderer; +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.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.entity.player.Player; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; @@ -20,23 +19,17 @@ * @author WireSegal * Created at 9:50 AM on 7/25/22. */ -public class LensTrinketRenderer implements TrinketRenderer { +public class LensAccessoryRenderer implements AccessoryRenderer { @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) { + 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 && - entity instanceof AbstractClientPlayer player) { + 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(); - TrinketRenderer.followBodyRotations(entity, playerModel); - TrinketRenderer.translateToFace(matrices, playerModel, player, headYaw, headPitch); // Translate and scale to our head matrices.translate(0, 0, 0.3); @@ -46,9 +39,8 @@ public void render(ItemStack stack, SlotReference slotReference, EntityModel 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()); + var outputId = output.getId().getNamespace().equals("minecraft") ? output.getId().getPath() : output.getId().toString(); + var inputEntityId = inputEntity.getName().getString().toLowerCase().replaceAll(" ", "_"); + var recipeId = modLoc("/brainsweep/" + (outputId.replaceAll(":", "/")) + "_from_" + inputEntityId); + registry.addRecipe(new EmiBrainsweepRecipe(inputBlocks, inputEntity, output, recipeId)); } if (PhialRecipeStackBuilder.shouldAddRecipe()) { 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 2cc402058f..8057ac2ea5 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 @@ -4,17 +4,20 @@ 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; @@ -25,7 +28,7 @@ public class FabricHexLootModJankery { public static final ResourceLocation RANDOM_SCROLL_TABLE = modLoc("random_scroll"); public static final ResourceLocation RANDOM_CYPHER_TABLE = modLoc("random_cypher"); - 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()); } else if (id.equals(RANDOM_SCROLL_TABLE)) { @@ -36,16 +39,16 @@ public static void lootLoad(ResourceLocation id, Consumer addP addPool.accept(makeCypherAddPool(1)); } - 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)) { + if (FabricHexInitializer.CONFIG.server.shouldInjectLore(id.location())) { addPool.accept(makeLoreAddPool(FabricHexInitializer.CONFIG.server.loreChance())); } - if (FabricHexInitializer.CONFIG.server.shouldInjectCyphers(id)) { + if (FabricHexInitializer.CONFIG.server.shouldInjectCyphers(id.location())) { addPool.accept(makeCypherAddPool(FabricHexInitializer.CONFIG.server.cypherChance())); } } @@ -53,14 +56,14 @@ public static void lootLoad(ResourceLocation id, Consumer addP @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(range < 0 ? ConstantValue.exactly(1) : 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) { @@ -75,6 +78,6 @@ private static LootPool.Builder makeCypherAddPool(double chance) { .when(LootItemRandomChanceCondition.randomChance((float) chance)) .setRolls(ConstantValue.exactly(1)) .add(LootItem.lootTableItem(HexItems.ANCIENT_CYPHER)) - .apply(() -> new AddHexToAncientCypherFunc(new LootItemCondition[0])); + .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 45a22117b7..0000000000 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricPlayerMixin.java +++ /dev/null @@ -1,30 +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); - out.add(HexAttributes.FEEBLE_MIND); - out.add(HexAttributes.MEDIA_CONSUMPTION_MODIFIER); - out.add(HexAttributes.AMBIT_RADIUS); - out.add(HexAttributes.SENTINEL_RADIUS); - } -} 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 5403421243..e9a3a00062 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,39 +15,52 @@ 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(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(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)); + ClientPlayNetworking.registerGlobalReceiver(MsgNewSpellPatternS2C.TYPE, + makeClientBoundHandler(MsgNewSpellPatternS2C::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..c9bcf4c9c0 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 HexCardinalComponents.PIGMENT_ITEM_LOOKUP.find(stack, null) != 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 58abc1adef..9f0b390b0b 100644 --- a/Neoforge/build.gradle +++ b/Neoforge/build.gradle @@ -1,3 +1,8 @@ + +plugins { + id 'com.gradleup.shadow' +} + architectury { platformSetupLoomIde() neoForge() @@ -27,6 +32,7 @@ configurations { canBeResolved = true canBeConsumed = false } + shadowCommon compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentNeoForge.extendsFrom common @@ -41,17 +47,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 @@ -72,39 +85,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" @@ -112,9 +147,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 + } } } @@ -124,16 +172,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' @@ -149,4 +187,22 @@ processResources { } } -jar.finalizedBy('reobfJar') +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') diff --git a/Neoforge/gradle.properties b/Neoforge/gradle.properties index 938e4a3706..1d49dfda13 100644 --- a/Neoforge/gradle.properties +++ b/Neoforge/gradle.properties @@ -1,10 +1,13 @@ platform=neoforge -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/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/blocks/brittle.json b/Neoforge/src/generated/resources/data/create/tags/blocks/brittle.json deleted file mode 100644 index fb66be6093..0000000000 --- a/Neoforge/src/generated/resources/data/create/tags/blocks/brittle.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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 5c64c0663d..0000000000 --- a/Neoforge/src/generated/resources/data/forge/loot_modifiers/global_loot_modifiers.json +++ /dev/null @@ -1,39 +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:cypher/minecraft/chests/ancient_city", - "hexcasting:cypher/minecraft/chests/jungle_temple", - "hexcasting:scroll/minecraft/chests/shipwreck_map", - "hexcasting:lore/minecraft/chests/village/village_snowy_house", - "hexcasting:scroll/minecraft/chests/abandoned_mineshaft", - "hexcasting:cypher/minecraft/chests/simple_dungeon", - "hexcasting:cypher/minecraft/chests/desert_pyramid", - "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:scroll/hexcasting/random_scroll", - "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:cypher/hexcasting/random_cypher", - "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:cypher/minecraft/chests/stronghold_corridor", - "hexcasting:scroll/minecraft/chests/ancient_city", - "hexcasting:scroll/minecraft/chests/stronghold_library", - "hexcasting:lore/minecraft/chests/simple_dungeon", - "hexcasting:cypher/minecraft/chests/abandoned_mineshaft", - "hexcasting:scroll/minecraft/chests/woodland_mansion", - "hexcasting:cypher/minecraft/chests/nether_bridge", - "hexcasting:scroll/minecraft/chests/simple_dungeon" - ], - "replace": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/forge/tags/items/dusts/amethyst.json b/Neoforge/src/generated/resources/data/forge/tags/items/dusts/amethyst.json deleted file mode 100644 index d936f71efc..0000000000 --- a/Neoforge/src/generated/resources/data/forge/tags/items/dusts/amethyst.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:amethyst_dust" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/forge/tags/items/gems.json b/Neoforge/src/generated/resources/data/forge/tags/items/gems.json deleted file mode 100644 index 6c55bdef92..0000000000 --- a/Neoforge/src/generated/resources/data/forge/tags/items/gems.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:charged_amethyst" - ] -} \ 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_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks.json deleted file mode 100644 index e044c18391..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks.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:amethyst_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_from_amethyst_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_from_amethyst_bricks_small.json deleted file mode 100644 index 521d28ac91..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_from_amethyst_bricks_small.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:amethyst_bricks_from_amethyst_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_bricks_from_amethyst_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_small_from_amethyst_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_small_from_amethyst_bricks.json deleted file mode 100644 index 687815c8ed..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_bricks_small_from_amethyst_bricks.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:amethyst_bricks_small_from_amethyst_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_bricks_small_from_amethyst_bricks" - ] - }, - "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_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_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_pillar.json deleted file mode 100644 index 9a8101e969..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/amethyst_pillar.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:amethyst_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:amethyst_pillar" - ] - }, - "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 d48447b4e1..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": [ - "minecraft:amethyst_block" - ] - } - ] - }, - "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/quenched_allay_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks.json deleted file mode 100644 index b0e5ce990b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:quenched_allay_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:quenched_allay_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_from_quenched_allay_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_from_quenched_allay_bricks_small.json deleted file mode 100644 index 0bab79c647..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_from_quenched_allay_bricks_small.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:quenched_allay_bricks_from_quenched_allay_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:quenched_allay_bricks_from_quenched_allay_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_small_from_quenched_allay_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_small_from_quenched_allay_bricks.json deleted file mode 100644 index 513c193a63..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_bricks_small_from_quenched_allay_bricks.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:quenched_allay_bricks_small_from_quenched_allay_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:quenched_allay_bricks_small_from_quenched_allay_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_tiles.json deleted file mode 100644 index 0dd1f089e7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/quenched_allay_tiles.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:quenched_allay" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:quenched_allay_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:quenched_allay_tiles" - ] - }, - "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_amethyst_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks.json deleted file mode 100644 index ffd1ea1840..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks.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_amethyst_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_amethyst_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks_small.json deleted file mode 100644 index 241b8a9c92..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_bricks_small.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_amethyst_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_amethyst_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_pillar.json deleted file mode 100644 index 860df61f62..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_pillar.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_amethyst_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_amethyst_pillar" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_tiles.json deleted file mode 100644 index 9549138cc4..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_amethyst_tiles.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_amethyst_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_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/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/slate_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks.json deleted file mode 100644 index a600188b5d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_from_slate_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_from_slate_bricks_small.json deleted file mode 100644 index a631cf0095..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_from_slate_bricks_small.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_bricks_from_slate_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_bricks_from_slate_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_small_from_slate_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_small_from_slate_bricks.json deleted file mode 100644 index b525018821..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_bricks_small_from_slate_bricks.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_bricks_small_from_slate_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_bricks_small_from_slate_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_pillar.json deleted file mode 100644 index f38da3557b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_pillar.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_pillar" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_tiles.json deleted file mode 100644 index 0df2c49263..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/slate_tiles.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": [ - "hexcasting:slate_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:slate_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:slate_tiles" - ] - }, - "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_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_bricks.json deleted file mode 100644 index 164b02fdea..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_bricks.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:amethyst_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/amethyst_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/amethyst_bricks" - ] - }, - "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_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_bricks_small.json deleted file mode 100644 index 02b28d05ac..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_bricks_small.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:amethyst_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/amethyst_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/amethyst_bricks_small" - ] - }, - "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_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_pillar.json deleted file mode 100644 index 88d4914aa4..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_pillar.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:amethyst_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/amethyst_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/amethyst_pillar" - ] - }, - "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 83fd5c44e1..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:amethyst_blocks" - } - ] - }, - "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/stonecutting/quenched_allay_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks.json deleted file mode 100644 index b90d2aab65..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:quenched_allay_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/quenched_allay_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/quenched_allay_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks_small.json deleted file mode 100644 index 56f48d4c58..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_bricks_small.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:quenched_allay_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/quenched_allay_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/quenched_allay_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_tiles.json deleted file mode 100644 index 75aff08481..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/quenched_allay_tiles.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:quenched_allay_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/quenched_allay_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/quenched_allay_tiles" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks.json deleted file mode 100644 index 57d1f132b6..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:slate_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/slate_bricks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/slate_bricks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks_small.json deleted file mode 100644 index fa9f1894b9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_bricks_small.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:slate_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/slate_bricks_small" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/slate_bricks_small" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_pillar.json deleted file mode 100644 index c7bd943b17..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_pillar.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:slate_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/slate_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/slate_pillar" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_tiles.json deleted file mode 100644 index 98390070fc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/building_blocks/stonecutting/slate_tiles.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "tag": "hexcasting:slate_blocks" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hexcasting:stonecutting/slate_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:stonecutting/slate_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/ancient_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/ancient_colorizer.json deleted file mode 100644 index e29d71dae5..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/advancements/recipes/misc/ancient_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:ancient_colorizer" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_item", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "hexcasting:ancient_colorizer" - ] - }, - "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/loot_modifiers/amethyst_cluster.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/amethyst_cluster.json deleted file mode 100644 index c01f47fdb7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/amethyst_cluster.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:amethyst_cluster", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:blocks/amethyst_cluster" - } - ], - "shardDelta": -0.5 -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/hexcasting/random_cypher.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/hexcasting/random_cypher.json deleted file mode 100644 index e5586b3adb..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/hexcasting/random_cypher.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_cyphers", - "chance": 1.0, - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "hexcasting:random_cypher" - } - ] -} \ No newline at end of file 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 deleted file mode 100644 index 11a24e5644..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/abandoned_mineshaft.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_cyphers", - "chance": 0.4, - "conditions": [ - { - "condition": "forge: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 deleted file mode 100644 index 5be9854194..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/ancient_city.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_cyphers", - "chance": 0.4, - "conditions": [ - { - "condition": "forge: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 deleted file mode 100644 index 202e48915f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/desert_pyramid.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_cyphers", - "chance": 0.4, - "conditions": [ - { - "condition": "forge: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 deleted file mode 100644 index 20c453b205..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/jungle_temple.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_cyphers", - "chance": 0.4, - "conditions": [ - { - "condition": "forge: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 deleted file mode 100644 index abc331648e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/nether_bridge.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_cyphers", - "chance": 0.4, - "conditions": [ - { - "condition": "forge: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 deleted file mode 100644 index d792919658..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/simple_dungeon.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_cyphers", - "chance": 0.4, - "conditions": [ - { - "condition": "forge: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 deleted file mode 100644 index e8d6069ad3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/cypher/minecraft/chests/stronghold_corridor.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_cyphers", - "chance": 0.4, - "conditions": [ - { - "condition": "forge: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 deleted file mode 100644 index 7f0b321fe8..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/abandoned_mineshaft.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge: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/lore/minecraft/chests/pillager_outpost.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/pillager_outpost.json deleted file mode 100644 index a530f7c502..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/pillager_outpost.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/pillager_outpost" - } - ] -} \ No newline at end of file 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 deleted file mode 100644 index 43b7514ffc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/simple_dungeon.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge: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/lore/minecraft/chests/stronghold_library.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/stronghold_library.json deleted file mode 100644 index 30166b92e7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/stronghold_library.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/stronghold_library" - } - ] -} \ No newline at end of file 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 deleted file mode 100644 index 4e522bf609..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_desert_house.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/village/village_desert_house" - } - ] -} \ No newline at end of file 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 deleted file mode 100644 index f6c234450b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_plains_house.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/village/village_plains_house" - } - ] -} \ No newline at end of file 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 deleted file mode 100644 index db64af9fe3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_savanna_house.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/village/village_savanna_house" - } - ] -} \ No newline at end of file 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 deleted file mode 100644 index 331b30dd65..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_snowy_house.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/village/village_snowy_house" - } - ] -} \ No newline at end of file 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 deleted file mode 100644 index 5111cc7386..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/village/village_taiga_house.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/village/village_taiga_house" - } - ] -} \ No newline at end of file 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 deleted file mode 100644 index 60d574a042..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/lore/minecraft/chests/woodland_mansion.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_lore", - "chance": 0.4, - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/woodland_mansion" - } - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/hexcasting/random_scroll.json b/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/hexcasting/random_scroll.json deleted file mode 100644 index 742f92dfd9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/hexcasting/random_scroll.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "hexcasting:random_scroll" - } - ], - "countRange": -1 -} \ No newline at end of file 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 deleted file mode 100644 index bfa7024eff..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/abandoned_mineshaft.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/abandoned_mineshaft" - } - ], - "countRange": 1 -} \ No newline at end of file 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 deleted file mode 100644 index d95dc336d7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/ancient_city.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/ancient_city" - } - ], - "countRange": 4 -} \ No newline at end of file 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 deleted file mode 100644 index bbe250d8e8..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_other.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/bastion_other" - } - ], - "countRange": 1 -} \ No newline at end of file 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 deleted file mode 100644 index 2f53299e74..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/bastion_treasure.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/bastion_treasure" - } - ], - "countRange": 3 -} \ No newline at end of file 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 deleted file mode 100644 index 27e5832d30..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/desert_pyramid.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/desert_pyramid" - } - ], - "countRange": 2 -} \ No newline at end of file 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 deleted file mode 100644 index 00fce8eef3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/end_city_treasure.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/end_city_treasure" - } - ], - "countRange": 3 -} \ No newline at end of file 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 deleted file mode 100644 index bdad563e63..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/jungle_temple.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/jungle_temple" - } - ], - "countRange": 2 -} \ No newline at end of file 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 deleted file mode 100644 index 2a95ff887d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/nether_bridge.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/nether_bridge" - } - ], - "countRange": 1 -} \ No newline at end of file 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 deleted file mode 100644 index 76114fb3ae..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/pillager_outpost.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/pillager_outpost" - } - ], - "countRange": 4 -} \ No newline at end of file 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 deleted file mode 100644 index 23c9b24798..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/shipwreck_map.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/shipwreck_map" - } - ], - "countRange": 3 -} \ No newline at end of file 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 deleted file mode 100644 index 1166f9aefd..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/simple_dungeon.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/simple_dungeon" - } - ], - "countRange": 1 -} \ No newline at end of file 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 deleted file mode 100644 index d3766ee5ac..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/stronghold_library.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/stronghold_library" - } - ], - "countRange": 5 -} \ No newline at end of file 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 deleted file mode 100644 index 4da3988ea7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/village/village_cartographer.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/village/village_cartographer" - } - ], - "countRange": 2 -} \ No newline at end of file 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 deleted file mode 100644 index bf19b951bc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_modifiers/scroll/minecraft/chests/woodland_mansion.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "hexcasting:inject_scrolls", - "conditions": [ - { - "condition": "forge:loot_table_id", - "loot_table_id": "minecraft:chests/woodland_mansion" - } - ], - "countRange": 5 -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json deleted file mode 100644 index 78a36f62ec..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_bookshelf.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_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/akashic_record.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_record.json deleted file mode 100644 index 5c93f81681..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/akashic_record.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/amethyst_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks.json deleted file mode 100644 index 4c60a77364..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/amethyst_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json deleted file mode 100644 index 3d39f82987..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/amethyst_dust_block.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_dust_block.json deleted file mode 100644 index 7c054a0aab..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_dust_block.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_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/amethyst_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_pillar.json deleted file mode 100644 index 2eeb112461..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/amethyst_sconce.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_sconce.json deleted file mode 100644 index e2c38fe09e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_sconce.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_tiles.json deleted file mode 100644 index 13010296ca..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/amethyst_tiles.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/ancient_scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json deleted file mode 100644 index 2bb2887920..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/ancient_scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json deleted file mode 100644 index f2ea006a03..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_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/directrix/boolean.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/boolean.json deleted file mode 100644 index 7510be752b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/boolean.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/directrix/empty.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/empty.json deleted file mode 100644 index 056282de33..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/empty.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/directrix/redstone.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/redstone.json deleted file mode 100644 index b130eb19de..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/directrix/redstone.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_button.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_button.json deleted file mode 100644 index a24172124e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_button.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_door.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_door.json deleted file mode 100644 index 942a65484f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_door.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "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_tables/blocks/edified_fence.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence.json deleted file mode 100644 index f45eea22be..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_fence_gate.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence_gate.json deleted file mode 100644 index 01cbf2a5e1..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_fence_gate.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_log.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log.json deleted file mode 100644 index 396a3fcb45..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_log_amethyst.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_amethyst.json deleted file mode 100644 index d6c0759bfa..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_amethyst.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_log_aventurine.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_aventurine.json deleted file mode 100644 index 31892f2177..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_aventurine.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_log_citrine.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_citrine.json deleted file mode 100644 index 21ac1cd0fb..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_citrine.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_log_purple.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_purple.json deleted file mode 100644 index f9c2c33343..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_log_purple.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_panel.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_panel.json deleted file mode 100644 index 83cb1f1b59..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_panel.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_planks.json deleted file mode 100644 index 5f1b5f7280..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_planks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_pressure_plate.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_pressure_plate.json deleted file mode 100644 index d733b30a49..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_pressure_plate.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_slab.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_slab.json deleted file mode 100644 index 0bdc00f6b3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_slab.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "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_tables/blocks/edified_stairs.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_stairs.json deleted file mode 100644 index 7cb6566434..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_stairs.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_tile.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_tile.json deleted file mode 100644 index dbc6bd1426..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_tile.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_trapdoor.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_trapdoor.json deleted file mode 100644 index f76ea0437f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_trapdoor.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_wood.json deleted file mode 100644 index 2e1faee977..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/edified_wood.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/impetus/empty.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/empty.json deleted file mode 100644 index 67fe1185ac..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/empty.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/impetus/look.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/look.json deleted file mode 100644 index 87f6f0ef09..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/look.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/impetus/redstone.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/redstone.json deleted file mode 100644 index 1635ee4207..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/redstone.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/impetus/rightclick.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/rightclick.json deleted file mode 100644 index 37f1e9df10..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/impetus/rightclick.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_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/quenched_allay_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json deleted file mode 100644 index eb1a87b224..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/quenched_allay_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json deleted file mode 100644 index 879089b6d4..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/quenched_allay_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json deleted file mode 100644 index 0c81157382..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/scroll_paper.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper.json deleted file mode 100644 index 8c3d628108..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/scroll_paper_lantern.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json deleted file mode 100644 index ccea471c66..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_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/blocks/slate_amethyst_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json deleted file mode 100644 index f6d9ea8d1a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/slate_amethyst_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json deleted file mode 100644 index 6f7cfb5825..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/slate_amethyst_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json deleted file mode 100644 index 96dd26f7fb..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/slate_amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json deleted file mode 100644 index e91ebad3ce..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/slate_block.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_block.json deleted file mode 100644 index d136fe7460..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_block.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/slate_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks.json deleted file mode 100644 index d42593f8d5..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/slate_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks_small.json deleted file mode 100644 index f77a608dec..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_bricks_small.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/slate_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_pillar.json deleted file mode 100644 index 060b60ebf9..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/slate_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_tiles.json deleted file mode 100644 index 81cda1a13a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/slate_tiles.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/stripped_edified_log.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_log.json deleted file mode 100644 index 7dab40f3a1..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_tables/blocks/stripped_edified_wood.json b/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_wood.json deleted file mode 100644 index 60b009f032..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/loot_tables/blocks/stripped_edified_wood.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "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_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/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_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_bricks.json deleted file mode 100644 index 84cd942bb3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_bricks.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "minecraft:amethyst_block" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:amethyst_bricks" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_from_amethyst_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_from_amethyst_bricks_small.json deleted file mode 100644 index 71f55ac6dd..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_from_amethyst_bricks_small.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:amethyst_bricks_small" - } - ], - "result": { - "item": "hexcasting:amethyst_bricks" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_small_from_amethyst_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_small_from_amethyst_bricks.json deleted file mode 100644 index d41d6cbbf7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_bricks_small_from_amethyst_bricks.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:amethyst_bricks" - } - ], - "result": { - "item": "hexcasting:amethyst_bricks_small" - } -} \ 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_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_pillar.json deleted file mode 100644 index bc5387bff3..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_pillar.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "minecraft:amethyst_block" - } - }, - "pattern": [ - "#", - "#" - ], - "result": { - "count": 2, - "item": "hexcasting:amethyst_pillar" - }, - "show_notification": true -} \ 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 674715a62d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/amethyst_tiles.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:amethyst_bricks" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:amethyst_tiles" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/ancient_colorizer.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/ancient_colorizer.json deleted file mode 100644 index 41d540f77e..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/ancient_colorizer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "hexcasting:amethyst_dust" - }, - "I": { - "item": "minecraft:copper_ingot" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "result": { - "item": "hexcasting:ancient_colorizer" - }, - "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 50c3da93a6..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/default_colorizer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "C": { - "item": "hexcasting:amethyst_dust" - }, - "I": { - "item": "minecraft:amethyst_shard" - } - }, - "pattern": [ - " C ", - "CIC", - " C " - ], - "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/dynamicseal_focus.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dynamicseal_focus.json deleted file mode 100644 index 28edc09f6d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dynamicseal_focus.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type": "hexcasting:seal_focus", - "category": "misc" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json deleted file mode 100644 index 5bf703566d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/dynamicseal_spellbook.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type": "hexcasting:seal_spellbook", - "category": "misc" -} \ 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/quenched_allay_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks.json deleted file mode 100644 index 28f0b32b12..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:quenched_allay" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:quenched_allay_bricks" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_from_quenched_allay_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_from_quenched_allay_bricks_small.json deleted file mode 100644 index fe5d0689ea..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_from_quenched_allay_bricks_small.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_bricks_small" - } - ], - "result": { - "item": "hexcasting:quenched_allay_bricks" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_small_from_quenched_allay_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_small_from_quenched_allay_bricks.json deleted file mode 100644 index 39371d2da1..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_bricks_small_from_quenched_allay_bricks.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:quenched_allay_bricks" - } - ], - "result": { - "item": "hexcasting:quenched_allay_bricks_small" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_tiles.json deleted file mode 100644 index 4551fabc34..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/quenched_allay_tiles.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:quenched_allay_bricks" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:quenched_allay_tiles" - }, - "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_amethyst_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks.json deleted file mode 100644 index 11cab9aed7..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_bricks" - }, - { - "item": "hexcasting:amethyst_bricks" - } - ], - "result": { - "count": 2, - "item": "hexcasting:slate_amethyst_bricks" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks_small.json deleted file mode 100644 index a403896319..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_bricks_small.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_bricks_small" - }, - { - "item": "hexcasting:amethyst_bricks_small" - } - ], - "result": { - "count": 2, - "item": "hexcasting:slate_amethyst_bricks_small" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_pillar.json deleted file mode 100644 index 1265220319..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_pillar.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_pillar" - }, - { - "item": "hexcasting:amethyst_pillar" - } - ], - "result": { - "count": 2, - "item": "hexcasting:slate_amethyst_pillar" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_tiles.json deleted file mode 100644 index 5cb7e77e23..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_amethyst_tiles.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_tiles" - }, - { - "item": "hexcasting:amethyst_tiles" - } - ], - "result": { - "count": 2, - "item": "hexcasting:slate_amethyst_tiles" - } -} \ 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/slate_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_bricks.json deleted file mode 100644 index e7320fda78..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_bricks.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:slate_block" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:slate_bricks" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_bricks_from_slate_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_bricks_from_slate_bricks_small.json deleted file mode 100644 index 2afebcd850..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_bricks_from_slate_bricks_small.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_bricks_small" - } - ], - "result": { - "item": "hexcasting:slate_bricks" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_bricks_small_from_slate_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_bricks_small_from_slate_bricks.json deleted file mode 100644 index c7160e7d35..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_bricks_small_from_slate_bricks.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "hexcasting:slate_bricks" - } - ], - "result": { - "item": "hexcasting:slate_bricks_small" - } -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_pillar.json deleted file mode 100644 index 95df1e497a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_pillar.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:slate_block" - } - }, - "pattern": [ - "#", - "#" - ], - "result": { - "count": 2, - "item": "hexcasting:slate_pillar" - }, - "show_notification": true -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_tiles.json deleted file mode 100644 index beb80118a8..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/slate_tiles.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": { - "item": "hexcasting:slate_bricks" - } - }, - "pattern": [ - "##", - "##" - ], - "result": { - "count": 4, - "item": "hexcasting:slate_tiles" - }, - "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_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks.json deleted file mode 100644 index e31a365848..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:amethyst_blocks" - }, - "result": "hexcasting:amethyst_bricks" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks_small.json deleted file mode 100644 index 224e2b2227..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_bricks_small.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:amethyst_blocks" - }, - "result": "hexcasting:amethyst_bricks_small" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_pillar.json deleted file mode 100644 index e90486e072..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/amethyst_pillar.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:amethyst_blocks" - }, - "result": "hexcasting:amethyst_pillar" -} \ 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 b8d3256be2..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": { - "tag": "hexcasting:amethyst_blocks" - }, - "result": "hexcasting:amethyst_tiles" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks.json deleted file mode 100644 index b3c53456f8..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:quenched_allay_blocks" - }, - "result": "hexcasting:quenched_allay_bricks" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks_small.json deleted file mode 100644 index d77c21d186..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_bricks_small.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:quenched_allay_blocks" - }, - "result": "hexcasting:quenched_allay_bricks_small" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_tiles.json deleted file mode 100644 index 6be7b1f7dc..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/quenched_allay_tiles.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:quenched_allay_blocks" - }, - "result": "hexcasting:quenched_allay_tiles" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks.json deleted file mode 100644 index 45ec158d58..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:slate_blocks" - }, - "result": "hexcasting:slate_bricks" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks_small.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks_small.json deleted file mode 100644 index 0fd812ed48..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_bricks_small.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:slate_blocks" - }, - "result": "hexcasting:slate_bricks_small" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_pillar.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_pillar.json deleted file mode 100644 index 7bed33595a..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_pillar.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:slate_blocks" - }, - "result": "hexcasting:slate_pillar" -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_tiles.json b/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_tiles.json deleted file mode 100644 index eec5621823..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/recipes/stonecutting/slate_tiles.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "count": 1, - "ingredient": { - "tag": "hexcasting:slate_blocks" - }, - "result": "hexcasting:slate_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/blocks/amethyst_blocks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/amethyst_blocks.json deleted file mode 100644 index 5710e98698..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/amethyst_blocks.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "values": [ - "minecraft:amethyst_block", - "hexcasting:amethyst_bricks", - "hexcasting:amethyst_bricks_small", - "hexcasting:amethyst_tiles", - "hexcasting:amethyst_pillar" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/brainswept_circle_components.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/brainswept_circle_components.json deleted file mode 100644 index aa71f4b195..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/brainswept_circle_components.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values": [ - "#hexcasting:impeti", - "#hexcasting:directrices" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json deleted file mode 100644 index 7fc52a816b..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values": [ - "hexcasting:conjured_block", - "hexcasting:conjured_light" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/directrices.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/directrices.json deleted file mode 100644 index 824259f178..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/directrices.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values": [ - "hexcasting:directrix/redstone", - "hexcasting:directrix/boolean" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/edified_logs.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/edified_logs.json deleted file mode 100644 index 22fc9e7a51..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/edified_logs.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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/blocks/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/edified_planks.json deleted file mode 100644 index 36cc46d6db..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/edified_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/blocks/impeti.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/impeti.json deleted file mode 100644 index 358990d5b4..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/impeti.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/blocks/quenched_allay_blocks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/quenched_allay_blocks.json deleted file mode 100644 index 2baec8591d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/quenched_allay_blocks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "values": [ - "hexcasting:quenched_allay", - "hexcasting:quenched_allay_bricks", - "hexcasting:quenched_allay_bricks_small", - "hexcasting:quenched_allay_tiles" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/slate_blocks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/slate_blocks.json deleted file mode 100644 index fcebe17924..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/slate_blocks.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "values": [ - "hexcasting:slate_block", - "hexcasting:slate_bricks", - "hexcasting:slate_bricks_small", - "hexcasting:slate_tiles", - "hexcasting:slate_pillar" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/water_plants.json b/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/water_plants.json deleted file mode 100644 index 0f2bcab34f..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/blocks/water_plants.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/hexcasting/action/can_start_enlighten.json b/Neoforge/src/generated/resources/data/hexcasting/tags/hexcasting/action/can_start_enlighten.json deleted file mode 100644 index 3113294d13..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/hexcasting/action/can_start_enlighten.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "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/hexcasting/action/per_world_pattern.json b/Neoforge/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json deleted file mode 100644 index 3113294d13..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "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/hexcasting/action/requires_enlightenment.json b/Neoforge/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json deleted file mode 100644 index 3113294d13..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "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/amethyst_blocks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/amethyst_blocks.json deleted file mode 100644 index 5710e98698..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/amethyst_blocks.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "values": [ - "minecraft:amethyst_block", - "hexcasting:amethyst_bricks", - "hexcasting:amethyst_bricks_small", - "hexcasting:amethyst_tiles", - "hexcasting:amethyst_pillar" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/brainswept_circle_components.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/brainswept_circle_components.json deleted file mode 100644 index aa71f4b195..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/brainswept_circle_components.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values": [ - "#hexcasting:impeti", - "#hexcasting:directrices" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/directrices.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/directrices.json deleted file mode 100644 index 824259f178..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/directrices.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values": [ - "hexcasting:directrix/redstone", - "hexcasting:directrix/boolean" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/edified_logs.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/edified_logs.json deleted file mode 100644 index 22fc9e7a51..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/edified_logs.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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/items/edified_planks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/edified_planks.json deleted file mode 100644 index 36cc46d6db..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/edified_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/items/grants_root_advancement.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/grants_root_advancement.json deleted file mode 100644 index 1f7070a707..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/grants_root_advancement.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/items/impeti.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/impeti.json deleted file mode 100644 index 358990d5b4..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/impeti.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/items/phial_base.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/phial_base.json deleted file mode 100644 index 52ac4c0c96..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/phial_base.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "minecraft:glass_bottle" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/quenched_allay_blocks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/quenched_allay_blocks.json deleted file mode 100644 index 2baec8591d..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/quenched_allay_blocks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "values": [ - "hexcasting:quenched_allay", - "hexcasting:quenched_allay_bricks", - "hexcasting:quenched_allay_bricks_small", - "hexcasting:quenched_allay_tiles" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/seal_materials.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/seal_materials.json deleted file mode 100644 index 674a370049..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/seal_materials.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "minecraft:honeycomb" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/slate_blocks.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/slate_blocks.json deleted file mode 100644 index fcebe17924..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/slate_blocks.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "values": [ - "hexcasting:slate_block", - "hexcasting:slate_bricks", - "hexcasting:slate_bricks_small", - "hexcasting:slate_tiles", - "hexcasting:slate_pillar" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/hexcasting/tags/items/staves.json b/Neoforge/src/generated/resources/data/hexcasting/tags/items/staves.json deleted file mode 100644 index 29f4595c62..0000000000 --- a/Neoforge/src/generated/resources/data/hexcasting/tags/items/staves.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "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/blocks/buttons.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/buttons.json deleted file mode 100644 index 672bbc1a69..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/buttons.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_button" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json deleted file mode 100644 index 7a23dc1ec1..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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/blocks/doors.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/doors.json deleted file mode 100644 index e5614ff46f..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/doors.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_door" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/fence_gates.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/fence_gates.json deleted file mode 100644 index f27c95c784..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/fence_gates.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_fence_gate" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/fences.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/fences.json deleted file mode 100644 index 269de59e0a..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/fences.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_fence" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/leaves.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/leaves.json deleted file mode 100644 index ff8e420cc6..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/blocks/logs.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/logs.json deleted file mode 100644 index 22fc9e7a51..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/logs.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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/blocks/logs_that_burn.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/logs_that_burn.json deleted file mode 100644 index 22fc9e7a51..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/logs_that_burn.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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/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/blocks/mineable/hoe.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json deleted file mode 100644 index ff8e420cc6..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/blocks/mineable/pickaxe.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json deleted file mode 100644 index a8b1c2eb67..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "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/blocks/mineable/shovel.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/shovel.json deleted file mode 100644 index 02d08df2b3..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/mineable/shovel.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:amethyst_dust_block" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/planks.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/planks.json deleted file mode 100644 index 36cc46d6db..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/blocks/pressure_plates.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/pressure_plates.json deleted file mode 100644 index 8880072112..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/pressure_plates.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_pressure_plate" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/slabs.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/slabs.json deleted file mode 100644 index af4c10b029..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/slabs.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_slab" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/stairs.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/stairs.json deleted file mode 100644 index c2e7fad75b..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/stairs.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_stairs" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/trapdoors.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/trapdoors.json deleted file mode 100644 index 0e9f576897..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/trapdoors.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_trapdoor" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/unstable_bottom_center.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/unstable_bottom_center.json deleted file mode 100644 index f27c95c784..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/unstable_bottom_center.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_fence_gate" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_buttons.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_buttons.json deleted file mode 100644 index 672bbc1a69..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_buttons.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_button" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_doors.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_doors.json deleted file mode 100644 index e5614ff46f..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_doors.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_door" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_fences.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_fences.json deleted file mode 100644 index 117722b2be..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_fences.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values": [ - "hexcasting:edified_fence", - "hexcasting:edified_fence" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json deleted file mode 100644 index 8880072112..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_pressure_plate" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json deleted file mode 100644 index af4c10b029..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_slab" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json deleted file mode 100644 index c2e7fad75b..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_stairs" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_trapdoors.json b/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_trapdoors.json deleted file mode 100644 index 0e9f576897..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/blocks/wooden_trapdoors.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_trapdoor" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/buttons.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/buttons.json deleted file mode 100644 index 672bbc1a69..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/buttons.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_button" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/doors.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/doors.json deleted file mode 100644 index e5614ff46f..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/doors.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_door" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/leaves.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/leaves.json deleted file mode 100644 index ff8e420cc6..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/items/logs.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/logs.json deleted file mode 100644 index 22fc9e7a51..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/logs.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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/items/logs_that_burn.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/logs_that_burn.json deleted file mode 100644 index 22fc9e7a51..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/logs_that_burn.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "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/items/planks.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/planks.json deleted file mode 100644 index 36cc46d6db..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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/items/slabs.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/slabs.json deleted file mode 100644 index af4c10b029..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/slabs.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_slab" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/trapdoors.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/trapdoors.json deleted file mode 100644 index 0e9f576897..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/trapdoors.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_trapdoor" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_buttons.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_buttons.json deleted file mode 100644 index 672bbc1a69..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_buttons.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_button" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_doors.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_doors.json deleted file mode 100644 index e5614ff46f..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_doors.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_door" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_pressure_plates.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_pressure_plates.json deleted file mode 100644 index 8880072112..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_pressure_plates.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_pressure_plate" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json deleted file mode 100644 index af4c10b029..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_slab" - ] -} \ No newline at end of file diff --git a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_trapdoors.json b/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_trapdoors.json deleted file mode 100644 index 0e9f576897..0000000000 --- a/Neoforge/src/generated/resources/data/minecraft/tags/items/wooden_trapdoors.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:edified_trapdoor" - ] -} \ 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 dd3eb257e3..aadb8138f4 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexConfig.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/ForgeHexConfig.java @@ -4,24 +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.minecraft.util.RandomSource; +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); @@ -79,14 +78,14 @@ 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 ForgeConfigSpec.BooleanValue alwaysShowListCommas; - - public Client(ForgeConfigSpec.Builder builder) { + 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; + private static ModConfigSpec.BooleanValue alwaysShowListCommas; + + 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); @@ -141,19 +140,24 @@ public boolean alwaysShowListCommas() { } public static class Server implements HexConfig.ServerConfigAccess { - private static ForgeConfigSpec.IntValue opBreakHarvestLevel; - private static ForgeConfigSpec.IntValue maxOpCount; - private static ForgeConfigSpec.IntValue maxSpellCircleLength; - private static ForgeConfigSpec.ConfigValue> actionDenyList; - private static ForgeConfigSpec.ConfigValue> circleActionDenyList; - - private static ForgeConfigSpec.BooleanValue greaterTeleportSplatsItems; - private static ForgeConfigSpec.BooleanValue villagersOffendedByMindMurder; - private static ForgeConfigSpec.ConfigValue> tpDimDenyList; - private static ForgeConfigSpec.BooleanValue doesTrueNameHaveAmbit; - private static ForgeConfigSpec.DoubleValue traderScrollChance; - - public Server(ForgeConfigSpec.Builder builder) { + 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 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 ModConfigSpec.ConfigValue> fewScrollTables; + private static ModConfigSpec.ConfigValue> someScrollTables; + private static ModConfigSpec.ConfigValue> manyScrollTables; + + + 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.") @@ -251,7 +255,7 @@ public double traderScrollChance() { } 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 39bd896580..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,14 +263,14 @@ 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) -> { @@ -284,15 +283,14 @@ private static void initListeners() { }); 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 521996ab29..aecbe848c5 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 @@ -6,22 +6,25 @@ 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; import static at.petrak.hexcasting.api.HexAPI.modLoc; public class ForgeHexLootModGen extends GlobalLootModifierProvider { + public ForgeHexLootModGen(PackOutput output, CompletableFuture registries) { + super(output, registries, HexAPI.MOD_ID); + } + public static final ResourceLocation RANDOM_SCROLL_TABLE = modLoc("random_scroll"); public static final ResourceLocation RANDOM_CYPHER_TABLE = modLoc("random_cypher"); - - public ForgeHexLootModGen(PackOutput output) { - super(output, HexAPI.MOD_ID); - } @Override protected void start() { @@ -55,7 +58,7 @@ protected void start() { }, 1)); // 1 chance = guaranteed spawn 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 1ed69ec340..933b23ea7f 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 60985fb338..de67351734 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,38 +13,39 @@ 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.Arrays; 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 final Integer[] PACKAGED_SPELL_HANDHELD_VARIANTS = {5}; - 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 @@ -58,11 +59,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"}) { @@ -81,9 +82,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"); @@ -102,10 +103,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)); @@ -133,7 +134,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; @@ -147,19 +148,19 @@ 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/default")); - singleTexture(getPath(HexItems.ANCIENT_PIGMENT), new ResourceLocation("item/generated"), + singleTexture(getPath(HexItems.ANCIENT_PIGMENT), ResourceLocation.withDefaultNamespace("item/generated"), "layer0", modLoc("item/colorizer/ancient")); simpleItem(modLoc("slate_blank")); @@ -210,16 +211,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") @@ -233,14 +234,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) @@ -263,7 +264,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() @@ -284,11 +285,11 @@ private void buildPackagedSpell(Item item, String stub, int numVariants) { var parent_tag = Arrays.asList(PACKAGED_SPELL_HANDHELD_VARIANTS).contains(i) ? "item/handheld_rod" : "item/generated"; - var plain = i == 0 ? singleTexture(name, new ResourceLocation(parent_tag), + var plain = i == 0 ? singleTexture(name, ResourceLocation.withDefaultNamespace(parent_tag), "layer0", modLoc("item/cad/" + i + "_" + stub)) - : withExistingParent(name + "_" + i, new ResourceLocation(parent_tag)) + : withExistingParent(name + "_" + i, ResourceLocation.withDefaultNamespace(parent_tag)) .texture("layer0", modLoc("item/cad/" + i + "_" + stub)); - var filled = withExistingParent(name + "_" + i + "_filled", new ResourceLocation(parent_tag)) + var filled = withExistingParent(name + "_" + i + "_filled", ResourceLocation.withDefaultNamespace(parent_tag)) .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 7581f6aaab..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 @@ -6,21 +6,23 @@ 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> INJECT_CYPHERS = REGISTRY.register( + public static final DeferredHolder, MapCodec> INJECT_CYPHERS = REGISTRY.register( "inject_cyphers", ForgeHexCypherLootMod.CODEC); - public static final RegistryObject> AMETHYST = REGISTRY.register( + 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 index 385bf4a64e..ad5e2d13c7 100644 --- a/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexCypherLootMod.java +++ b/Neoforge/src/main/java/at/petrak/hexcasting/forge/loot/ForgeHexCypherLootMod.java @@ -5,19 +5,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 ForgeHexCypherLootMod 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, ForgeHexCypherLootMod::new) @@ -42,7 +43,7 @@ public ForgeHexCypherLootMod(LootItemCondition[] conditionsIn, double chance) { } @Override - public Codec codec() { + 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 114a19b2b5..1b74f44159 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,20 +6,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.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) @@ -45,7 +46,7 @@ public ForgeHexScrollLootMod(LootItemCondition[] conditionsIn, int countRange) { } @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 abf74064e8..c53a796a4e 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,80 +1,67 @@ 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++, 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(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 d39a71e857..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_VM, 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,8 +278,7 @@ 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); } @@ -287,20 +287,12 @@ public Sentinel getSentinel(Player player) { public CastingVM getStaffcastVM(ServerPlayer player, InteractionHand hand) { // 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_VM), - 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 @@ -312,77 +304,62 @@ public void clearCastingData(ServerPlayer player) { @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,7 +574,7 @@ 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_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 92c3ed015f..e5e64d3744 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,12 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget import at.petrak.pkpcpbp.MiscUtil 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" @@ -123,10 +125,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 { @@ -135,7 +136,7 @@ allprojects { } gradle.projectsEvaluated { - tasks.withType(JavaCompile) { + tasks.withType(JavaCompile).configureEach { options.compilerArgs << "-Xmaxerrs" << "1000" } } @@ -144,8 +145,19 @@ allprojects { javadoc.options.addStringOption('Xdoclint:none', '-quiet') } +compileKotlin { + compilerOptions { + jvmTarget = JvmTarget.JVM_21 + } +} +compileTestKotlin { + 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/'