diff --git a/.github/workflows/build_docs.yml b/.github/workflows/build_docs.yml index b9421708..91084df0 100644 --- a/.github/workflows/build_docs.yml +++ b/.github/workflows/build_docs.yml @@ -18,7 +18,7 @@ on: env: PYPI_PACKAGE: hexdoc - HEXDOC: hexdoc 0.10.3/doc/properties.toml --ci + HEXDOC: hexdoc doc/properties.toml --ci permissions: contents: read diff --git a/.vscode/launch.json b/.vscode/launch.json index 994a6e05..5d853ff8 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -18,7 +18,7 @@ "request": "launch", "module": "hexdoc.hexdoc", "args": [ - "0.10.3/doc/properties.toml", "-o", "out",// "--allow-missing" + "doc/properties.toml", "-o", "out",// "--allow-missing" ], "console": "integratedTerminal", "justMyCode": false diff --git a/0.10.3/Common/build.gradle b/0.10.3/Common/build.gradle deleted file mode 100644 index b703a769..00000000 --- a/0.10.3/Common/build.gradle +++ /dev/null @@ -1,60 +0,0 @@ -plugins { - id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' -} - -archivesBaseName = getArtifactID("common") - -minecraft { - version(minecraftVersion) - accessWideners 'src/main/resources/hexplat.accesswidener' -} - -repositories { - mavenCentral() - - // If you have mod jar dependencies in ./libs, you can declare them as a repository like so: - // flatDir { - // dir 'libs' - // } - - maven { url 'https://maven.blamejared.com' } - - maven { - // location of the maven that hosts JEI files - name = "Progwml6 maven" - url = "https://dvs1.progwml6.com/files/maven/" - } - maven { - // location of a maven mirror for JEI files, as a fallback - name = "ModMaven" - url = "https://modmaven.dev" - } -} - -dependencies { - compileOnly group: 'org.spongepowered', name: 'mixin', version: '0.8.5' - implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' - - compileOnly "at.petra-k.paucal:paucal-common-$minecraftVersion:$paucalVersion" - compileOnly "vazkii.patchouli:Patchouli-xplat:$minecraftVersion-$patchouliVersion" - - compileOnly "org.jetbrains:annotations:$jetbrainsAnnotationsVersion" - testCompileOnly "org.jetbrains:annotations:$jetbrainsAnnotationsVersion" - - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.1' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.1' -} - -test { - useJUnitPlatform() -} - -processResources { - def buildProps = project.properties.clone() - - filesMatching(['pack.mcmeta']) { - expand buildProps - } -} - -setupJar(this) diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_bookshelf.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_bookshelf.json deleted file mode 100644 index 2f79ec12..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_connector.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_connector.json deleted file mode 100644 index c4552b49..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_record.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/akashic_record.json deleted file mode 100644 index c2aa512a..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_dust_block.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_dust_block.json deleted file mode 100644 index c27c62ff..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_edified_leaves.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_edified_leaves.json deleted file mode 100644 index db8af585..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_sconce.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_sconce.json deleted file mode 100644 index af524109..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_sconce.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/amethyst_sconce" - } - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_tiles.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_tiles.json deleted file mode 100644 index 79459a90..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/amethyst_tiles.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/amethyst_tiles" - } - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper.json deleted file mode 100644 index 1c809c02..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json deleted file mode 100644 index 3a632c39..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/aventurine_edified_leaves.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/aventurine_edified_leaves.json deleted file mode 100644 index 10383418..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/citrine_edified_leaves.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/citrine_edified_leaves.json deleted file mode 100644 index 3207814e..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/conjured.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/conjured.json deleted file mode 100644 index 5e8ffe70..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/conjured.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "hexcasting:block/conjured" - } - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/conjured_block.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/conjured_block.json deleted file mode 100644 index 5e8ffe70..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/directrix_redstone.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/directrix_redstone.json deleted file mode 100644 index 12b4b608..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/directrix_redstone.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "variants": { - "energized=false,facing=down,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_dim_down" - }, - "energized=false,facing=down,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_dim_down" - }, - "energized=false,facing=east,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_dim_east" - }, - "energized=false,facing=east,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_dim_east" - }, - "energized=false,facing=north,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_dim_north" - }, - "energized=false,facing=north,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_dim_north" - }, - "energized=false,facing=south,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_dim_south" - }, - "energized=false,facing=south,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_dim_south" - }, - "energized=false,facing=up,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_dim_up" - }, - "energized=false,facing=up,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_dim_up" - }, - "energized=false,facing=west,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_dim_west" - }, - "energized=false,facing=west,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_dim_west" - }, - "energized=true,facing=down,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_lit_down" - }, - "energized=true,facing=down,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_lit_down" - }, - "energized=true,facing=east,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_lit_east" - }, - "energized=true,facing=east,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_lit_east" - }, - "energized=true,facing=north,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_lit_north" - }, - "energized=true,facing=north,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_lit_north" - }, - "energized=true,facing=south,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_lit_south" - }, - "energized=true,facing=south,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_lit_south" - }, - "energized=true,facing=up,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_lit_up" - }, - "energized=true,facing=up,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_lit_up" - }, - "energized=true,facing=west,powered=false": { - "model": "hexcasting:block/redstone_directrix_unpowered_lit_west" - }, - "energized=true,facing=west,powered=true": { - "model": "hexcasting:block/redstone_directrix_powered_lit_west" - } - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_button.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_button.json deleted file mode 100644 index 81efad6f..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_door.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_door.json deleted file mode 100644 index 029d3bd5..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_log.json deleted file mode 100644 index 4cd8fe5d..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_panel.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_panel.json deleted file mode 100644 index 17d99a79..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_planks.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_planks.json deleted file mode 100644 index a2d790f0..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_pressure_plate.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_pressure_plate.json deleted file mode 100644 index 6da4bab9..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_slab.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_slab.json deleted file mode 100644 index 6a4d4be0..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_stairs.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_stairs.json deleted file mode 100644 index 23ac40ca..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_tile.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_tile.json deleted file mode 100644 index 23d71da0..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_trapdoor.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_trapdoor.json deleted file mode 100644 index 0df527ca..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_wood.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/edified_wood.json deleted file mode 100644 index 1d963101..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/empty_directrix.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/empty_directrix.json deleted file mode 100644 index 464aa5bc..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/empty_directrix.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "variants": { - "axis=x,energized=false": { - "model": "hexcasting:block/empty_directrix_dim_x" - }, - "axis=x,energized=true": { - "model": "hexcasting:block/empty_directrix_lit_x" - }, - "axis=y,energized=false": { - "model": "hexcasting:block/empty_directrix_dim_y" - }, - "axis=y,energized=true": { - "model": "hexcasting:block/empty_directrix_lit_y" - }, - "axis=z,energized=false": { - "model": "hexcasting:block/empty_directrix_dim_z" - }, - "axis=z,energized=true": { - "model": "hexcasting:block/empty_directrix_lit_z" - } - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/empty_impetus.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/empty_impetus.json deleted file mode 100644 index 0a87a5ff..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/empty_impetus.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "variants": { - "energized=false,facing=down": { - "model": "hexcasting:block/empty_impetus_dim_down" - }, - "energized=false,facing=east": { - "model": "hexcasting:block/empty_impetus_dim_east" - }, - "energized=false,facing=north": { - "model": "hexcasting:block/empty_impetus_dim_north" - }, - "energized=false,facing=south": { - "model": "hexcasting:block/empty_impetus_dim_south" - }, - "energized=false,facing=up": { - "model": "hexcasting:block/empty_impetus_dim_up" - }, - "energized=false,facing=west": { - "model": "hexcasting:block/empty_impetus_dim_west" - }, - "energized=true,facing=down": { - "model": "hexcasting:block/empty_impetus_lit_down" - }, - "energized=true,facing=east": { - "model": "hexcasting:block/empty_impetus_lit_east" - }, - "energized=true,facing=north": { - "model": "hexcasting:block/empty_impetus_lit_north" - }, - "energized=true,facing=south": { - "model": "hexcasting:block/empty_impetus_lit_south" - }, - "energized=true,facing=up": { - "model": "hexcasting:block/empty_impetus_lit_up" - }, - "energized=true,facing=west": { - "model": "hexcasting:block/empty_impetus_lit_west" - } - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/impetus_look.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/impetus_look.json deleted file mode 100644 index b5e851cb..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/impetus_look.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "variants": { - "energized=false,facing=down": { - "model": "hexcasting:block/impetus_look_dim_down" - }, - "energized=false,facing=east": { - "model": "hexcasting:block/impetus_look_dim_east" - }, - "energized=false,facing=north": { - "model": "hexcasting:block/impetus_look_dim_north" - }, - "energized=false,facing=south": { - "model": "hexcasting:block/impetus_look_dim_south" - }, - "energized=false,facing=up": { - "model": "hexcasting:block/impetus_look_dim_up" - }, - "energized=false,facing=west": { - "model": "hexcasting:block/impetus_look_dim_west" - }, - "energized=true,facing=down": { - "model": "hexcasting:block/impetus_look_lit_down" - }, - "energized=true,facing=east": { - "model": "hexcasting:block/impetus_look_lit_east" - }, - "energized=true,facing=north": { - "model": "hexcasting:block/impetus_look_lit_north" - }, - "energized=true,facing=south": { - "model": "hexcasting:block/impetus_look_lit_south" - }, - "energized=true,facing=up": { - "model": "hexcasting:block/impetus_look_lit_up" - }, - "energized=true,facing=west": { - "model": "hexcasting:block/impetus_look_lit_west" - } - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/impetus_rightclick.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/impetus_rightclick.json deleted file mode 100644 index 85f49e7c..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/impetus_rightclick.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "variants": { - "energized=false,facing=down": { - "model": "hexcasting:block/impetus_rightclick_dim_down" - }, - "energized=false,facing=east": { - "model": "hexcasting:block/impetus_rightclick_dim_east" - }, - "energized=false,facing=north": { - "model": "hexcasting:block/impetus_rightclick_dim_north" - }, - "energized=false,facing=south": { - "model": "hexcasting:block/impetus_rightclick_dim_south" - }, - "energized=false,facing=up": { - "model": "hexcasting:block/impetus_rightclick_dim_up" - }, - "energized=false,facing=west": { - "model": "hexcasting:block/impetus_rightclick_dim_west" - }, - "energized=true,facing=down": { - "model": "hexcasting:block/impetus_rightclick_lit_down" - }, - "energized=true,facing=east": { - "model": "hexcasting:block/impetus_rightclick_lit_east" - }, - "energized=true,facing=north": { - "model": "hexcasting:block/impetus_rightclick_lit_north" - }, - "energized=true,facing=south": { - "model": "hexcasting:block/impetus_rightclick_lit_south" - }, - "energized=true,facing=up": { - "model": "hexcasting:block/impetus_rightclick_lit_up" - }, - "energized=true,facing=west": { - "model": "hexcasting:block/impetus_rightclick_lit_west" - } - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/impetus_storedplayer.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/impetus_storedplayer.json deleted file mode 100644 index b25cb7ed..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/impetus_storedplayer.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "variants": { - "energized=false,facing=down,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_dim_down" - }, - "energized=false,facing=down,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_dim_down" - }, - "energized=false,facing=east,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_dim_east" - }, - "energized=false,facing=east,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_dim_east" - }, - "energized=false,facing=north,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_dim_north" - }, - "energized=false,facing=north,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_dim_north" - }, - "energized=false,facing=south,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_dim_south" - }, - "energized=false,facing=south,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_dim_south" - }, - "energized=false,facing=up,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_dim_up" - }, - "energized=false,facing=up,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_dim_up" - }, - "energized=false,facing=west,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_dim_west" - }, - "energized=false,facing=west,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_dim_west" - }, - "energized=true,facing=down,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_lit_down" - }, - "energized=true,facing=down,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_lit_down" - }, - "energized=true,facing=east,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_lit_east" - }, - "energized=true,facing=east,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_lit_east" - }, - "energized=true,facing=north,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_lit_north" - }, - "energized=true,facing=north,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_lit_north" - }, - "energized=true,facing=south,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_lit_south" - }, - "energized=true,facing=south,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_lit_south" - }, - "energized=true,facing=up,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_lit_up" - }, - "energized=true,facing=up,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_lit_up" - }, - "energized=true,facing=west,powered=false": { - "model": "hexcasting:block/impetus_storedplayer_lit_west" - }, - "energized=true,facing=west,powered=true": { - "model": "hexcasting:block/impetus_storedplayer_lit_west" - } - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper.json deleted file mode 100644 index 2621fa1b..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper_lantern.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/scroll_paper_lantern.json deleted file mode 100644 index 328e1b46..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/slate.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/slate.json deleted file mode 100644 index 8d7a817c..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/slate_block.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/slate_block.json deleted file mode 100644 index 35169aaa..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_log.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_log.json deleted file mode 100644 index cb09f012..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_wood.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/blockstates/stripped_edified_wood.json deleted file mode 100644 index b6b89e3f..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf.json deleted file mode 100644 index dfd9013c..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_1.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_1.json deleted file mode 100644 index 2402c6c5..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_2.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_2.json deleted file mode 100644 index 4846d3c2..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_3.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_3.json deleted file mode 100644 index 9352317b..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_4.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_4.json deleted file mode 100644 index 4f98ee65..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_empty.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_bookshelf_empty.json deleted file mode 100644 index 9b788e5d..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_ligature.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_ligature.json deleted file mode 100644 index 72a32c3a..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_record.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/akashic_record.json deleted file mode 100644 index 099f9920..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_dust_block.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_dust_block.json deleted file mode 100644 index 8fa450ab..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_edified_leaves.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_edified_leaves.json deleted file mode 100644 index 1430430c..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_tiles.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_tiles.json deleted file mode 100644 index 9870b725..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/amethyst_tiles.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "hexcasting:block/amethyst_tiles" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper.json deleted file mode 100644 index 5b5b77bb..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper_lantern.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/ancient_scroll_paper_lantern.json deleted file mode 100644 index 19fc5366..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/aventurine_edified_leaves.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/aventurine_edified_leaves.json deleted file mode 100644 index 96c1a5ee..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/citrine_edified_leaves.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/citrine_edified_leaves.json deleted file mode 100644 index 37ff29d3..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/conjured.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/conjured.json deleted file mode 100644 index 1844be1d..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_button.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_button.json deleted file mode 100644 index 1c75ef18..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_button_pressed.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_button_pressed.json deleted file mode 100644 index a026dba7..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left.json deleted file mode 100644 index 13c75114..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left_open.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_left_open.json deleted file mode 100644 index 3c6b57c8..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right.json deleted file mode 100644 index a1a3a08e..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right_open.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_bottom_right_open.json deleted file mode 100644 index 41c7bbc9..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left.json deleted file mode 100644 index b135ece5..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left_open.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_left_open.json deleted file mode 100644 index 7d8ba1df..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right.json deleted file mode 100644 index 16401105..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right_open.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_door_top_right_open.json deleted file mode 100644 index c60867c2..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_log.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_log.json deleted file mode 100644 index 9ba1530b..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_horizontal.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_log_horizontal.json deleted file mode 100644 index 84e434e7..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_panel.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_panel.json deleted file mode 100644 index 3d790f2a..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks.json deleted file mode 100644 index a7223010..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_2.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_2.json deleted file mode 100644 index d0c4c583..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_3.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_planks_3.json deleted file mode 100644 index bad8e6ac..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate.json deleted file mode 100644 index 5a1b2b57..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_pressure_plate_down.json deleted file mode 100644 index eeaa3646..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab.json deleted file mode 100644 index 09d601ec..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab_top.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_slab_top.json deleted file mode 100644 index f4d2fcf9..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs.json deleted file mode 100644 index 6e9ae9aa..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_inner.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_inner.json deleted file mode 100644 index 7597f2c8..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_outer.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_stairs_outer.json deleted file mode 100644 index 62d7ab50..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_tile.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_tile.json deleted file mode 100644 index 595adf00..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_bottom.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_bottom.json deleted file mode 100644 index 67b61c83..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_open.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_open.json deleted file mode 100644 index 03b0a364..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_top.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_trapdoor_top.json deleted file mode 100644 index bb9768cc..00000000 --- a/0.10.3/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" - } -} diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood.json deleted file mode 100644 index 22851df0..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood_horizontal.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/edified_wood_horizontal.json deleted file mode 100644 index 72149b4b..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_dim_x.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_dim_x.json deleted file mode 100644 index 72a80fba..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_dim_x.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/empty/horiz_dim", - "east": "hexcasting:block/directrix/empty/end_dim", - "north": "hexcasting:block/directrix/empty/horiz_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/empty/horiz_dim", - "up": "hexcasting:block/directrix/empty/horiz_dim", - "west": "hexcasting:block/directrix/empty/end_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_dim_y.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_dim_y.json deleted file mode 100644 index 5cacc914..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_dim_y.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/empty/end_dim", - "east": "hexcasting:block/directrix/empty/vert_dim", - "north": "hexcasting:block/directrix/empty/vert_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/empty/vert_dim", - "up": "hexcasting:block/directrix/empty/end_dim", - "west": "hexcasting:block/directrix/empty/vert_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_dim_z.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_dim_z.json deleted file mode 100644 index ecda201c..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_dim_z.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/empty/vert_dim", - "east": "hexcasting:block/directrix/empty/horiz_dim", - "north": "hexcasting:block/directrix/empty/end_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/empty/end_dim", - "up": "hexcasting:block/directrix/empty/vert_dim", - "west": "hexcasting:block/directrix/empty/horiz_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_lit_x.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_lit_x.json deleted file mode 100644 index 84db6d31..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_lit_x.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/empty/horiz_lit", - "east": "hexcasting:block/directrix/empty/end_lit", - "north": "hexcasting:block/directrix/empty/horiz_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/empty/horiz_lit", - "up": "hexcasting:block/directrix/empty/horiz_lit", - "west": "hexcasting:block/directrix/empty/end_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_lit_y.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_lit_y.json deleted file mode 100644 index 0b6fe067..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_lit_y.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/empty/end_lit", - "east": "hexcasting:block/directrix/empty/vert_lit", - "north": "hexcasting:block/directrix/empty/vert_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/empty/vert_lit", - "up": "hexcasting:block/directrix/empty/end_lit", - "west": "hexcasting:block/directrix/empty/vert_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_lit_z.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_lit_z.json deleted file mode 100644 index a22d00ee..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_directrix_lit_z.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/empty/vert_lit", - "east": "hexcasting:block/directrix/empty/horiz_lit", - "north": "hexcasting:block/directrix/empty/end_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/empty/end_lit", - "up": "hexcasting:block/directrix/empty/vert_lit", - "west": "hexcasting:block/directrix/empty/horiz_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_down.json deleted file mode 100644 index a8626302..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/front_empty_dim", - "east": "hexcasting:block/impetus/down_empty_dim", - "north": "hexcasting:block/impetus/down_empty_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/down_empty_dim", - "up": "hexcasting:block/impetus/back_empty_dim", - "west": "hexcasting:block/impetus/down_empty_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_east.json deleted file mode 100644 index 1a56be1b..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/right_empty_dim", - "east": "hexcasting:block/impetus/front_empty_dim", - "north": "hexcasting:block/impetus/left_empty_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/right_empty_dim", - "up": "hexcasting:block/impetus/right_empty_dim", - "west": "hexcasting:block/impetus/back_empty_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_north.json deleted file mode 100644 index 33aacabb..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/down_empty_dim", - "east": "hexcasting:block/impetus/right_empty_dim", - "north": "hexcasting:block/impetus/front_empty_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/back_empty_dim", - "up": "hexcasting:block/impetus/up_empty_dim", - "west": "hexcasting:block/impetus/left_empty_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_south.json deleted file mode 100644 index 80db3dc3..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/up_empty_dim", - "east": "hexcasting:block/impetus/left_empty_dim", - "north": "hexcasting:block/impetus/back_empty_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/front_empty_dim", - "up": "hexcasting:block/impetus/down_empty_dim", - "west": "hexcasting:block/impetus/right_empty_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_up.json deleted file mode 100644 index 91092aeb..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/back_empty_dim", - "east": "hexcasting:block/impetus/up_empty_dim", - "north": "hexcasting:block/impetus/up_empty_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/up_empty_dim", - "up": "hexcasting:block/impetus/front_empty_dim", - "west": "hexcasting:block/impetus/up_empty_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_west.json deleted file mode 100644 index 25cded53..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/left_empty_dim", - "east": "hexcasting:block/impetus/back_empty_dim", - "north": "hexcasting:block/impetus/right_empty_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/left_empty_dim", - "up": "hexcasting:block/impetus/left_empty_dim", - "west": "hexcasting:block/impetus/front_empty_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_down.json deleted file mode 100644 index fee8f57f..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/front_empty_lit", - "east": "hexcasting:block/impetus/down_empty_lit", - "north": "hexcasting:block/impetus/down_empty_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/down_empty_lit", - "up": "hexcasting:block/impetus/back_empty_lit", - "west": "hexcasting:block/impetus/down_empty_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_east.json deleted file mode 100644 index cbaab365..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/right_empty_lit", - "east": "hexcasting:block/impetus/front_empty_lit", - "north": "hexcasting:block/impetus/left_empty_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/right_empty_lit", - "up": "hexcasting:block/impetus/right_empty_lit", - "west": "hexcasting:block/impetus/back_empty_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_north.json deleted file mode 100644 index 49b977fd..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/down_empty_lit", - "east": "hexcasting:block/impetus/right_empty_lit", - "north": "hexcasting:block/impetus/front_empty_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/back_empty_lit", - "up": "hexcasting:block/impetus/up_empty_lit", - "west": "hexcasting:block/impetus/left_empty_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_south.json deleted file mode 100644 index 13918845..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/up_empty_lit", - "east": "hexcasting:block/impetus/left_empty_lit", - "north": "hexcasting:block/impetus/back_empty_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/front_empty_lit", - "up": "hexcasting:block/impetus/down_empty_lit", - "west": "hexcasting:block/impetus/right_empty_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_up.json deleted file mode 100644 index 05e81505..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/back_empty_lit", - "east": "hexcasting:block/impetus/up_empty_lit", - "north": "hexcasting:block/impetus/up_empty_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/up_empty_lit", - "up": "hexcasting:block/impetus/front_empty_lit", - "west": "hexcasting:block/impetus/up_empty_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_west.json deleted file mode 100644 index 9efb9a4a..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/empty_impetus_lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/left_empty_lit", - "east": "hexcasting:block/impetus/back_empty_lit", - "north": "hexcasting:block/impetus/right_empty_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/left_empty_lit", - "up": "hexcasting:block/impetus/left_empty_lit", - "west": "hexcasting:block/impetus/front_empty_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_down.json deleted file mode 100644 index da96cbf3..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/look_dim", - "east": "hexcasting:block/impetus/down_dim", - "north": "hexcasting:block/impetus/down_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/down_dim", - "up": "hexcasting:block/impetus/back_dim", - "west": "hexcasting:block/impetus/down_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_east.json deleted file mode 100644 index 864c91ba..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/right_dim", - "east": "hexcasting:block/impetus/look_dim", - "north": "hexcasting:block/impetus/left_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/right_dim", - "up": "hexcasting:block/impetus/right_dim", - "west": "hexcasting:block/impetus/back_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_north.json deleted file mode 100644 index 1c1dd3bb..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/down_dim", - "east": "hexcasting:block/impetus/right_dim", - "north": "hexcasting:block/impetus/look_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/back_dim", - "up": "hexcasting:block/impetus/up_dim", - "west": "hexcasting:block/impetus/left_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_south.json deleted file mode 100644 index af39b85f..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/up_dim", - "east": "hexcasting:block/impetus/left_dim", - "north": "hexcasting:block/impetus/back_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/look_dim", - "up": "hexcasting:block/impetus/down_dim", - "west": "hexcasting:block/impetus/right_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_up.json deleted file mode 100644 index 48d526d9..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/back_dim", - "east": "hexcasting:block/impetus/up_dim", - "north": "hexcasting:block/impetus/up_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/up_dim", - "up": "hexcasting:block/impetus/look_dim", - "west": "hexcasting:block/impetus/up_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_west.json deleted file mode 100644 index 9ec847d8..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/left_dim", - "east": "hexcasting:block/impetus/back_dim", - "north": "hexcasting:block/impetus/right_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/left_dim", - "up": "hexcasting:block/impetus/left_dim", - "west": "hexcasting:block/impetus/look_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_down.json deleted file mode 100644 index eed81db6..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/look_lit", - "east": "hexcasting:block/impetus/down_lit", - "north": "hexcasting:block/impetus/down_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/down_lit", - "up": "hexcasting:block/impetus/back_lit", - "west": "hexcasting:block/impetus/down_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_east.json deleted file mode 100644 index 5f938472..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/right_lit", - "east": "hexcasting:block/impetus/look_lit", - "north": "hexcasting:block/impetus/left_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/right_lit", - "up": "hexcasting:block/impetus/right_lit", - "west": "hexcasting:block/impetus/back_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_north.json deleted file mode 100644 index 2d72c132..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/down_lit", - "east": "hexcasting:block/impetus/right_lit", - "north": "hexcasting:block/impetus/look_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/back_lit", - "up": "hexcasting:block/impetus/up_lit", - "west": "hexcasting:block/impetus/left_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_south.json deleted file mode 100644 index 496d4369..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/up_lit", - "east": "hexcasting:block/impetus/left_lit", - "north": "hexcasting:block/impetus/back_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/look_lit", - "up": "hexcasting:block/impetus/down_lit", - "west": "hexcasting:block/impetus/right_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_up.json deleted file mode 100644 index 664800b9..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/back_lit", - "east": "hexcasting:block/impetus/up_lit", - "north": "hexcasting:block/impetus/up_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/up_lit", - "up": "hexcasting:block/impetus/look_lit", - "west": "hexcasting:block/impetus/up_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_west.json deleted file mode 100644 index ae05c316..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_look_lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/left_lit", - "east": "hexcasting:block/impetus/back_lit", - "north": "hexcasting:block/impetus/right_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/left_lit", - "up": "hexcasting:block/impetus/left_lit", - "west": "hexcasting:block/impetus/look_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_down.json deleted file mode 100644 index 18b1f5ae..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/rightclick_dim", - "east": "hexcasting:block/impetus/down_dim", - "north": "hexcasting:block/impetus/down_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/down_dim", - "up": "hexcasting:block/impetus/back_dim", - "west": "hexcasting:block/impetus/down_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_east.json deleted file mode 100644 index 5cd67727..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/right_dim", - "east": "hexcasting:block/impetus/rightclick_dim", - "north": "hexcasting:block/impetus/left_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/right_dim", - "up": "hexcasting:block/impetus/right_dim", - "west": "hexcasting:block/impetus/back_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_north.json deleted file mode 100644 index cdcdec9e..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/down_dim", - "east": "hexcasting:block/impetus/right_dim", - "north": "hexcasting:block/impetus/rightclick_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/back_dim", - "up": "hexcasting:block/impetus/up_dim", - "west": "hexcasting:block/impetus/left_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_south.json deleted file mode 100644 index 0f494afd..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/up_dim", - "east": "hexcasting:block/impetus/left_dim", - "north": "hexcasting:block/impetus/back_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/rightclick_dim", - "up": "hexcasting:block/impetus/down_dim", - "west": "hexcasting:block/impetus/right_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_up.json deleted file mode 100644 index 0ab86071..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/back_dim", - "east": "hexcasting:block/impetus/up_dim", - "north": "hexcasting:block/impetus/up_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/up_dim", - "up": "hexcasting:block/impetus/rightclick_dim", - "west": "hexcasting:block/impetus/up_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_west.json deleted file mode 100644 index ca7a2ccb..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/left_dim", - "east": "hexcasting:block/impetus/back_dim", - "north": "hexcasting:block/impetus/right_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/left_dim", - "up": "hexcasting:block/impetus/left_dim", - "west": "hexcasting:block/impetus/rightclick_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_down.json deleted file mode 100644 index ed790e5d..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/rightclick_lit", - "east": "hexcasting:block/impetus/down_lit", - "north": "hexcasting:block/impetus/down_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/down_lit", - "up": "hexcasting:block/impetus/back_lit", - "west": "hexcasting:block/impetus/down_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_east.json deleted file mode 100644 index c9f13f4a..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/right_lit", - "east": "hexcasting:block/impetus/rightclick_lit", - "north": "hexcasting:block/impetus/left_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/right_lit", - "up": "hexcasting:block/impetus/right_lit", - "west": "hexcasting:block/impetus/back_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_north.json deleted file mode 100644 index 6af6c77d..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/down_lit", - "east": "hexcasting:block/impetus/right_lit", - "north": "hexcasting:block/impetus/rightclick_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/back_lit", - "up": "hexcasting:block/impetus/up_lit", - "west": "hexcasting:block/impetus/left_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_south.json deleted file mode 100644 index fc046e86..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/up_lit", - "east": "hexcasting:block/impetus/left_lit", - "north": "hexcasting:block/impetus/back_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/rightclick_lit", - "up": "hexcasting:block/impetus/down_lit", - "west": "hexcasting:block/impetus/right_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_up.json deleted file mode 100644 index fdb94e58..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/back_lit", - "east": "hexcasting:block/impetus/up_lit", - "north": "hexcasting:block/impetus/up_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/up_lit", - "up": "hexcasting:block/impetus/rightclick_lit", - "west": "hexcasting:block/impetus/up_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_west.json deleted file mode 100644 index d8ce52ee..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_rightclick_lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/left_lit", - "east": "hexcasting:block/impetus/back_lit", - "north": "hexcasting:block/impetus/right_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/left_lit", - "up": "hexcasting:block/impetus/left_lit", - "west": "hexcasting:block/impetus/rightclick_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_down.json deleted file mode 100644 index b1d9fedb..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/storedplayer_dim", - "east": "hexcasting:block/impetus/down_dim", - "north": "hexcasting:block/impetus/down_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/down_dim", - "up": "hexcasting:block/impetus/back_dim", - "west": "hexcasting:block/impetus/down_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_east.json deleted file mode 100644 index fce67205..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/right_dim", - "east": "hexcasting:block/impetus/storedplayer_dim", - "north": "hexcasting:block/impetus/left_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/right_dim", - "up": "hexcasting:block/impetus/right_dim", - "west": "hexcasting:block/impetus/back_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_north.json deleted file mode 100644 index ad81907b..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/down_dim", - "east": "hexcasting:block/impetus/right_dim", - "north": "hexcasting:block/impetus/storedplayer_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/back_dim", - "up": "hexcasting:block/impetus/up_dim", - "west": "hexcasting:block/impetus/left_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_south.json deleted file mode 100644 index 299bf5d6..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/up_dim", - "east": "hexcasting:block/impetus/left_dim", - "north": "hexcasting:block/impetus/back_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/storedplayer_dim", - "up": "hexcasting:block/impetus/down_dim", - "west": "hexcasting:block/impetus/right_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_up.json deleted file mode 100644 index 7731a397..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/back_dim", - "east": "hexcasting:block/impetus/up_dim", - "north": "hexcasting:block/impetus/up_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/up_dim", - "up": "hexcasting:block/impetus/storedplayer_dim", - "west": "hexcasting:block/impetus/up_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_west.json deleted file mode 100644 index 7c64a839..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/left_dim", - "east": "hexcasting:block/impetus/back_dim", - "north": "hexcasting:block/impetus/right_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/left_dim", - "up": "hexcasting:block/impetus/left_dim", - "west": "hexcasting:block/impetus/storedplayer_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_down.json deleted file mode 100644 index 0986f415..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/storedplayer_lit", - "east": "hexcasting:block/impetus/down_lit", - "north": "hexcasting:block/impetus/down_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/down_lit", - "up": "hexcasting:block/impetus/back_lit", - "west": "hexcasting:block/impetus/down_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_east.json deleted file mode 100644 index 80c68ade..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/right_lit", - "east": "hexcasting:block/impetus/storedplayer_lit", - "north": "hexcasting:block/impetus/left_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/right_lit", - "up": "hexcasting:block/impetus/right_lit", - "west": "hexcasting:block/impetus/back_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_north.json deleted file mode 100644 index 3d82c4be..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/down_lit", - "east": "hexcasting:block/impetus/right_lit", - "north": "hexcasting:block/impetus/storedplayer_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/back_lit", - "up": "hexcasting:block/impetus/up_lit", - "west": "hexcasting:block/impetus/left_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_south.json deleted file mode 100644 index 2d28b4ee..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/up_lit", - "east": "hexcasting:block/impetus/left_lit", - "north": "hexcasting:block/impetus/back_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/storedplayer_lit", - "up": "hexcasting:block/impetus/down_lit", - "west": "hexcasting:block/impetus/right_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_up.json deleted file mode 100644 index fd08ddaa..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/back_lit", - "east": "hexcasting:block/impetus/up_lit", - "north": "hexcasting:block/impetus/up_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/up_lit", - "up": "hexcasting:block/impetus/storedplayer_lit", - "west": "hexcasting:block/impetus/up_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_west.json deleted file mode 100644 index fee87024..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/impetus_storedplayer_lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/impetus/left_lit", - "east": "hexcasting:block/impetus/back_lit", - "north": "hexcasting:block/impetus/right_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/impetus/left_lit", - "up": "hexcasting:block/impetus/left_lit", - "west": "hexcasting:block/impetus/storedplayer_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_down.json deleted file mode 100644 index 86cf0338..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/front_dim", - "east": "hexcasting:block/directrix/redstone/down_powered_dim", - "north": "hexcasting:block/directrix/redstone/down_powered_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/down_powered_dim", - "up": "hexcasting:block/directrix/redstone/back_powered", - "west": "hexcasting:block/directrix/redstone/down_powered_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_east.json deleted file mode 100644 index b33d9f8e..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/right_powered_dim", - "east": "hexcasting:block/directrix/redstone/front_dim", - "north": "hexcasting:block/directrix/redstone/left_powered_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/right_powered_dim", - "up": "hexcasting:block/directrix/redstone/right_powered_dim", - "west": "hexcasting:block/directrix/redstone/back_powered" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_north.json deleted file mode 100644 index 414be41d..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/down_powered_dim", - "east": "hexcasting:block/directrix/redstone/right_powered_dim", - "north": "hexcasting:block/directrix/redstone/front_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/back_powered", - "up": "hexcasting:block/directrix/redstone/up_powered_dim", - "west": "hexcasting:block/directrix/redstone/left_powered_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_south.json deleted file mode 100644 index 949091e7..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/up_powered_dim", - "east": "hexcasting:block/directrix/redstone/left_powered_dim", - "north": "hexcasting:block/directrix/redstone/back_powered", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/front_dim", - "up": "hexcasting:block/directrix/redstone/down_powered_dim", - "west": "hexcasting:block/directrix/redstone/right_powered_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_up.json deleted file mode 100644 index b1d92630..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/back_powered", - "east": "hexcasting:block/directrix/redstone/up_powered_dim", - "north": "hexcasting:block/directrix/redstone/up_powered_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/up_powered_dim", - "up": "hexcasting:block/directrix/redstone/front_dim", - "west": "hexcasting:block/directrix/redstone/up_powered_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_west.json deleted file mode 100644 index 76ad7af2..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/left_powered_dim", - "east": "hexcasting:block/directrix/redstone/back_powered", - "north": "hexcasting:block/directrix/redstone/right_powered_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/left_powered_dim", - "up": "hexcasting:block/directrix/redstone/left_powered_dim", - "west": "hexcasting:block/directrix/redstone/front_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_down.json deleted file mode 100644 index 5b04d3fa..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/front_lit", - "east": "hexcasting:block/directrix/redstone/down_powered_lit", - "north": "hexcasting:block/directrix/redstone/down_powered_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/down_powered_lit", - "up": "hexcasting:block/directrix/redstone/back_powered", - "west": "hexcasting:block/directrix/redstone/down_powered_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_east.json deleted file mode 100644 index 8f0e3cc0..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/right_powered_lit", - "east": "hexcasting:block/directrix/redstone/front_lit", - "north": "hexcasting:block/directrix/redstone/left_powered_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/right_powered_lit", - "up": "hexcasting:block/directrix/redstone/right_powered_lit", - "west": "hexcasting:block/directrix/redstone/back_powered" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_north.json deleted file mode 100644 index 3f33bc75..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/down_powered_lit", - "east": "hexcasting:block/directrix/redstone/right_powered_lit", - "north": "hexcasting:block/directrix/redstone/front_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/back_powered", - "up": "hexcasting:block/directrix/redstone/up_powered_lit", - "west": "hexcasting:block/directrix/redstone/left_powered_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_south.json deleted file mode 100644 index 801dcd30..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/up_powered_lit", - "east": "hexcasting:block/directrix/redstone/left_powered_lit", - "north": "hexcasting:block/directrix/redstone/back_powered", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/front_lit", - "up": "hexcasting:block/directrix/redstone/down_powered_lit", - "west": "hexcasting:block/directrix/redstone/right_powered_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_up.json deleted file mode 100644 index 6090255b..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/back_powered", - "east": "hexcasting:block/directrix/redstone/up_powered_lit", - "north": "hexcasting:block/directrix/redstone/up_powered_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/up_powered_lit", - "up": "hexcasting:block/directrix/redstone/front_lit", - "west": "hexcasting:block/directrix/redstone/up_powered_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_west.json deleted file mode 100644 index 2638f433..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_powered_lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/left_powered_lit", - "east": "hexcasting:block/directrix/redstone/back_powered", - "north": "hexcasting:block/directrix/redstone/right_powered_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/left_powered_lit", - "up": "hexcasting:block/directrix/redstone/left_powered_lit", - "west": "hexcasting:block/directrix/redstone/front_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_down.json deleted file mode 100644 index 5e814990..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/front_dim", - "east": "hexcasting:block/directrix/redstone/down_unpowered_dim", - "north": "hexcasting:block/directrix/redstone/down_unpowered_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/down_unpowered_dim", - "up": "hexcasting:block/directrix/redstone/back_unpowered", - "west": "hexcasting:block/directrix/redstone/down_unpowered_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_east.json deleted file mode 100644 index 40460f71..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/right_unpowered_dim", - "east": "hexcasting:block/directrix/redstone/front_dim", - "north": "hexcasting:block/directrix/redstone/left_unpowered_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/right_unpowered_dim", - "up": "hexcasting:block/directrix/redstone/right_unpowered_dim", - "west": "hexcasting:block/directrix/redstone/back_unpowered" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_north.json deleted file mode 100644 index d9a6b0a9..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/down_unpowered_dim", - "east": "hexcasting:block/directrix/redstone/right_unpowered_dim", - "north": "hexcasting:block/directrix/redstone/front_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/back_unpowered", - "up": "hexcasting:block/directrix/redstone/up_unpowered_dim", - "west": "hexcasting:block/directrix/redstone/left_unpowered_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_south.json deleted file mode 100644 index 29d140d9..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/up_unpowered_dim", - "east": "hexcasting:block/directrix/redstone/left_unpowered_dim", - "north": "hexcasting:block/directrix/redstone/back_unpowered", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/front_dim", - "up": "hexcasting:block/directrix/redstone/down_unpowered_dim", - "west": "hexcasting:block/directrix/redstone/right_unpowered_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_up.json deleted file mode 100644 index ed9d365b..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/back_unpowered", - "east": "hexcasting:block/directrix/redstone/up_unpowered_dim", - "north": "hexcasting:block/directrix/redstone/up_unpowered_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/up_unpowered_dim", - "up": "hexcasting:block/directrix/redstone/front_dim", - "west": "hexcasting:block/directrix/redstone/up_unpowered_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_west.json deleted file mode 100644 index a88eaf5b..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_dim_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/left_unpowered_dim", - "east": "hexcasting:block/directrix/redstone/back_unpowered", - "north": "hexcasting:block/directrix/redstone/right_unpowered_dim", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/left_unpowered_dim", - "up": "hexcasting:block/directrix/redstone/left_unpowered_dim", - "west": "hexcasting:block/directrix/redstone/front_dim" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_down.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_down.json deleted file mode 100644 index 4bd80415..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_down.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/front_lit", - "east": "hexcasting:block/directrix/redstone/down_unpowered_lit", - "north": "hexcasting:block/directrix/redstone/down_unpowered_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/down_unpowered_lit", - "up": "hexcasting:block/directrix/redstone/back_unpowered", - "west": "hexcasting:block/directrix/redstone/down_unpowered_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_east.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_east.json deleted file mode 100644 index 6dc5b454..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_east.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/right_unpowered_lit", - "east": "hexcasting:block/directrix/redstone/front_lit", - "north": "hexcasting:block/directrix/redstone/left_unpowered_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/right_unpowered_lit", - "up": "hexcasting:block/directrix/redstone/right_unpowered_lit", - "west": "hexcasting:block/directrix/redstone/back_unpowered" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_north.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_north.json deleted file mode 100644 index df773c09..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_north.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/down_unpowered_lit", - "east": "hexcasting:block/directrix/redstone/right_unpowered_lit", - "north": "hexcasting:block/directrix/redstone/front_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/back_unpowered", - "up": "hexcasting:block/directrix/redstone/up_unpowered_lit", - "west": "hexcasting:block/directrix/redstone/left_unpowered_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_south.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_south.json deleted file mode 100644 index 95b474f8..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_south.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/up_unpowered_lit", - "east": "hexcasting:block/directrix/redstone/left_unpowered_lit", - "north": "hexcasting:block/directrix/redstone/back_unpowered", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/front_lit", - "up": "hexcasting:block/directrix/redstone/down_unpowered_lit", - "west": "hexcasting:block/directrix/redstone/right_unpowered_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_up.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_up.json deleted file mode 100644 index fa0655ca..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_up.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/back_unpowered", - "east": "hexcasting:block/directrix/redstone/up_unpowered_lit", - "north": "hexcasting:block/directrix/redstone/up_unpowered_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/up_unpowered_lit", - "up": "hexcasting:block/directrix/redstone/front_lit", - "west": "hexcasting:block/directrix/redstone/up_unpowered_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_west.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_west.json deleted file mode 100644 index c8f4e80c..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/redstone_directrix_unpowered_lit_west.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube", - "textures": { - "down": "hexcasting:block/directrix/redstone/left_unpowered_lit", - "east": "hexcasting:block/directrix/redstone/back_unpowered", - "north": "hexcasting:block/directrix/redstone/right_unpowered_lit", - "particle": "hexcasting:block/slate", - "south": "hexcasting:block/directrix/redstone/left_unpowered_lit", - "up": "hexcasting:block/directrix/redstone/left_unpowered_lit", - "west": "hexcasting:block/directrix/redstone/front_lit" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper.json deleted file mode 100644 index 621451b7..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper_lantern.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/scroll_paper_lantern.json deleted file mode 100644 index 3c16a211..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/slate_block.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/slate_block.json deleted file mode 100644 index 0afe24d8..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log.json deleted file mode 100644 index 4aa871e9..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log_horizontal.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_log_horizontal.json deleted file mode 100644 index 0925c23c..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood.json deleted file mode 100644 index 8ef17c0d..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood_horizontal.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/block/stripped_edified_wood_horizontal.json deleted file mode 100644 index 57dcfcc5..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/abacus.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/abacus.json deleted file mode 100644 index f6947c43..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/acacia_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/acacia_staff.json deleted file mode 100644 index b1db1c8f..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/acacia_staff.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "overrides": [ - { - "model": "hexcasting:item/acacia_staff", - "predicate": { - "hexcasting:funny_level": 0.0 - } - }, - { - "model": "hexcasting:item/old_staff", - "predicate": { - "hexcasting:funny_level": 1.0 - } - }, - { - "model": "hexcasting:item/bosnia_staff", - "predicate": { - "hexcasting:funny_level": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/staves/acacia" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/akashic_bookshelf.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/akashic_bookshelf.json deleted file mode 100644 index 7c88c3e2..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/akashic_connector.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/akashic_connector.json deleted file mode 100644 index de9a37be..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/akashic_record.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/akashic_record.json deleted file mode 100644 index 1ea5e0ee..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust.json deleted file mode 100644 index 140659df..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust_block.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_dust_block.json deleted file mode 100644 index 8cd53fc3..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_edified_leaves.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_edified_leaves.json deleted file mode 100644 index d6015ea1..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_sconce.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_sconce.json deleted file mode 100644 index bb1657f9..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_tiles.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_tiles.json deleted file mode 100644 index 580c37a9..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/amethyst_tiles.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/amethyst_tiles" -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper.json deleted file mode 100644 index 810d0e68..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper_lantern.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/ancient_scroll_paper_lantern.json deleted file mode 100644 index 39cf0ac2..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/artifact.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/artifact.json deleted file mode 100644 index d7e2a248..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/artifact.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "overrides": [ - { - "model": "hexcasting:item/artifact", - "predicate": { - "hexcasting:has_patterns": -0.01 - } - }, - { - "model": "hexcasting:item/artifact_filled", - "predicate": { - "hexcasting:has_patterns": 0.99 - } - } - ], - "textures": { - "layer0": "hexcasting:item/artifact" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/artifact_filled.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/artifact_filled.json deleted file mode 100644 index 9fdab84a..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/artifact_filled.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/artifact_filled" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/aventurine_edified_leaves.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/aventurine_edified_leaves.json deleted file mode 100644 index 0ae33021..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/battery.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/battery.json deleted file mode 100644 index b446fb0e..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/battery.json +++ /dev/null @@ -1,109 +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 - } - } - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/birch_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/birch_staff.json deleted file mode 100644 index f3705923..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/birch_staff.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "overrides": [ - { - "model": "hexcasting:item/birch_staff", - "predicate": { - "hexcasting:funny_level": 0.0 - } - }, - { - "model": "hexcasting:item/old_staff", - "predicate": { - "hexcasting:funny_level": 1.0 - } - }, - { - "model": "hexcasting:item/bosnia_staff", - "predicate": { - "hexcasting:funny_level": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/staves/birch" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/bosnia_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/bosnia_staff.json deleted file mode 100644 index ef91e958..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/bosnia_staff.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "textures": { - "layer0": "hexcasting:item/staves/bosnia" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/charged_amethyst.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/charged_amethyst.json deleted file mode 100644 index 2d147958..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/citrine_edified_leaves.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/citrine_edified_leaves.json deleted file mode 100644 index f44ca6c9..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/conjured.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/conjured.json deleted file mode 100644 index a0bab4ff..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/conjured.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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/conjured_block.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/conjured_block.json deleted file mode 100644 index a0bab4ff..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/creative_unlocker.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/creative_unlocker.json deleted file mode 100644 index 452b44f6..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/crimson_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/crimson_staff.json deleted file mode 100644 index cc4245dc..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/crimson_staff.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "overrides": [ - { - "model": "hexcasting:item/crimson_staff", - "predicate": { - "hexcasting:funny_level": 0.0 - } - }, - { - "model": "hexcasting:item/old_staff", - "predicate": { - "hexcasting:funny_level": 1.0 - } - }, - { - "model": "hexcasting:item/bosnia_staff", - "predicate": { - "hexcasting:funny_level": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/staves/crimson" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/cypher.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/cypher.json deleted file mode 100644 index 20cd65cd..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/cypher.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "overrides": [ - { - "model": "hexcasting:item/cypher", - "predicate": { - "hexcasting:has_patterns": -0.01 - } - }, - { - "model": "hexcasting:item/cypher_filled", - "predicate": { - "hexcasting:has_patterns": 0.99 - } - } - ], - "textures": { - "layer0": "hexcasting:item/cypher" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/cypher_filled.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/cypher_filled.json deleted file mode 100644 index 9a30752c..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/cypher_filled.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/cypher_filled" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dark_oak_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dark_oak_staff.json deleted file mode 100644 index 5d11497a..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dark_oak_staff.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "overrides": [ - { - "model": "hexcasting:item/dark_oak_staff", - "predicate": { - "hexcasting:funny_level": 0.0 - } - }, - { - "model": "hexcasting:item/old_staff", - "predicate": { - "hexcasting:funny_level": 1.0 - } - }, - { - "model": "hexcasting:item/bosnia_staff", - "predicate": { - "hexcasting:funny_level": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/staves/dark_oak" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/directrix_redstone.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/directrix_redstone.json deleted file mode 100644 index 2a2f0e74..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/directrix_redstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/redstone_directrix_unpowered_dim_north" -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_black.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_black.json deleted file mode 100644 index 2f55b6c2..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_blue.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_blue.json deleted file mode 100644 index add421a9..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_brown.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_brown.json deleted file mode 100644 index 3be301eb..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_cyan.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_cyan.json deleted file mode 100644 index c436f315..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_gray.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_gray.json deleted file mode 100644 index 146f0141..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_green.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_green.json deleted file mode 100644 index 679f1479..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_blue.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_blue.json deleted file mode 100644 index 433877e8..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_gray.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_light_gray.json deleted file mode 100644 index f5625b67..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_lime.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_lime.json deleted file mode 100644 index c1cf2295..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_magenta.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_magenta.json deleted file mode 100644 index 12dcaa82..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_orange.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_orange.json deleted file mode 100644 index 99679c17..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_pink.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_pink.json deleted file mode 100644 index c138e93f..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_purple.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_purple.json deleted file mode 100644 index d31e3b60..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_red.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_red.json deleted file mode 100644 index 1fb8f9dd..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_white.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_white.json deleted file mode 100644 index db4d15eb..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_yellow.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/dye_colorizer_yellow.json deleted file mode 100644 index 594bb0a0..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_button.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_button.json deleted file mode 100644 index e18736c2..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_door.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_door.json deleted file mode 100644 index 5d6fb8d7..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_log.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_log.json deleted file mode 100644 index d3c7aeeb..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_panel.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_panel.json deleted file mode 100644 index 355e2765..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_planks.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_planks.json deleted file mode 100644 index 4ed5d45a..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_pressure_plate.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_pressure_plate.json deleted file mode 100644 index 921f7f5b..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_slab.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_slab.json deleted file mode 100644 index 4772af6e..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_staff.json deleted file mode 100644 index 02877aa7..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_staff.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "overrides": [ - { - "model": "hexcasting:item/edified_staff", - "predicate": { - "hexcasting:funny_level": 0.0 - } - }, - { - "model": "hexcasting:item/old_staff", - "predicate": { - "hexcasting:funny_level": 1.0 - } - }, - { - "model": "hexcasting:item/bosnia_staff", - "predicate": { - "hexcasting:funny_level": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/staves/edified" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_stairs.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_stairs.json deleted file mode 100644 index 90eb4d51..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_tile.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_tile.json deleted file mode 100644 index 05702f6e..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_trapdoor.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_trapdoor.json deleted file mode 100644 index 8c89f1e8..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_wood.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/edified_wood.json deleted file mode 100644 index c9bfee3a..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/empty_directrix.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/empty_directrix.json deleted file mode 100644 index 2edd6c02..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/empty_directrix.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/empty_directrix_dim_z" -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/empty_impetus.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/empty_impetus.json deleted file mode 100644 index fc9b5e81..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/empty_impetus.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/empty_impetus_dim_east" -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/focus.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/focus.json deleted file mode 100644 index 013dc98f..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/focus.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "overrides": [ - { - "model": "hexcasting:item/focus", - "predicate": { - "hexcasting:overlay_layer": 0.0 - } - }, - { - "model": "hexcasting:item/focus_filled", - "predicate": { - "hexcasting:overlay_layer": 1.0 - } - }, - { - "model": "hexcasting:item/focus_sealed", - "predicate": { - "hexcasting:overlay_layer": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/focus_empty" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/focus_filled.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/focus_filled.json deleted file mode 100644 index 3f3fcaa4..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/focus_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/focus_base", - "layer1": "hexcasting:item/focus_overlay" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/focus_sealed.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/focus_sealed.json deleted file mode 100644 index 786de1ea..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/focus_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/focus_base_sealed", - "layer1": "hexcasting:item/focus_overlay_sealed" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/impetus_look.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/impetus_look.json deleted file mode 100644 index 358a31b5..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/impetus_look.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/impetus_look_dim_east" -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/impetus_rightclick.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/impetus_rightclick.json deleted file mode 100644 index 85c8b6c2..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/impetus_rightclick.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/impetus_rightclick_dim_east" -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/impetus_storedplayer.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/impetus_storedplayer.json deleted file mode 100644 index 22391426..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/impetus_storedplayer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hexcasting:block/impetus_storedplayer_dim_east" -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/jeweler_hammer.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/jeweler_hammer.json deleted file mode 100644 index 22447e1f..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/jungle_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/jungle_staff.json deleted file mode 100644 index 43a0711d..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/jungle_staff.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "overrides": [ - { - "model": "hexcasting:item/jungle_staff", - "predicate": { - "hexcasting:funny_level": 0.0 - } - }, - { - "model": "hexcasting:item/old_staff", - "predicate": { - "hexcasting:funny_level": 1.0 - } - }, - { - "model": "hexcasting:item/bosnia_staff", - "predicate": { - "hexcasting:funny_level": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/staves/jungle" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/lens.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/lens.json deleted file mode 100644 index 2fdc8f9c..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/lore_fragment.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/lore_fragment.json deleted file mode 100644 index 2b2f9e66..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/oak_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/oak_staff.json deleted file mode 100644 index 6897ef64..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/oak_staff.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "overrides": [ - { - "model": "hexcasting:item/oak_staff", - "predicate": { - "hexcasting:funny_level": 0.0 - } - }, - { - "model": "hexcasting:item/old_staff", - "predicate": { - "hexcasting:funny_level": 1.0 - } - }, - { - "model": "hexcasting:item/bosnia_staff", - "predicate": { - "hexcasting:funny_level": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/staves/oak" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/old_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/old_staff.json deleted file mode 100644 index 0eb89ae6..00000000 --- a/0.10.3/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/staves/old" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/patchouli_book.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/patchouli_book.json deleted file mode 100644 index a840c0e4..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_0.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_0.json deleted file mode 100644 index db3db02a..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_1.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_1.json deleted file mode 100644 index bdff2d10..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_2.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_2.json deleted file mode 100644 index 9c09bea4..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_3.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_3.json deleted file mode 100644 index 085960c8..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_4.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_large_4.json deleted file mode 100644 index c39357f8..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_0.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_0.json deleted file mode 100644 index cb8b4c09..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_1.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_1.json deleted file mode 100644 index a7f30e81..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_2.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_2.json deleted file mode 100644 index f9f5615c..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_3.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_3.json deleted file mode 100644 index dbfcb528..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_4.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_medium_4.json deleted file mode 100644 index a7501a8e..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_0.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_0.json deleted file mode 100644 index fda398e2..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_1.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_1.json deleted file mode 100644 index df784108..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_2.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_2.json deleted file mode 100644 index f868032c..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_3.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_3.json deleted file mode 100644 index ce4a7999..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_4.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/phial_small_4.json deleted file mode 100644 index bde40839..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_agender.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_agender.json deleted file mode 100644 index 9c68ff47..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aroace.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aroace.json deleted file mode 100644 index eb0fabc5..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aromantic.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_aromantic.json deleted file mode 100644 index 7ea60f31..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_asexual.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_asexual.json deleted file mode 100644 index d40b1f2b..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_bisexual.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_bisexual.json deleted file mode 100644 index e1d4b2d7..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demiboy.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demiboy.json deleted file mode 100644 index cd0fe060..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demigirl.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_demigirl.json deleted file mode 100644 index afda4cab..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_gay.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_gay.json deleted file mode 100644 index 353816c8..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderfluid.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderfluid.json deleted file mode 100644 index fe3641c7..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderqueer.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_genderqueer.json deleted file mode 100644 index 270eeb01..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_intersex.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_intersex.json deleted file mode 100644 index 506facd3..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_lesbian.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_lesbian.json deleted file mode 100644 index 61d110d4..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_nonbinary.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_nonbinary.json deleted file mode 100644 index 0212b47a..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_pansexual.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_pansexual.json deleted file mode 100644 index 706726a3..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_plural.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_plural.json deleted file mode 100644 index e6ecd789..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_transgender.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/pride_colorizer_transgender.json deleted file mode 100644 index 2655a8e5..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll.json deleted file mode 100644 index 5453ed3e..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_large.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_large.json deleted file mode 100644 index 192b9920..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_medium.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_medium.json deleted file mode 100644 index eccfe83c..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_small.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_ancient_small.json deleted file mode 100644 index 5f66417b..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_medium.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_medium.json deleted file mode 100644 index 7752e9be..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper.json deleted file mode 100644 index ee576746..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper_lantern.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_paper_lantern.json deleted file mode 100644 index 8fafbd4a..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_large.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_large.json deleted file mode 100644 index 0042b784..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_medium.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_medium.json deleted file mode 100644 index a219c785..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_small.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_pristine_small.json deleted file mode 100644 index 6405ebef..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_small.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/scroll_small.json deleted file mode 100644 index 583fd0f3..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/slate.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/slate.json deleted file mode 100644 index 146695e2..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/slate_blank.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/slate_blank.json deleted file mode 100644 index df037ffa..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/slate_block.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/slate_block.json deleted file mode 100644 index c40e37f1..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/slate_written.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/slate_written.json deleted file mode 100644 index a17de30b..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spellbook.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spellbook.json deleted file mode 100644 index 1a9c4ba6..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spellbook.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "overrides": [ - { - "model": "hexcasting:item/spellbook", - "predicate": { - "hexcasting:overlay_layer": 0.0 - } - }, - { - "model": "hexcasting:item/spellbook_filled", - "predicate": { - "hexcasting:overlay_layer": 1.0 - } - }, - { - "model": "hexcasting:item/spellbook_sealed", - "predicate": { - "hexcasting:overlay_layer": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/spellbook_empty" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_filled.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_filled.json deleted file mode 100644 index 9527a5ec..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_filled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/spellbook_base", - "layer1": "hexcasting:item/spellbook_overlay" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_sealed.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_sealed.json deleted file mode 100644 index d2df3984..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spellbook_sealed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/spellbook_base_sealed", - "layer1": "hexcasting:item/spellbook_overlay_sealed" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spruce_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spruce_staff.json deleted file mode 100644 index 043989b5..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/spruce_staff.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "overrides": [ - { - "model": "hexcasting:item/spruce_staff", - "predicate": { - "hexcasting:funny_level": 0.0 - } - }, - { - "model": "hexcasting:item/old_staff", - "predicate": { - "hexcasting:funny_level": 1.0 - } - }, - { - "model": "hexcasting:item/bosnia_staff", - "predicate": { - "hexcasting:funny_level": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/staves/spruce" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_log.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_log.json deleted file mode 100644 index 69e44843..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_wood.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/stripped_edified_wood.json deleted file mode 100644 index 45e5b99e..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/sub_sandwich.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/sub_sandwich.json deleted file mode 100644 index c5dd346a..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/trinket.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/trinket.json deleted file mode 100644 index 154e5af3..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/trinket.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "overrides": [ - { - "model": "hexcasting:item/trinket", - "predicate": { - "hexcasting:has_patterns": -0.01 - } - }, - { - "model": "hexcasting:item/trinket_filled", - "predicate": { - "hexcasting:has_patterns": 0.99 - } - } - ], - "textures": { - "layer0": "hexcasting:item/trinket" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/trinket_filled.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/trinket_filled.json deleted file mode 100644 index 84b09d42..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/trinket_filled.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hexcasting:item/trinket_filled" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/uuid_colorizer.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/uuid_colorizer.json deleted file mode 100644 index 0b76dd8f..00000000 --- a/0.10.3/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/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/warped_staff.json b/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/warped_staff.json deleted file mode 100644 index 256f63dd..00000000 --- a/0.10.3/Common/src/generated/resources/assets/hexcasting/models/item/warped_staff.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "minecraft:item/handheld_rod", - "overrides": [ - { - "model": "hexcasting:item/warped_staff", - "predicate": { - "hexcasting:funny_level": 0.0 - } - }, - { - "model": "hexcasting:item/old_staff", - "predicate": { - "hexcasting:funny_level": 1.0 - } - }, - { - "model": "hexcasting:item/bosnia_staff", - "predicate": { - "hexcasting:funny_level": 2.0 - } - } - ], - "textures": { - "layer0": "hexcasting:item/staves/warped" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/aaa_wasteful_cast.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/aaa_wasteful_cast.json deleted file mode 100644 index 3f334657..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/aaa_wasteful_cast.json +++ /dev/null @@ -1,33 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/aab_big_cast.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/aab_big_cast.json deleted file mode 100644 index 8955dfac..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/aab_big_cast.json +++ /dev/null @@ -1,33 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/enlightenment.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/enlightenment.json deleted file mode 100644 index 4488f207..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/enlightenment.json +++ /dev/null @@ -1,37 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore.json deleted file mode 100644 index 9df730eb..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore.json +++ /dev/null @@ -1,35 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment1.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment1.json deleted file mode 100644 index f6a26fb8..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment1.json +++ /dev/null @@ -1,28 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment2.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment2.json deleted file mode 100644 index de4705e9..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/experiment2.json +++ /dev/null @@ -1,28 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/inventory.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/inventory.json deleted file mode 100644 index 52847918..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/inventory.json +++ /dev/null @@ -1,28 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia1.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia1.json deleted file mode 100644 index 6f3cfca2..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia1.json +++ /dev/null @@ -1,28 +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/terabithia1" - } - }, - "requirements": [ - [ - "grant" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia2.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia2.json deleted file mode 100644 index 0b321d75..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia2.json +++ /dev/null @@ -1,28 +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/terabithia2" - } - }, - "requirements": [ - [ - "grant" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia3.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia3.json deleted file mode 100644 index ecf9beaa..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia3.json +++ /dev/null @@ -1,28 +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/terabithia3" - } - }, - "requirements": [ - [ - "grant" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia4.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia4.json deleted file mode 100644 index 0e0ddea4..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia4.json +++ /dev/null @@ -1,28 +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/terabithia4" - } - }, - "requirements": [ - [ - "grant" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia5.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia5.json deleted file mode 100644 index fbcc786a..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/lore/terabithia5.json +++ /dev/null @@ -1,28 +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/terabithia5" - } - }, - "requirements": [ - [ - "grant" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/opened_eyes.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/opened_eyes.json deleted file mode 100644 index fde10466..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/opened_eyes.json +++ /dev/null @@ -1,33 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/root.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/root.json deleted file mode 100644 index 33e7a6de..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/root.json +++ /dev/null @@ -1,35 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/y_u_no_cast_angy.json b/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/y_u_no_cast_angy.json deleted file mode 100644 index 49ebde35..00000000 --- a/0.10.3/Common/src/generated/resources/data/hexcasting/advancements/y_u_no_cast_angy.json +++ /dev/null @@ -1,28 +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" - ] - ] -} \ No newline at end of file diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/README.md b/0.10.3/Common/src/main/java/at/petrak/hexcasting/README.md deleted file mode 100644 index 5eb52a0c..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Hello, intrepid Github reader! - -The "flavor text" words for things in this mod and the internal names are different. (Sorry.) - -- A "Hex" is a `Cast`, cast through a [`CastingHarness`](api/spell/casting/CastingHarness.kt) -- A "Pattern" is a [`HexPattern`](api/spell/math/HexPattern.kt) -- An "Action" is an [`Operator`](api/spell/Action.kt) -- An action that pushes a spell is a [`Spell`](api/spell/SpellAction.kt) - diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/annotations/SoftImplement.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/annotations/SoftImplement.java deleted file mode 100644 index c9094918..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/annotations/SoftImplement.java +++ /dev/null @@ -1,30 +0,0 @@ -package at.petrak.hexcasting.annotations; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -// https://github.com/VazkiiMods/Botania/blob/1.18.x/Common/src/main/java/vazkii/botania/common/annotations/SoftImplement.java -// yoinky sploinky - -/** - * A purely-documentative annotation. - * This annotation is used by developers in xplat code. The annotated method is intended - * to "soft implement" a certain method in a loader specific interface that cannot be - * named in xplat code and thus cannot be checked with @Override. - * In this context, "soft implement" means to implement the method by matching the signature - * with the intended interface method. - * Examples of interfaces that we would use this for is IForgeItem or FabricItem. - *

- * The intent is that we audit such sites every major Minecraft version or so, to ensure - * that they still properly override the intended target. - */ -@Retention(RetentionPolicy.SOURCE) -@Target(ElementType.METHOD) -public @interface SoftImplement { - /** - * What interface we're soft implementing - */ - String value(); -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/HexAPI.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/HexAPI.java deleted file mode 100644 index e22627dc..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/HexAPI.java +++ /dev/null @@ -1,32 +0,0 @@ -package at.petrak.hexcasting.api; - -import com.google.common.base.Suppliers; -import net.minecraft.resources.ResourceLocation; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.util.function.Supplier; - -public interface HexAPI { - String MOD_ID = "hexcasting"; - Logger LOGGER = LogManager.getLogger(MOD_ID); - - Supplier INSTANCE = Suppliers.memoize(() -> { - try { - return (HexAPI) Class.forName("at.petrak.hexcasting.common.impl.HexAPIImpl") - .getDeclaredConstructor().newInstance(); - } catch (ReflectiveOperationException e) { - LogManager.getLogger().warn("Unable to find HexAPIImpl, using a dummy"); - return new HexAPI() { - }; - } - }); - - static HexAPI instance() { - return INSTANCE.get(); - } - - static ResourceLocation modLoc(String s) { - return new ResourceLocation(MOD_ID, s); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/PatternRegistry.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/PatternRegistry.java deleted file mode 100644 index 7e8bae1e..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/PatternRegistry.java +++ /dev/null @@ -1,336 +0,0 @@ -package at.petrak.hexcasting.api; - -import at.petrak.hexcasting.api.spell.Action; -import at.petrak.hexcasting.api.spell.math.EulerPathFinder; -import at.petrak.hexcasting.api.spell.math.HexDir; -import at.petrak.hexcasting.api.spell.math.HexPattern; -import at.petrak.hexcasting.api.spell.mishaps.MishapInvalidPattern; -import com.mojang.datafixers.util.Pair; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.level.saveddata.SavedData; -import org.jetbrains.annotations.Nullable; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentLinkedDeque; -import java.util.concurrent.ConcurrentMap; -import java.util.stream.Collectors; - -public class PatternRegistry { - private static final ConcurrentMap actionLookup = new ConcurrentHashMap<>(); - private static final ConcurrentMap keyLookup = new ConcurrentHashMap<>(); - private static final ConcurrentLinkedDeque specialHandlers = new ConcurrentLinkedDeque<>(); - - // Map signatures to the "preferred" direction they start in and their operator ID. - private static final ConcurrentMap regularPatternLookup = - new ConcurrentHashMap<>(); - - private static final ConcurrentMap perWorldPatternLookup = - new ConcurrentHashMap<>(); - - public static void mapPattern(HexPattern pattern, ResourceLocation id, - Action action) throws RegisterPatternException { - mapPattern(pattern, id, action, false); - } - - /** - * Associate a given angle signature with a SpellOperator. - */ - public static void mapPattern(HexPattern pattern, ResourceLocation id, Action action, - boolean isPerWorld) throws RegisterPatternException { - if (actionLookup.containsKey(id)) { - throw new RegisterPatternException("The operator with id `%s` was already registered to: %s", id, - actionLookup.get(id)); - } - - actionLookup.put(id, action); - keyLookup.put(action, id); - if (isPerWorld) { - perWorldPatternLookup.put(id, new PerWorldEntry(pattern, id)); - } else { - regularPatternLookup.put(pattern.anglesSignature(), new RegularEntry(pattern.getStartDir(), id)); - } - } - - - /** - * Add a special handler, to take an arbitrary pattern and return whatever kind of operator you like. - */ - public static void addSpecialHandler(SpecialHandlerEntry handler) { - specialHandlers.add(handler); - } - - /** - * Add a special handler, to take an arbitrary pattern and return whatever kind of operator you like. - */ - public static void addSpecialHandler(ResourceLocation id, SpecialHandler handler) { - addSpecialHandler(new SpecialHandlerEntry(id, handler)); - } - - /** - * Internal use only. - */ - public static Action matchPattern(HexPattern pat, ServerLevel overworld) throws MishapInvalidPattern { - return matchPatternAndID(pat, overworld).getFirst(); - } - - /** - * Internal use only. - */ - public static Pair matchPatternAndID(HexPattern pat, - ServerLevel overworld) throws MishapInvalidPattern { - // Pipeline: - // patterns are registered here every time the game boots - // when we try to look - for (var handler : specialHandlers) { - var op = handler.handler.handlePattern(pat); - if (op != null) { - return new Pair<>(op, handler.id); - } - } - - // Is it global? - var sig = pat.anglesSignature(); - if (regularPatternLookup.containsKey(sig)) { - var it = regularPatternLookup.get(sig); - if (!actionLookup.containsKey(it.opId)) { - throw new MishapInvalidPattern(); - } - var op = actionLookup.get(it.opId); - return new Pair<>(op, it.opId); - } - - // Look it up in the world? - var ds = overworld.getDataStorage(); - Save perWorldPatterns = - ds.computeIfAbsent(Save::load, () -> Save.create(overworld.getSeed()), TAG_SAVED_DATA); - perWorldPatterns.fillMissingEntries(overworld.getSeed()); - if (perWorldPatterns.lookup.containsKey(sig)) { - var it = perWorldPatterns.lookup.get(sig); - return new Pair<>(actionLookup.get(it.getFirst()), it.getFirst()); - } - - throw new MishapInvalidPattern(); - } - - /** - * Internal use only. - */ - @Nullable - public static Action lookupPatternByShape(HexPattern pat) { - // Pipeline: - // patterns are registered here every time the game boots - // when we try to look - for (var handler : specialHandlers) { - var op = handler.handler.handlePattern(pat); - if (op != null) { - return op; - } - } - - // Is it global? - var sig = pat.anglesSignature(); - if (regularPatternLookup.containsKey(sig)) { - var it = regularPatternLookup.get(sig); - if (!actionLookup.containsKey(it.opId)) { - return null; - } - return actionLookup.get(it.opId); - } - - // Currently, there's no way to look up the name of a Great Spell, as the client is unaware of the correct - // mapping. - // TODO: add code to match any pattern in the shape of a Great Spell to its operator. - - // var ds = overworld.getDataStorage(); - // Save perWorldPatterns = - // ds.computeIfAbsent(Save::load, () -> Save.create(overworld.getSeed()), TAG_SAVED_DATA); - // perWorldPatterns.fillMissingEntries(overworld.getSeed()); - // if (perWorldPatterns.lookup.containsKey(sig)) { - // var it = perWorldPatterns.lookup.get(sig); - // return new Pair<>(actionLookup.get(it.getFirst()), it.getFirst()); - // } - - return null; - } - - /** - * Internal use only. - *

- * Map of signatures to (op id, canonical start dir) - */ - public static Map> getPerWorldPatterns(ServerLevel overworld) { - var ds = overworld.getDataStorage(); - Save perWorldPatterns = - ds.computeIfAbsent(Save::load, () -> Save.create(overworld.getSeed()), TAG_SAVED_DATA); - return perWorldPatterns.lookup; - } - - public static ResourceLocation lookupPattern(Action action) { - return keyLookup.get(action); - } - - /** - * Internal use only. - */ - public static PatternEntry lookupPattern(ResourceLocation opId) { - if (perWorldPatternLookup.containsKey(opId)) { - var it = perWorldPatternLookup.get(opId); - return new PatternEntry(it.prototype, actionLookup.get(it.opId), true); - } - for (var kv : regularPatternLookup.entrySet()) { - var sig = kv.getKey(); - var entry = kv.getValue(); - if (entry.opId.equals(opId)) { - var pattern = HexPattern.fromAngles(sig, entry.preferredStart); - return new PatternEntry(pattern, actionLookup.get(entry.opId), false); - } - } - - throw new IllegalArgumentException("could not find a pattern for " + opId); - } - - /** - * Internal use only. - */ - public static Set getAllPerWorldPatternNames() { - return perWorldPatternLookup.keySet(); - } - - /** - * Special handling of a pattern. Before checking any of the normal angle-signature based patterns, - * a given pattern is run by all of these special handlers patterns. If none of them return non-null, - * then its signature is checked. - *

- * In the base mod, this is used for number patterns and Bookkeeper's Gambit. - */ - @FunctionalInterface - public interface SpecialHandler { - @Nullable Action handlePattern(HexPattern pattern); - } - - public record SpecialHandlerEntry(ResourceLocation id, SpecialHandler handler) { - } - - public static class RegisterPatternException extends Exception { - public RegisterPatternException(String msg, Object... formats) { - super(String.format(msg, formats)); - } - } - - private record RegularEntry(HexDir preferredStart, ResourceLocation opId) { - } - - private record PerWorldEntry(HexPattern prototype, ResourceLocation opId) { - } - - // Fake class we pretend to use internally - public record PatternEntry(HexPattern prototype, Action action, boolean isPerWorld) { - } - - /** - * Maps angle sigs to resource locations and their preferred start dir so we can look them up in the main registry - * Save this on the world in case the random algorithm changes. - */ - public static class Save extends SavedData { - private static final String TAG_OP_ID = "op_id"; - private static final String TAG_START_DIR = "start_dir"; - - // Maps hex signatures to (op ids, canonical start dir) - private Map> lookup; - private boolean missingEntries; - - public Save(Map> lookup, boolean missingEntries) { - this.lookup = lookup; - this.missingEntries = missingEntries; - } - - public Save(Map> lookup) { - this(lookup, missingEntries(lookup)); - } - - private static boolean missingEntries(Map> lookup) { - var allIds = lookup.values().stream().map(Pair::getFirst).collect(Collectors.toSet()); - return perWorldPatternLookup.values().stream().anyMatch(it -> allIds.contains(it.opId)); - } - - private void fillMissingEntries(long seed) { - if (missingEntries) { - var doneAny = false; - - var allIds = lookup.values().stream().map(Pair::getFirst).collect(Collectors.toSet()); - for (var entry : perWorldPatternLookup.values()) { - if (!allIds.contains(entry.opId)) { - scrungle(lookup, entry.prototype, entry.opId, seed); - doneAny = true; - } - } - - if (doneAny) { - setDirty(); - missingEntries = false; - } - } - } - - @Override - public CompoundTag save(CompoundTag tag) { - this.lookup.forEach((sig, rhs) -> { - var entry = new CompoundTag(); - entry.putString(TAG_OP_ID, rhs.getFirst().toString()); - entry.putInt(TAG_START_DIR, rhs.getSecond().ordinal()); - tag.put(sig, entry); - }); - return tag; - } - - private static Save load(CompoundTag tag) { - var map = new HashMap>(); - var allIds = new HashSet(); - for (var sig : tag.getAllKeys()) { - var entry = tag.getCompound(sig); - var opId = ResourceLocation.tryParse(entry.getString(TAG_OP_ID)); - allIds.add(opId); - var startDir = HexDir.values()[entry.getInt(TAG_START_DIR)]; - map.put(sig, new Pair<>(opId, startDir)); - } - var missingEntries = perWorldPatternLookup.values().stream().anyMatch(it -> allIds.contains(it.opId)); - - return new Save(map, missingEntries); - } - - private static void scrungle(Map> lookup, HexPattern prototype, - ResourceLocation opId, long seed) { - var scrungled = EulerPathFinder.findAltDrawing(prototype, seed, it -> { - var sig = it.anglesSignature(); - return !lookup.containsKey(sig) && - !regularPatternLookup.containsKey(sig) - && specialHandlers.stream().noneMatch(handler -> handler.handler.handlePattern(it) != null); - }); - lookup.put(scrungled.anglesSignature(), new Pair<>(opId, scrungled.getStartDir())); - } - - public static Save create(long seed) { - var map = new HashMap>(); - PatternRegistry.perWorldPatternLookup.values().forEach(it -> scrungle(map, it.prototype, it.opId, seed)); - var save = new Save(map); - save.setDirty(); - return save; - } - } - - public static final String TAG_SAVED_DATA = "hex.per-world-patterns"; - - public static String getPatternCountInfo() { - return String.format( - "Loaded %d regular patterns, " + - "%d per-world patterns, and " + - "%d special handlers.", regularPatternLookup.size(), perWorldPatternLookup.size(), - specialHandlers.size()); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADColorizer.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADColorizer.java deleted file mode 100644 index cc11653b..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADColorizer.java +++ /dev/null @@ -1,37 +0,0 @@ -package at.petrak.hexcasting.api.addldata; - -import net.minecraft.util.FastColor; -import net.minecraft.util.Mth; -import net.minecraft.world.phys.Vec3; - -import java.util.UUID; - -public interface ADColorizer { - int color(UUID owner, float time, Vec3 position); - - static int morphBetweenColors(int[] colors, Vec3 gradientDir, float time, Vec3 position) { - float fIdx = Mth.positiveModulo(time + (float) gradientDir.dot(position), 1f) * colors.length; - - int baseIdx = Mth.floor(fIdx); - float tRaw = fIdx - baseIdx; - float t = tRaw < 0.5 ? 4 * tRaw * tRaw * tRaw : (float) (1 - Math.pow(-2 * tRaw + 2, 3) / 2); - int start = colors[baseIdx % colors.length]; - int end = colors[(baseIdx + 1) % colors.length]; - - var r1 = FastColor.ARGB32.red(start); - var g1 = FastColor.ARGB32.green(start); - var b1 = FastColor.ARGB32.blue(start); - var a1 = FastColor.ARGB32.alpha(start); - var r2 = FastColor.ARGB32.red(end); - var g2 = FastColor.ARGB32.green(end); - var b2 = FastColor.ARGB32.blue(end); - var a2 = FastColor.ARGB32.alpha(end); - - var r = Mth.lerp(t, r1, r2); - var g = Mth.lerp(t, g1, g2); - var b = Mth.lerp(t, b1, b2); - var a = Mth.lerp(t, a1, a2); - - return FastColor.ARGB32.color((int) a, (int) r, (int) g, (int) b); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADHexHolder.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADHexHolder.java deleted file mode 100644 index d0da5b78..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADHexHolder.java +++ /dev/null @@ -1,21 +0,0 @@ -package at.petrak.hexcasting.api.addldata; - -import at.petrak.hexcasting.api.spell.iota.Iota; -import net.minecraft.server.level.ServerLevel; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -public interface ADHexHolder { - - boolean canDrawMediaFromInventory(); - - boolean hasHex(); - - @Nullable - List getHex(ServerLevel level); - - void writeHex(List patterns, int media); - - void clearHex(); -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADIotaHolder.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADIotaHolder.java deleted file mode 100644 index 812f4574..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADIotaHolder.java +++ /dev/null @@ -1,32 +0,0 @@ -package at.petrak.hexcasting.api.addldata; - -import at.petrak.hexcasting.api.spell.iota.Iota; -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.server.level.ServerLevel; -import org.jetbrains.annotations.Nullable; - -public interface ADIotaHolder { - @Nullable - CompoundTag readIotaTag(); - - @Nullable - default Iota readIota(ServerLevel world) { - var tag = readIotaTag(); - if (tag != null) { - return HexIotaTypes.deserialize(tag, world); - } else { - return null; - } - } - - @Nullable - default Iota emptyIota() { - return null; - } - - /** - * @return if the writing succeeded/would succeed - */ - boolean writeIota(@Nullable Iota iota, boolean simulate); -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADMediaHolder.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADMediaHolder.java deleted file mode 100644 index 403a0227..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ADMediaHolder.java +++ /dev/null @@ -1,108 +0,0 @@ -package at.petrak.hexcasting.api.addldata; - -import org.jetbrains.annotations.ApiStatus; - -public interface ADMediaHolder { - - /** - * Use {@code withdrawMedia(-1, true)} - * - * @see ADMediaHolder#withdrawMedia(int, boolean) - */ - @ApiStatus.OverrideOnly - int getMedia(); - - /** - * Use {@code withdrawMedia(-1, true) + insertMedia(-1, true)} where possible - * - * @see ADMediaHolder#insertMedia(int, boolean) - * @see ADMediaHolder#withdrawMedia(int, boolean) - */ - @ApiStatus.OverrideOnly - int getMaxMedia(); - - /** - * Use {@code insertMedia(media - withdrawMedia(-1, true), false)} where possible - * - * @see ADMediaHolder#insertMedia(int, boolean) - * @see ADMediaHolder#withdrawMedia(int, boolean) - */ - @ApiStatus.OverrideOnly - void setMedia(int media); - - /** - * Whether this media holder can have media inserted into it. - */ - boolean canRecharge(); - - /** - * Whether this media holder can be extracted from. - */ - boolean canProvide(); - - /** - * The priority for this media holder to be selected when casting a hex. Higher priorities are taken first. - * - * By default, - * * Charged Amethyst has priority 1000 - * * Amethyst Shards have priority 2000 - * * Amethyst Dust has priority 3000 - * * Items which hold media have priority 4000 - */ - int getConsumptionPriority(); - - /** - * Whether the media inside this media holder may be used to construct a battery. - */ - boolean canConstructBattery(); - - /** - * Withdraws media from the holder. Returns the amount of media extracted, which may be less or more than the cost. - * - * Even if {@link ADMediaHolder#canProvide} is false, you can still withdraw media this way. - * - * Withdrawing a negative amount will act as though you attempted to withdraw as much media as the holder contains. - */ - default int withdrawMedia(int cost, boolean simulate) { - var mediaHere = getMedia(); - if (cost < 0) { - cost = mediaHere; - } - if (!simulate) { - var mediaLeft = mediaHere - cost; - setMedia(mediaLeft); - } - return Math.min(cost, mediaHere); - } - - /** - * Inserts media into the holder. Returns the amount of media inserted, which may be less than the requested amount. - * - * Even if {@link ADMediaHolder#canRecharge} is false, you can still insert media this way. - * - * Inserting a negative amount will act as though you attempted to insert exactly as much media as the holder was missing. - */ - default int insertMedia(int amount, boolean simulate) { - var mediaHere = getMedia(); - int emptySpace = getMaxMedia() - mediaHere; - if (emptySpace <= 0) { - return 0; - } - if (amount < 0) { - amount = emptySpace; - } - - int inserting = Math.min(amount, emptySpace); - - if (!simulate) { - var newMedia = mediaHere + inserting; - setMedia(newMedia); - } - return inserting; - } - - int CHARGED_AMETHYST_PRIORITY = 1000; - int AMETHYST_SHARD_PRIORITY = 2000; - int AMETHYST_DUST_PRIORITY = 3000; - int BATTERY_PRIORITY = 4000; -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ItemDelegatingEntityIotaHolder.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ItemDelegatingEntityIotaHolder.java deleted file mode 100644 index d123f0de..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/ItemDelegatingEntityIotaHolder.java +++ /dev/null @@ -1,83 +0,0 @@ -package at.petrak.hexcasting.api.addldata; - -import at.petrak.hexcasting.api.spell.iota.Iota; -import at.petrak.hexcasting.common.entities.EntityWallScroll; -import at.petrak.hexcasting.xplat.IXplatAbstractions; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.decoration.ItemFrame; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.Nullable; - -import java.util.function.Consumer; -import java.util.function.Supplier; - -public abstract class ItemDelegatingEntityIotaHolder implements ADIotaHolder { - private final Supplier stackSupplier; - - private final Consumer save; - - public ItemDelegatingEntityIotaHolder(Supplier stackSupplier, Consumer save) { - this.stackSupplier = stackSupplier; - 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 writeIota(@Nullable Iota datum, boolean simulate) { - var stacc = this.stackSupplier.get(); - var delegate = IXplatAbstractions.INSTANCE.findDataHolder(stacc); - var success = delegate != null && delegate.writeIota(datum, simulate); - if (success && !simulate) { - this.save.accept(stacc); - } - return success; - } - - @Override - public @Nullable Iota readIota(ServerLevel world) { - var delegate = IXplatAbstractions.INSTANCE.findDataHolder(this.stackSupplier.get()); - return delegate == null ? null : delegate.readIota(world); - } - - @Override - public @Nullable Iota emptyIota() { - var delegate = IXplatAbstractions.INSTANCE.findDataHolder(this.stackSupplier.get()); - return delegate == null ? null : delegate.emptyIota(); - } - - public static class ToItemEntity extends ItemDelegatingEntityIotaHolder { - public ToItemEntity(ItemEntity entity) { - super(entity::getItem, stack -> { - // https://github.com/VazkiiMods/Botania/blob/e6d095ff5010074b45408d6cce8ee1e328af3383/Xplat/src/main/java/vazkii/botania/common/helper/EntityHelper.java#L16 - entity.setItem(ItemStack.EMPTY); - entity.setItem(stack); - entity.setUnlimitedLifetime(); - }); - } - } - - public static class ToItemFrame extends ItemDelegatingEntityIotaHolder { - public ToItemFrame(ItemFrame entity) { - super(entity::getItem, entity::setItem); - } - } - - public static class ToWallScroll extends ItemDelegatingEntityIotaHolder { - public ToWallScroll(EntityWallScroll entity) { - super(() -> entity.scroll.copy(), stack -> { - }); - } - - @Override - public boolean writeIota(@Nullable Iota datum, boolean simulate) { - return false; - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/package-info.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/package-info.java deleted file mode 100644 index a11787c8..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/addldata/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * An "Additional Data," or AD, is what I am calling the abstraction over capabilities on Forge and - * cardinal components on Fabric. - *

- * An {@code ADFooBar} in this package will be implemented by a {@code CCFooBar} on Fabric. - * On Forge, there are a set of private records that implement them. - *

- * The point is, this provides an interface for interacting with however whatever platform sticks extra info on stuff. - */ -package at.petrak.hexcasting.api.addldata; diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/FailToCastGreatSpellTrigger.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/FailToCastGreatSpellTrigger.java deleted file mode 100644 index 66179154..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/FailToCastGreatSpellTrigger.java +++ /dev/null @@ -1,40 +0,0 @@ -package at.petrak.hexcasting.api.advancements; - -import com.google.gson.JsonObject; -import net.minecraft.advancements.critereon.*; -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"); - - @Override - public ResourceLocation getId() { - return ID; - } - - @Override - public Instance createInstance(JsonObject json, EntityPredicate.Composite predicate, - DeserializationContext pContext) { - return new Instance(predicate); - } - - public void trigger(ServerPlayer player) { - super.trigger(player, e -> true); - } - - public static class Instance extends AbstractCriterionTriggerInstance { - public Instance(EntityPredicate.Composite pPlayer) { - super(ID, pPlayer); - } - - @Override - public ResourceLocation getCriterion() { - return ID; - } - - public JsonObject serializeToJson(SerializationContext pConditions) { - return new JsonObject(); - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/HexAdvancementTriggers.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/HexAdvancementTriggers.java deleted file mode 100644 index 16af02ab..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/HexAdvancementTriggers.java +++ /dev/null @@ -1,15 +0,0 @@ -package at.petrak.hexcasting.api.advancements; - -import at.petrak.hexcasting.mixin.accessor.CriteriaTriggersAccessor; - -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); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/OvercastTrigger.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/OvercastTrigger.java deleted file mode 100644 index ae972d1c..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/OvercastTrigger.java +++ /dev/null @@ -1,86 +0,0 @@ -package at.petrak.hexcasting.api.advancements; - -import at.petrak.hexcasting.api.mod.HexConfig; -import com.google.gson.JsonObject; -import net.minecraft.advancements.critereon.*; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerPlayer; - -// 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; - } - - @Override - protected Instance createInstance(JsonObject json, EntityPredicate.Composite 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 void trigger(ServerPlayer player, int mediaGenerated) { - super.trigger(player, inst -> { - var mediaToHealth = HexConfig.common().mediaToHealthRate(); - var healthUsed = mediaGenerated / mediaToHealth; - return inst.test(mediaGenerated, healthUsed / player.getMaxHealth(), player.getHealth()); - }); - } - - 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(EntityPredicate.Composite predicate, MinMaxBounds.Ints mediaGenerated, - MinMaxBounds.Doubles healthUsed, MinMaxBounds.Doubles healthLeft) { - super(OvercastTrigger.ID, predicate); - this.mediaGenerated = mediaGenerated; - this.healthUsed = healthUsed; - // 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; - } - - private boolean test(int mediaGeneratedIn, double healthUsedIn, float healthLeftIn) { - return this.mediaGenerated.matches(mediaGeneratedIn) - && this.healthUsed.matches(healthUsedIn) - // DID YOU KNOW ALL THE ENEITYT PREDICATES ARE HARD-CODED AND YOU CANT MAKE NEW ONES - && this.healthLeft.matches(healthLeftIn); - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/SpendMediaTrigger.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/SpendMediaTrigger.java deleted file mode 100644 index 3679711d..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/advancements/SpendMediaTrigger.java +++ /dev/null @@ -1,63 +0,0 @@ -package at.petrak.hexcasting.api.advancements; - -import com.google.gson.JsonObject; -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"; - - @Override - public ResourceLocation getId() { - return ID; - } - - @Override - protected Instance createInstance(JsonObject json, EntityPredicate.Composite predicate, - DeserializationContext pContext) { - return new Instance(predicate, - MinMaxBounds.Ints.fromJson(json.get(TAG_MEDIA_SPENT)), - MinMaxBounds.Ints.fromJson(json.get(TAG_MEDIA_WASTED))); - } - - public void trigger(ServerPlayer player, int mediaSpent, int mediaWasted) { - super.trigger(player, inst -> inst.test(mediaSpent, mediaWasted)); - } - - public static class Instance extends AbstractCriterionTriggerInstance { - protected final MinMaxBounds.Ints mediaSpent; - protected final MinMaxBounds.Ints mediaWasted; - - public Instance(EntityPredicate.Composite predicate, MinMaxBounds.Ints mediaSpent, - MinMaxBounds.Ints mediaWasted) { - super(SpendMediaTrigger.ID, predicate); - this.mediaSpent = mediaSpent; - this.mediaWasted = mediaWasted; - } - - @Override - public ResourceLocation getCriterion() { - return ID; - } - - @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(int mediaSpentIn, int mediaWastedIn) { - return this.mediaSpent.matches(mediaSpentIn) && this.mediaWasted.matches(mediaWastedIn); - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/HexBlockEntity.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/HexBlockEntity.java deleted file mode 100644 index e531ddb1..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/HexBlockEntity.java +++ /dev/null @@ -1,49 +0,0 @@ -package at.petrak.hexcasting.api.block; - -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.protocol.Packet; -import net.minecraft.network.protocol.game.ClientGamePacketListener; -import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; - -public abstract class HexBlockEntity extends BlockEntity { - public HexBlockEntity(BlockEntityType pType, BlockPos pWorldPosition, BlockState pBlockState) { - super(pType, pWorldPosition, pBlockState); - } - - protected abstract void saveModData(CompoundTag tag); - - protected abstract void loadModData(CompoundTag tag); - - @Override - protected void saveAdditional(CompoundTag pTag) { - this.saveModData(pTag); - } - - @Override - public void load(CompoundTag pTag) { - super.load(pTag); - this.loadModData(pTag); - } - - @Override - public CompoundTag getUpdateTag() { - CompoundTag tag = new CompoundTag(); - this.saveModData(tag); - return tag; - } - - @Override - public Packet getUpdatePacket() { - return ClientboundBlockEntityDataPacket.create(this); - } - - public void sync() { - this.setChanged(); - this.level.sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), 3); - } - -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockAbstractImpetus.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockAbstractImpetus.java deleted file mode 100644 index 958e99f7..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockAbstractImpetus.java +++ /dev/null @@ -1,94 +0,0 @@ -package at.petrak.hexcasting.api.block.circle; - -import at.petrak.hexcasting.api.spell.math.HexPattern; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -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.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 org.jetbrains.annotations.Nullable; - -import java.util.EnumSet; - -// Facing dir is the direction it starts searching for slates in to start -public abstract class BlockAbstractImpetus extends BlockCircleComponent implements EntityBlock { - public static final DirectionProperty FACING = BlockStateProperties.FACING; - - public BlockAbstractImpetus(Properties p_49795_) { - super(p_49795_); - this.registerDefaultState( - this.stateDefinition.any().setValue(ENERGIZED, false).setValue(FACING, Direction.NORTH)); - } - - @Override - public boolean canEnterFromDirection(Direction enterDir, Direction normalDir, BlockPos pos, BlockState bs, - Level world) { - return enterDir != bs.getValue(FACING); - } - - @Override - public EnumSet exitDirections(BlockPos pos, BlockState bs, Level world) { - return EnumSet.of(bs.getValue(FACING)); - } - - @Override - public @Nullable HexPattern getPattern(BlockPos pos, BlockState bs, Level world) { - return null; - } - - @Override - public Direction normalDir(BlockPos pos, BlockState bs, Level world, int recursionLeft) { - return normalDirOfOther(pos.relative(bs.getValue(FACING)), world, recursionLeft); - } - - @Override - public float particleHeight(BlockPos pos, BlockState bs, Level world) { - return 0.5f; - } - - @Override - public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRandom) { - if (pLevel.getBlockEntity(pPos) instanceof BlockEntityAbstractImpetus tile && pState.getValue(ENERGIZED)) { - tile.stepCircle(); - } - } - - @Override - public void onRemove(BlockState pState, Level pLevel, BlockPos pPos, BlockState pNewState, boolean pIsMoving) { - if (!pNewState.is(pState.getBlock()) - && pLevel.getBlockEntity(pPos) instanceof BlockEntityAbstractImpetus impetus) { - impetus.stopCasting(); - } - super.onRemove(pState, pLevel, pPos, pNewState, pIsMoving); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - super.createBlockStateDefinition(builder); - builder.add(FACING); - } - - @Override - public BlockState getStateForPlacement(BlockPlaceContext pContext) { - return this.defaultBlockState().setValue(FACING, pContext.getNearestLookingDirection()); - } - - @Override - public BlockState rotate(BlockState pState, Rotation pRot) { - return pState.setValue(FACING, pRot.rotate(pState.getValue(FACING))); - } - - @Override - public BlockState mirror(BlockState pState, Mirror pMirror) { - return pState.rotate(pMirror.getRotation(pState.getValue(FACING))); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockCircleComponent.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockCircleComponent.java deleted file mode 100644 index 9aead246..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockCircleComponent.java +++ /dev/null @@ -1,77 +0,0 @@ -package at.petrak.hexcasting.api.block.circle; - -import at.petrak.hexcasting.api.spell.math.HexPattern; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -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.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.BooleanProperty; -import org.jetbrains.annotations.Nullable; - -import java.util.EnumSet; - -public abstract class BlockCircleComponent extends Block { - public static final BooleanProperty ENERGIZED = BooleanProperty.create("energized"); - - public BlockCircleComponent(Properties p_49795_) { - super(p_49795_); - } - - /** - * Can this component get transferred to from a block coming in from that direction, with the given normal? - */ - abstract public boolean canEnterFromDirection(Direction enterDir, Direction normalDir, BlockPos pos, - BlockState bs, Level world); - - abstract public EnumSet exitDirections(BlockPos pos, BlockState bs, Level world); - - @Nullable - abstract public HexPattern getPattern(BlockPos pos, BlockState bs, Level world); - - /** - * Which direction points "up" or "out" for this block? - * This is used for {@link BlockCircleComponent#canEnterFromDirection(Direction, Direction, BlockPos, BlockState, Level)} - * as well as particles. - */ - public Direction normalDir(BlockPos pos, BlockState bs, Level world) { - return normalDir(pos, bs, world, 16); - } - - abstract public Direction normalDir(BlockPos pos, BlockState bs, Level world, int recursionLeft); - - public static Direction normalDirOfOther(BlockPos other, Level world, int recursionLeft) { - if (recursionLeft <= 0) { - return Direction.UP; - } - - var stateThere = world.getBlockState(other); - if (stateThere.getBlock() instanceof BlockCircleComponent bcc) { - return bcc.normalDir(other, stateThere, world, recursionLeft - 1); - } else { - return Direction.UP; - } - } - - /** - * How many blocks in the {@link BlockCircleComponent#normalDir(BlockPos, BlockState, Level)} from the center - * particles should be spawned in - */ - abstract public float particleHeight(BlockPos pos, BlockState bs, Level world); - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder pBuilder) { - pBuilder.add(ENERGIZED); - } - - @Override - public boolean hasAnalogOutputSignal(BlockState pState) { - return true; - } - - @Override - public int getAnalogOutputSignal(BlockState pState, Level pLevel, BlockPos pPos) { - return pState.getValue(ENERGIZED) ? 15 : 0; - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockEntityAbstractImpetus.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockEntityAbstractImpetus.java deleted file mode 100644 index 58c64637..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/block/circle/BlockEntityAbstractImpetus.java +++ /dev/null @@ -1,578 +0,0 @@ -package at.petrak.hexcasting.api.block.circle; - -import at.petrak.hexcasting.api.block.HexBlockEntity; -import at.petrak.hexcasting.api.misc.FrozenColorizer; -import at.petrak.hexcasting.api.misc.MediaConstants; -import at.petrak.hexcasting.api.mod.HexConfig; -import at.petrak.hexcasting.api.spell.ParticleSpray; -import at.petrak.hexcasting.api.spell.casting.CastingContext; -import at.petrak.hexcasting.api.spell.casting.CastingHarness; -import at.petrak.hexcasting.api.spell.casting.SpellCircleContext; -import at.petrak.hexcasting.api.spell.iota.PatternIota; -import at.petrak.hexcasting.api.utils.MediaHelper; -import at.petrak.hexcasting.common.items.magic.ItemCreativeUnlocker; -import at.petrak.hexcasting.common.lib.HexItems; -import at.petrak.hexcasting.common.lib.HexSounds; -import at.petrak.hexcasting.xplat.IXplatAbstractions; -import com.mojang.datafixers.util.Pair; -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.network.chat.Component; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundSource; -import net.minecraft.tags.BlockTags; -import net.minecraft.util.Mth; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.WorldlyContainer; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.Nullable; - -import java.text.DecimalFormat; -import java.util.*; - -public abstract class BlockEntityAbstractImpetus extends HexBlockEntity implements WorldlyContainer { - public static final String - TAG_ACTIVATOR = "activator", - TAG_COLORIZER = "colorizer", - TAG_NEXT_BLOCK = "next_block", - TAG_TRACKED_BLOCKS = "tracked_blocks", - TAG_FOUND_ALL = "found_all", - TAG_MEDIA = "media", - TAG_LAST_MISHAP = "last_mishap"; - - private static final DecimalFormat DUST_AMOUNT = new DecimalFormat("###,###.##"); - - @Nullable - private UUID activator = null; - @Nullable - private FrozenColorizer colorizer = null; - @Nullable - private BlockPos nextBlock = null; - @Nullable - private List trackedBlocks = null; - private transient Set knownBlocks = null; - private boolean foundAll = false; - @Nullable - private Component lastMishap = null; - - private static final int MAX_CAPACITY = 2_000_000_000; - - private int media = 0; - - public BlockEntityAbstractImpetus(BlockEntityType pType, BlockPos pWorldPosition, BlockState pBlockState) { - super(pType, pWorldPosition, pBlockState); - } - - abstract public boolean activatorAlwaysInRange(); - - public int getMedia() { - return this.media; - } - - public void setMedia(int media) { - this.media = media; - } - - @Nullable - public Component getLastMishap() { - return lastMishap; - } - - public void setLastMishap(@Nullable Component lastMishap) { - this.lastMishap = lastMishap; - } - - public void activateSpellCircle(ServerPlayer activator) { - if (this.nextBlock != null) { - return; - } - this.level.scheduleTick(this.getBlockPos(), this.getBlockState().getBlock(), this.getTickSpeed()); - - this.activator = activator.getUUID(); - this.nextBlock = this.getBlockPos(); - this.trackedBlocks = new ArrayList<>(); - this.knownBlocks = new HashSet<>(); - this.colorizer = IXplatAbstractions.INSTANCE.getColorizer(activator); - - this.level.setBlockAndUpdate(this.getBlockPos(), - this.getBlockState().setValue(BlockAbstractImpetus.ENERGIZED, true)); - this.stepCircle(); - } - - public void applyScryingLensOverlay(List> lines, - BlockState state, BlockPos pos, - Player observer, Level world, - Direction hitFace) { - if (world.getBlockEntity(pos) instanceof BlockEntityAbstractImpetus beai) { - if (beai.getMedia() < 0) { - lines.add(new Pair<>(new ItemStack(HexItems.AMETHYST_DUST), ItemCreativeUnlocker.infiniteMedia(world))); - } else { - var dustCount = (float) beai.getMedia() / (float) MediaConstants.DUST_UNIT; - var dustCmp = Component.translatable("hexcasting.tooltip.media", - DUST_AMOUNT.format(dustCount)); - lines.add(new Pair<>(new ItemStack(HexItems.AMETHYST_DUST), dustCmp)); - } - - var mishap = this.getLastMishap(); - if (mishap != null) { - lines.add(new Pair<>(new ItemStack(Items.MUSIC_DISC_11), mishap)); - } - } - } - - @Override - protected void saveModData(CompoundTag tag) { - if (this.activator != null && this.colorizer != null && this.nextBlock != null && this.trackedBlocks != null) { - tag.putUUID(TAG_ACTIVATOR, this.activator); - tag.put(TAG_NEXT_BLOCK, NbtUtils.writeBlockPos(this.nextBlock)); - tag.put(TAG_COLORIZER, this.colorizer.serializeToNBT()); - tag.putBoolean(TAG_FOUND_ALL, this.foundAll); - - var trackeds = new ListTag(); - for (var tracked : this.trackedBlocks) { - trackeds.add(NbtUtils.writeBlockPos(tracked)); - } - tag.put(TAG_TRACKED_BLOCKS, trackeds); - } - - tag.putInt(TAG_MEDIA, this.media); - if (this.lastMishap != null) { - tag.putString(TAG_LAST_MISHAP, Component.Serializer.toJson(this.lastMishap)); - } - } - - @Override - protected void loadModData(CompoundTag tag) { - if (tag.contains(TAG_ACTIVATOR, Tag.TAG_INT_ARRAY) && - tag.contains(TAG_COLORIZER, Tag.TAG_COMPOUND) && - tag.contains(TAG_NEXT_BLOCK, Tag.TAG_COMPOUND) && - tag.contains(TAG_TRACKED_BLOCKS, Tag.TAG_LIST)) { - this.activator = tag.getUUID(TAG_ACTIVATOR); - this.colorizer = FrozenColorizer.fromNBT(tag.getCompound(TAG_COLORIZER)); - this.nextBlock = NbtUtils.readBlockPos(tag.getCompound(TAG_NEXT_BLOCK)); - this.foundAll = tag.getBoolean(TAG_FOUND_ALL); - var trackeds = tag.getList(TAG_TRACKED_BLOCKS, Tag.TAG_COMPOUND); - this.trackedBlocks = new ArrayList<>(trackeds.size()); - this.knownBlocks = new HashSet<>(); - for (var tracked : trackeds) { - var pos = NbtUtils.readBlockPos((CompoundTag) tracked); - this.trackedBlocks.add(pos); - this.knownBlocks.add(pos); - } - } else { - this.activator = null; - this.colorizer = null; - this.nextBlock = null; - this.foundAll = false; - this.trackedBlocks = new ArrayList<>(); - this.knownBlocks = new HashSet<>(); - } - - this.media = tag.getInt(TAG_MEDIA); - if (tag.contains(TAG_LAST_MISHAP, Tag.TAG_STRING)) { - this.lastMishap = Component.Serializer.fromJson(tag.getString(TAG_LAST_MISHAP)); - } else { - this.lastMishap = null; - } - } - - void stepCircle() { - this.setChanged(); - - // haha which silly idiot would have done something like this - if (this.activator == null || this.colorizer == null || this.nextBlock == null || this.trackedBlocks == null) { - return; - } - - var possibleErrorPos = this.checkEverythingOk(); - if (possibleErrorPos != null) { - this.sfx(possibleErrorPos, false); - this.stopCasting(); - return; - } - - if (this.foundAll) { - this.clearEnergized(); - this.castSpell(); - this.stopCasting(); - return; - } - - // This should only fail if we remove blocks halfway through casting - var bsHere = this.level.getBlockState(this.nextBlock); - if (!this.trackedBlocks.isEmpty() && bsHere.getBlock() instanceof BlockAbstractImpetus) { - // no two impetuses! - this.sfx(this.nextBlock, false); - this.stopCasting(); - return; - } - var blockHere = bsHere.getBlock(); - if (!(blockHere instanceof BlockCircleComponent cc)) { - this.sfx(this.nextBlock, false); - this.stopCasting(); - return; - } - // Awesome we know this block is OK - var thisNormal = cc.normalDir(this.nextBlock, bsHere, this.level); - var possibleExits = cc.exitDirections(this.nextBlock, bsHere, this.level); - BlockPos foundPos = null; - for (var exit : possibleExits) { - var neighborPos = this.nextBlock.relative(exit); - var blockThere = this.level.getBlockState(neighborPos); - // at this point, we haven't actually added nextBlock to trackedBlocks - // so, in the smallest circle case (a 2x2), this will have a size of 3 (with this block being the 4th). - var closedLoop = (this.trackedBlocks.size() >= 3 && this.trackedBlocks.get(0).equals(neighborPos)); - var mightBeOkThere = closedLoop - || this.trackedBlocks.isEmpty() - || !this.trackedBlocks.get(this.trackedBlocks.size() - 1).equals(neighborPos); - if (mightBeOkThere - && blockThere.getBlock() instanceof BlockCircleComponent cc2 - && cc2.canEnterFromDirection(exit.getOpposite(), thisNormal, neighborPos, blockThere, this.level) - // another good use for the implies operator 😩 - && (!blockThere.getValue(BlockCircleComponent.ENERGIZED) || this.knownBlocks.contains(neighborPos))) { - if (foundPos == null) { - foundPos = neighborPos; - this.foundAll |= closedLoop; - } else { - // uh oh, fork in the road - this.sfx(this.nextBlock, false); - this.stopCasting(); - return; - } - } - } - if (foundPos != null) { - // pog - this.trackedBlocks.add(this.nextBlock); - this.knownBlocks.add(this.nextBlock); - this.nextBlock = foundPos; - } else { - // end of the line - this.sfx(this.nextBlock, false); - this.stopCasting(); - return; - } - - var lastPos = this.trackedBlocks.get(this.trackedBlocks.size() - 1); - var justTrackedBlock = this.level.getBlockState(lastPos); - this.level.setBlockAndUpdate(lastPos, justTrackedBlock.setValue(BlockCircleComponent.ENERGIZED, true)); - this.sfx(lastPos, true); - - this.level.scheduleTick(this.getBlockPos(), this.getBlockState().getBlock(), this.getTickSpeed()); - } - - private void castSpell() { - var player = this.getPlayer(); - - if (player instanceof ServerPlayer splayer) { - var bounds = getBounds(this.trackedBlocks); - - var ctx = new CastingContext(splayer, InteractionHand.MAIN_HAND, - new SpellCircleContext(this.getBlockPos(), bounds, this.activatorAlwaysInRange())); - var harness = new CastingHarness(ctx); - - BlockPos erroredPos = null; - for (var tracked : this.trackedBlocks) { - var bs = this.level.getBlockState(tracked); - if (bs.getBlock() instanceof BlockCircleComponent cc) { - var newPattern = cc.getPattern(tracked, bs, this.level); - if (newPattern != null) { - var info = harness.executeIota(new PatternIota(newPattern), splayer.getLevel()); - if (!info.getResolutionType().getSuccess()) { - erroredPos = tracked; - break; - } - } - } - } - - if (erroredPos != null) { - this.sfx(erroredPos, false); - } else { - this.setLastMishap(null); - } - - this.setChanged(); - } - } - - @Contract(pure = true) - private static AABB getBounds(List poses) { - int minX = Integer.MAX_VALUE; - int minY = Integer.MAX_VALUE; - int minZ = Integer.MAX_VALUE; - int maxX = Integer.MIN_VALUE; - int maxY = Integer.MIN_VALUE; - int maxZ = Integer.MIN_VALUE; - - for (var pos : poses) { - if (pos.getX() < minX) { - minX = pos.getX(); - } - if (pos.getY() < minY) { - minY = pos.getY(); - } - if (pos.getZ() < minZ) { - minZ = pos.getZ(); - } - if (pos.getX() > maxX) { - maxX = pos.getX(); - } - if (pos.getY() > maxY) { - maxY = pos.getY(); - } - if (pos.getZ() > maxZ) { - maxZ = pos.getZ(); - } - } - - return new AABB(minX, minY, minZ, maxX + 1, maxY + 1, maxZ + 1); - } - - @Nullable - private BlockPos checkEverythingOk() { - // if they logged out or changed dimensions or something - if (this.getPlayer() == null) { - return this.getBlockPos(); - } - - for (var pos : this.trackedBlocks) { - if (!(this.level.getBlockState(pos).getBlock() instanceof BlockCircleComponent)) { - return pos; - } - } - - if (this.trackedBlocks.size() > HexConfig.server().maxSpellCircleLength()) { - return this.trackedBlocks.get(this.trackedBlocks.size() - 1); - } - - return null; - } - - private void sfx(BlockPos pos, boolean success) { - Vec3 vpos; - Vec3 vecOutDir; - - var bs = this.level.getBlockState(pos); - if (bs.getBlock() instanceof BlockCircleComponent bcc) { - var outDir = bcc.normalDir(pos, bs, this.level); - var height = bcc.particleHeight(pos, bs, this.level); - vecOutDir = new Vec3(outDir.step()); - vpos = Vec3.atCenterOf(pos).add(vecOutDir.scale(height)); - } else { - // we probably are doing this because it's an error and we removed a block - vpos = Vec3.atCenterOf(pos); - vecOutDir = new Vec3(0, 0, 0); - } - - if (this.level instanceof ServerLevel serverLevel) { - var spray = new ParticleSpray(vpos, vecOutDir.scale(success ? 1.0 : 1.5), success ? 0.1 : 0.5, - Mth.PI / (success ? 4 : 2), success ? 30 : 100); - spray.sprayParticles(serverLevel, - success ? this.colorizer : new FrozenColorizer(new ItemStack(HexItems.DYE_COLORIZERS.get(DyeColor.RED)), - this.activator)); - } - - var pitch = 1f; - var sound = HexSounds.SPELL_CIRCLE_FAIL; - if (success) { - sound = HexSounds.SPELL_CIRCLE_FIND_BLOCK; - // This is a good use of my time - var note = this.trackedBlocks.size() - 1; - var semitone = this.semitoneFromScale(note); - pitch = (float) Math.pow(2.0, (semitone - 8) / 12d); - } - level.playSound(null, vpos.x, vpos.y, vpos.z, sound, SoundSource.BLOCKS, 1f, pitch); - } - - protected void clearEnergized() { - if (this.trackedBlocks != null) { - for (var tracked : this.trackedBlocks) { - var bs = this.level.getBlockState(tracked); - if (bs.getBlock() instanceof BlockCircleComponent) { - this.level.setBlockAndUpdate(tracked, bs.setValue(BlockCircleComponent.ENERGIZED, false)); - } - } - } - } - - protected void stopCasting() { - clearEnergized(); - - this.activator = null; - this.nextBlock = null; - this.trackedBlocks = null; - this.foundAll = false; - - // without this check, breaking the block will just immediately replace it with - // the new unenergized state - if (this.level.getBlockState(this.getBlockPos()).getBlock() instanceof BlockAbstractImpetus) { - this.level.setBlockAndUpdate(this.getBlockPos(), - this.getBlockState().setValue(BlockCircleComponent.ENERGIZED, false)); - } - } - - @Nullable - protected Player getPlayer() { - return this.level.getPlayerByUUID(this.activator); - } - - protected int getTickSpeed() { - if (this.trackedBlocks == null) { - return 10; - } else { - return Math.max(2, 10 - trackedBlocks.size() / 3); - } - } - - protected int semitoneFromScale(int note) { - var blockBelow = this.level.getBlockState(this.getBlockPos().below()); - var scale = MAJOR_SCALE; - if (blockBelow.is(Blocks.CRYING_OBSIDIAN)) { - scale = MINOR_SCALE; - } else if (blockBelow.is(BlockTags.DOORS) || blockBelow.is(BlockTags.TRAPDOORS)) { - scale = DORIAN_SCALE; - } else if (blockBelow.is(Blocks.PISTON) || blockBelow.is(Blocks.STICKY_PISTON)) { - scale = MIXOLYDIAN_SCALE; - } else if (blockBelow.is(Blocks.BLUE_WOOL) - || blockBelow.is(Blocks.BLUE_CONCRETE) || blockBelow.is(Blocks.BLUE_CONCRETE_POWDER) - || blockBelow.is(Blocks.BLUE_TERRACOTTA) || blockBelow.is(Blocks.BLUE_GLAZED_TERRACOTTA) - || blockBelow.is(Blocks.BLUE_STAINED_GLASS) || blockBelow.is(Blocks.BLUE_STAINED_GLASS_PANE)) { - scale = BLUES_SCALE; - } else if (blockBelow.is(Blocks.BONE_BLOCK)) { - scale = BAD_TIME; - } else if (blockBelow.is(Blocks.COMPOSTER)) { - scale = SUSSY_BAKA; - } - - note = Mth.clamp(note, 0, scale.length - 1); - return scale[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[] 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}; - private static final int[] BAD_TIME = {0, 0, 12, 7, 6, 5, 3, 0, 3, 5}; - private static final int[] SUSSY_BAKA = {5, 8, 10, 11, 10, 8, 5, 3, 7, 5}; - - private static final int[] SLOTS = {0}; - - @Override - public int[] getSlotsForFace(Direction var1) { - return SLOTS; - } - - @Override - public boolean canPlaceItemThroughFace(int index, ItemStack stack, @Nullable Direction dir) { - return this.canPlaceItem(index, stack); - } - - @Override - public boolean canTakeItemThroughFace(int var1, ItemStack var2, Direction var3) { - return false; - } - - @Override - public int getContainerSize() { - return 1; - } - - @Override - public boolean isEmpty() { - return true; - } - - @Override - public ItemStack getItem(int index) { - return ItemStack.EMPTY.copy(); - } - - @Override - public ItemStack removeItem(int index, int count) { - return ItemStack.EMPTY.copy(); - } - - @Override - public ItemStack removeItemNoUpdate(int index) { - return ItemStack.EMPTY.copy(); - } - - @Override - public void setItem(int index, ItemStack stack) { - insertMedia(stack); - } - - @Override - public boolean stillValid(Player player) { - return false; - } - - @Override - public void clearContent() { - // NO-OP - } - - @Override - public boolean canPlaceItem(int index, ItemStack stack) { - if (remainingMediaCapacity() == 0) { - return false; - } - - if (stack.is(HexItems.CREATIVE_UNLOCKER)) { - return true; - } - - var mediamount = extractMediaFromItem(stack, true); - return mediamount > 0; - } - - public int extractMediaFromItem(ItemStack stack, boolean simulate) { - if (this.media < 0) { - return 0; - } - return MediaHelper.extractMedia(stack, remainingMediaCapacity(), true, simulate); - } - - public void insertMedia(ItemStack stack) { - if (getMedia() >= 0 && !stack.isEmpty() && stack.getItem() == HexItems.CREATIVE_UNLOCKER) { - setInfiniteMedia(); - stack.shrink(1); - } else { - var mediamount = extractMediaFromItem(stack, false); - if (mediamount > 0) { - this.media = Math.min(mediamount + media, MAX_CAPACITY); - this.sync(); - } - } - } - - public void setInfiniteMedia() { - this.media = -1; - this.sync(); - } - - public int remainingMediaCapacity() { - if (this.media < 0) { - return 0; - } - return Math.max(0, MAX_CAPACITY - this.media); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/client/ScryingLensOverlayRegistry.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/client/ScryingLensOverlayRegistry.java deleted file mode 100644 index 88cc62df..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/client/ScryingLensOverlayRegistry.java +++ /dev/null @@ -1,191 +0,0 @@ -package at.petrak.hexcasting.api.client; - -import at.petrak.hexcasting.xplat.IXplatAbstractions; -import com.google.common.collect.Lists; -import com.mojang.datafixers.util.Pair; -import net.minecraft.client.Minecraft; -import net.minecraft.world.level.Level; -import net.minecraft.world.entity.player.Player; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.BeehiveBlock; -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.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; -import org.jetbrains.annotations.NotNull; - -import java.util.List; -import java.util.Map; -import java.util.Vector; -import java.util.WeakHashMap; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -/** - * Use this to make things display when the player looks at things with a Scrying Lens. - *

- * Client-side only. - */ -public final class ScryingLensOverlayRegistry { - private static final ConcurrentMap ID_LOOKUP = new ConcurrentHashMap<>(); - // vectors are thread-safe! - private static final List> PREDICATE_LOOKUP = new Vector<>(); - - // implemented as a map to allow for weak dereferencing - private static final Map> comparatorData = new WeakHashMap<>(); - private static final Map> beeData = new WeakHashMap<>(); - - public static void receiveComparatorAndBeeValue(BlockPos pos, int comparator, int bee) { - Player player = Minecraft.getInstance().player; - if (player != null) { - if (pos == null || comparator == -1) { - comparatorData.remove(player); - } else { - comparatorData.put(player, new Pair<>(pos, comparator)); - } - - if (pos == null || bee == -1) { - beeData.remove(player); - } else { - beeData.put(player, new Pair<>(pos, bee)); - } - } - } - - public static int getComparatorValue(boolean onlyRealComparators) { - var mc = Minecraft.getInstance(); - var player = mc.player; - var level = mc.level; - var result = mc.hitResult; - - if (player == null || level == null || result == null || result.getType() != HitResult.Type.BLOCK) { - return -1; - } - - var comparatorValue = comparatorData.get(player); - if (comparatorValue == null) { - return -1; - } - - var pos = ((BlockHitResult) result).getBlockPos(); - if (!pos.equals(comparatorValue.getFirst())) { - return -1; - } - - var state = mc.level.getBlockState(pos); - if ((onlyRealComparators && !state.is( - Blocks.COMPARATOR)) || (!onlyRealComparators && !state.hasAnalogOutputSignal())) { - return -1; - } - - return comparatorValue.getSecond(); - } - - public static int getBeeValue() { - var mc = Minecraft.getInstance(); - var player = mc.player; - var level = mc.level; - var result = mc.hitResult; - - if (player == null || level == null || result == null || result.getType() != HitResult.Type.BLOCK) { - return -1; - } - - var beeValue = beeData.get(player); - if (beeValue == null) { - return -1; - } - - var pos = ((BlockHitResult) result).getBlockPos(); - if (!pos.equals(beeValue.getFirst())) { - return -1; - } - - var state = mc.level.getBlockState(pos); - if (!(state.getBlock() instanceof BeehiveBlock)) { - return -1; - } - - return beeValue.getSecond(); - } - - /** - * Add the block to display things when the player is holding a lens and looking at it. - * - * @throws IllegalArgumentException if the block is already registered. - */ - public static void addDisplayer(Block block, OverlayBuilder displayer) { - addDisplayer(IXplatAbstractions.INSTANCE.getID(block), displayer); - } - - /** - * Add the block to display things when the player is holding a lens and looking at it. - * - * @throws IllegalArgumentException if the block ID is already registered. - */ - public static void addDisplayer(ResourceLocation blockID, OverlayBuilder displayer) { - if (ID_LOOKUP.containsKey(blockID)) { - throw new IllegalArgumentException("Already have a displayer for " + blockID); - } - ID_LOOKUP.put(blockID, displayer); - } - - /** - * Display things when the player is holding a lens and looking at some block via a predicate. - *

- * These have a lower priority than the standard ID-based displays, so if an ID and predicate both match, - * this won't be displayed. - */ - public static void addPredicateDisplayer(OverlayPredicate predicate, OverlayBuilder displayer) { - PREDICATE_LOOKUP.add(new Pair<>(predicate, displayer)); - } - - /** - * Internal use only. - */ - public static @NotNull List> getLines(BlockState state, BlockPos pos, - Player observer, Level world, - Direction hitFace) { - List> lines = Lists.newArrayList(); - var idLookedup = ID_LOOKUP.get(IXplatAbstractions.INSTANCE.getID(state.getBlock())); - if (idLookedup != null) { - idLookedup.addLines(lines, state, pos, observer, world, hitFace); - } - - for (var pair : PREDICATE_LOOKUP) { - if (pair.getFirst().test(state, pos, observer, world, hitFace)) { - pair.getSecond().addLines(lines, state, pos, observer, world, hitFace); - } - } - - return lines; - } - - /** - * Return the lines displayed by the cursor: an item and some text. - *

- * The ItemStack can be empty; if it is, the text isn't shifted over for it. - */ - @FunctionalInterface - public interface OverlayBuilder { - void addLines(List> lines, - BlockState state, BlockPos pos, Player observer, - Level world, - Direction hitFace); - } - - /** - * Predicate for matching on a block state. - */ - @FunctionalInterface - public interface OverlayPredicate { - boolean test(BlockState state, BlockPos pos, Player observer, - Level world, - Direction hitFace); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/ColorizerItem.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/ColorizerItem.java deleted file mode 100644 index bcfd4dde..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/ColorizerItem.java +++ /dev/null @@ -1,18 +0,0 @@ -package at.petrak.hexcasting.api.item; - -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.ApiStatus; - -import java.util.UUID; - -/** - * Items which can be used as a colorizer can implement this interface. - *

- * On both the Forge and Fabric sides, the registry will be scanned for all items which implement this interface, - * and the appropriate cap/CC will be attached. - */ -@ApiStatus.OverrideOnly -public interface ColorizerItem { - int color(ItemStack stack, UUID owner, float time, Vec3 position); -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/HexHolderItem.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/HexHolderItem.java deleted file mode 100644 index bf276235..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/HexHolderItem.java +++ /dev/null @@ -1,30 +0,0 @@ -package at.petrak.hexcasting.api.item; - -import at.petrak.hexcasting.api.spell.iota.Iota; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Items which can cast a packaged Hex can implement this interface. - *

- * On both the Forge and Fabric sides, the registry will be scanned for all items which implement this interface, - * and the appropriate cap/CC will be attached. - */ -@ApiStatus.OverrideOnly -public interface HexHolderItem extends MediaHolderItem { - - boolean canDrawMediaFromInventory(ItemStack stack); - - boolean hasHex(ItemStack stack); - - @Nullable - List getHex(ItemStack stack, ServerLevel level); - - void writeHex(ItemStack stack, List program, int media); - - void clearHex(ItemStack stack); -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/IotaHolderItem.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/IotaHolderItem.java deleted file mode 100644 index 3aeef986..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/IotaHolderItem.java +++ /dev/null @@ -1,114 +0,0 @@ -package at.petrak.hexcasting.api.item; - -import at.petrak.hexcasting.api.spell.iota.Iota; -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.hex.HexIotaTypes; -import net.minecraft.ChatFormatting; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtUtils; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.Mth; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.TooltipFlag; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Items that store an iota to their tag can implement this interface. - *

- * On both the Forge and Fabric sides, the registry will be scanned for all items which implement this interface, - * 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.spell.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)) { - // 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 HexIotaTypes.deserialize(tag, world); - } else { - return null; - } - } - - /** - * What is this considered to contain when nothing can be read? - *

- * TODO i'm not sure what this exists for - */ - @Nullable - default Iota emptyIota(ItemStack stack) { - return null; - } - - 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 tag = this.readIotaTag(stack); - if (tag == null) { - return HexUtils.ERROR_COLOR; - } - - return HexIotaTypes.getColor(tag); - } - - /** - * Write {@code null} to indicate erasing - */ - boolean canWrite(ItemStack stack, @Nullable Iota iota); - - /** - * Write {@code null} to indicate erasing - */ - void writeDatum(ItemStack stack, @Nullable Iota iota); - - static void appendHoverText(IotaHolderItem self, ItemStack stack, List components, - TooltipFlag flag) { - var datumTag = self.readIotaTag(stack); - if (datumTag != null) { - var cmp = HexIotaTypes.getDisplay(datumTag); - 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)) { - components.add(Component.translatable("hexcasting.spelldata.onitem", - Component.translatable("hexcasting.spelldata.anything").withStyle(ChatFormatting.LIGHT_PURPLE))); - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/MediaHolderItem.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/MediaHolderItem.java deleted file mode 100644 index 43456722..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/item/MediaHolderItem.java +++ /dev/null @@ -1,62 +0,0 @@ -package at.petrak.hexcasting.api.item; - -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.ApiStatus; - -/** - * Items which can store Media can implement this interface. - *

- * On both the Forge and Fabric sides, the registry will be scanned for all items which implement this interface, - * and the appropriate cap/CC will be attached. - */ -@ApiStatus.OverrideOnly -public interface MediaHolderItem { - int getMedia(ItemStack stack); - - int getMaxMedia(ItemStack stack); - - void setMedia(ItemStack stack, int media); - - boolean canProvideMedia(ItemStack stack); - - boolean canRecharge(ItemStack stack); - - default float getMediaFullness(ItemStack stack) { - int max = getMaxMedia(stack); - if (max == 0) { - return 0; - } - return (float) getMedia(stack) / (float) max; - } - - default int withdrawMedia(ItemStack stack, int cost, boolean simulate) { - var mediaHere = getMedia(stack); - if (cost < 0) { - cost = mediaHere; - } - if (!simulate) { - var mediaLeft = mediaHere - cost; - setMedia(stack, mediaLeft); - } - return Math.min(cost, mediaHere); - } - - default int insertMedia(ItemStack stack, int amount, boolean simulate) { - var mediaHere = getMedia(stack); - int emptySpace = getMaxMedia(stack) - mediaHere; - if (emptySpace <= 0) { - return 0; - } - if (amount < 0) { - amount = emptySpace; - } - - int inserting = Math.min(amount, emptySpace); - - if (!simulate) { - var newMedia = mediaHere + inserting; - setMedia(stack, newMedia); - } - return inserting; - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/DamageSourceOvercast.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/DamageSourceOvercast.java deleted file mode 100644 index 9cd89eea..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/DamageSourceOvercast.java +++ /dev/null @@ -1,12 +0,0 @@ -package at.petrak.hexcasting.api.misc; - -import net.minecraft.world.damagesource.DamageSource; - -public class DamageSourceOvercast extends DamageSource { - public DamageSourceOvercast() { - super("hexcasting.overcast"); - this.bypassArmor(); - this.bypassMagic(); - this.setMagic(); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/DamageSourceShameOnYou.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/DamageSourceShameOnYou.java deleted file mode 100644 index 32595b85..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/DamageSourceShameOnYou.java +++ /dev/null @@ -1,12 +0,0 @@ -package at.petrak.hexcasting.api.misc; - -import net.minecraft.world.damagesource.DamageSource; - -public class DamageSourceShameOnYou extends DamageSource { - public DamageSourceShameOnYou() { - super("hexcasting.shame"); - this.bypassArmor(); - this.bypassMagic(); - this.setMagic(); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/DiscoveryHandlers.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/DiscoveryHandlers.java deleted file mode 100644 index f231fe6f..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/DiscoveryHandlers.java +++ /dev/null @@ -1,103 +0,0 @@ -package at.petrak.hexcasting.api.misc; - -import at.petrak.hexcasting.api.addldata.ADMediaHolder; -import at.petrak.hexcasting.api.spell.casting.CastingContext; -import at.petrak.hexcasting.api.spell.casting.CastingHarness; -import com.google.common.collect.Lists; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.BiFunction; -import java.util.function.Function; -import java.util.function.Predicate; - -public class DiscoveryHandlers { - private static final List> HAS_LENS_PREDICATE = new ArrayList<>(); - private static final List>> MEDIA_HOLDER_DISCOVERY = new ArrayList<>(); - private static final List> GRID_SCALE_MODIFIERS = new ArrayList<>(); - private static final List>> ITEM_SLOT_DISCOVERER = new ArrayList<>(); - private static final List>> OPERATIVE_SLOT_DISCOVERER = new ArrayList<>(); - private static final List> DEBUG_DISCOVERER = new ArrayList<>(); - - public static boolean hasLens(Player player) { - for (var predicate : HAS_LENS_PREDICATE) { - if (predicate.test(player)) { - return true; - } - } - return false; - } - - public static List collectMediaHolders(CastingHarness harness) { - List holders = Lists.newArrayList(); - for (var discoverer : MEDIA_HOLDER_DISCOVERY) { - holders.addAll(discoverer.apply(harness)); - } - return holders; - } - - public static float gridScaleModifier(Player player) { - float mod = 1; - for (var modifier : GRID_SCALE_MODIFIERS) { - mod *= modifier.apply(player); - } - return mod; - } - - public static List collectItemSlots(CastingContext ctx) { - List stacks = Lists.newArrayList(); - for (var discoverer : ITEM_SLOT_DISCOVERER) { - stacks.addAll(discoverer.apply(ctx)); - } - return stacks; - } - - public static List collectOperableSlots(CastingContext ctx) { - List stacks = Lists.newArrayList(); - for (var discoverer : OPERATIVE_SLOT_DISCOVERER) { - stacks.addAll(discoverer.apply(ctx)); - } - return stacks; - } - - public static ItemStack findDebugItem(Player player, String type) { - for (var discoverer : DEBUG_DISCOVERER) { - var stack = discoverer.apply(player, type); - if (!stack.isEmpty()) { - return stack; - } - } - return ItemStack.EMPTY; - } - - public static void addLensPredicate(Predicate predicate) { - HAS_LENS_PREDICATE.add(predicate); - } - - public static void addMediaHolderDiscoverer(Function> discoverer) { - MEDIA_HOLDER_DISCOVERY.add(discoverer); - } - - public static void addGridScaleModifier(FunctionToFloat modifier) { - GRID_SCALE_MODIFIERS.add(modifier); - } - - public static void addItemSlotDiscoverer(Function> discoverer) { - ITEM_SLOT_DISCOVERER.add(discoverer); - } - - public static void addOperativeSlotDiscoverer(Function> discoverer) { - OPERATIVE_SLOT_DISCOVERER.add(discoverer); - } - - public static void addDebugItemDiscoverer(BiFunction discoverer) { - DEBUG_DISCOVERER.add(discoverer); - } - - @FunctionalInterface - public interface FunctionToFloat { - float apply(T t); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/EntityDamageSourceOvercast.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/EntityDamageSourceOvercast.java deleted file mode 100644 index 659ccbff..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/EntityDamageSourceOvercast.java +++ /dev/null @@ -1,13 +0,0 @@ -package at.petrak.hexcasting.api.misc; - -import net.minecraft.world.damagesource.EntityDamageSource; -import net.minecraft.world.entity.Entity; - -public class EntityDamageSourceOvercast extends EntityDamageSource { - public EntityDamageSourceOvercast(Entity entity) { - super("hexcasting.overcast", entity); - this.bypassArmor(); - this.bypassMagic(); - this.setMagic(); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/FrozenColorizer.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/FrozenColorizer.java deleted file mode 100644 index ce2603f9..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/FrozenColorizer.java +++ /dev/null @@ -1,78 +0,0 @@ -package at.petrak.hexcasting.api.misc; - -import at.petrak.hexcasting.api.addldata.ADColorizer; -import at.petrak.hexcasting.common.lib.HexItems; -import at.petrak.hexcasting.xplat.IXplatAbstractions; -import net.minecraft.Util; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.util.FastColor; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.Vec3; - -import java.util.UUID; -import java.util.function.Supplier; - -/** - * A colorizer item and the player who owned it at the time of making the color. - */ -public record FrozenColorizer(ItemStack item, UUID owner) { - - private static final int[] MINIMUM_LUMINANCE_COLOR_WHEEL = { - 0xFF200000, 0xFF202000, 0xFF002000, 0xFF002020, 0xFF000020, 0xFF200020 - }; - - public static final String TAG_STACK = "stack"; - public static final String TAG_OWNER = "owner"; - - public static final Supplier DEFAULT = - () -> new FrozenColorizer(new ItemStack(HexItems.DYE_COLORIZERS.get(DyeColor.WHITE)), Util.NIL_UUID); - - public CompoundTag serializeToNBT() { - var out = new CompoundTag(); - out.put(TAG_STACK, this.item.save(new CompoundTag())); - out.putUUID(TAG_OWNER, this.owner); - return out; - } - - public static FrozenColorizer fromNBT(CompoundTag tag) { - if (tag.isEmpty()) { - return FrozenColorizer.DEFAULT.get(); - } - try { - CompoundTag stackTag = tag.getCompound(TAG_STACK); - var stack = ItemStack.of(stackTag); - var uuid = tag.getUUID(TAG_OWNER); - return new FrozenColorizer(stack, uuid); - } catch (NullPointerException exn) { - return FrozenColorizer.DEFAULT.get(); - } - } - - /** - * Gets a color with a minimum luminance applied. - * - * @param time absolute world time in ticks - * @param position a position for the icosahedron, a randomish number for particles. - * @return an AARRGGBB color. - */ - public int getColor(float time, Vec3 position) { - int raw = IXplatAbstractions.INSTANCE.getRawColor(this, time, position); - - var r = FastColor.ARGB32.red(raw); - var g = FastColor.ARGB32.green(raw); - var b = FastColor.ARGB32.blue(raw); - double luminance = (0.2126 * r + 0.7152 * g + 0.0722 * b) / 0xFF; // Standard relative luminance calculation - - if (luminance < 0.05) { - int rawMod = ADColorizer.morphBetweenColors(MINIMUM_LUMINANCE_COLOR_WHEEL, new Vec3(0.1, 0.1, 0.1), - time / 20 / 20, position); - - r += FastColor.ARGB32.red(rawMod); - g += FastColor.ARGB32.green(rawMod); - b += FastColor.ARGB32.blue(rawMod); - } - - return 0xff_000000 | (r << 16) | (g << 8) | b; - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/HexDamageSources.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/HexDamageSources.java deleted file mode 100644 index 8dd06719..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/HexDamageSources.java +++ /dev/null @@ -1,13 +0,0 @@ -package at.petrak.hexcasting.api.misc; - -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.entity.Entity; - -public final class HexDamageSources { - public static final DamageSourceOvercast OVERCAST = new DamageSourceOvercast(); - public static final DamageSourceShameOnYou SHAME = new DamageSourceShameOnYou(); - - public static DamageSource overcastDamageFrom(Entity cause) { - return new EntityDamageSourceOvercast(cause); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/MediaConstants.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/MediaConstants.java deleted file mode 100644 index 322a9c82..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/MediaConstants.java +++ /dev/null @@ -1,7 +0,0 @@ -package at.petrak.hexcasting.api.misc; - -public final class MediaConstants { - public static final int DUST_UNIT = 10000; - public static final int SHARD_UNIT = 5 * DUST_UNIT; - public static final int CRYSTAL_UNIT = 10 * DUST_UNIT; -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/ScrollQuantity.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/ScrollQuantity.java deleted file mode 100644 index bc262ea3..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/ScrollQuantity.java +++ /dev/null @@ -1,24 +0,0 @@ -package at.petrak.hexcasting.api.misc; - -import net.minecraft.resources.ResourceLocation; -import org.jetbrains.annotations.Nullable; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; - -public enum ScrollQuantity { - NONE(null), - FEW(modLoc("inject/scroll_loot_few")), - SOME(modLoc("inject/scroll_loot_some")), - MANY(modLoc("inject/scroll_loot_many")); - - private final ResourceLocation pool; - - ScrollQuantity(ResourceLocation pool) { - this.pool = pool; - } - - @Nullable - public ResourceLocation getPool() { - return pool; - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/TriPredicate.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/TriPredicate.java deleted file mode 100644 index 04f70220..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/misc/TriPredicate.java +++ /dev/null @@ -1,9 +0,0 @@ -package at.petrak.hexcasting.api.misc; - -/** - * Society if java actually had first-class function support - */ -@FunctionalInterface -public interface TriPredicate { - boolean test(A a, B b, C c); -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexApiMessages.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexApiMessages.java deleted file mode 100644 index 44c04c79..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexApiMessages.java +++ /dev/null @@ -1,51 +0,0 @@ -package at.petrak.hexcasting.api.mod; - -// Don't understand what this does so i commented it all out :gigachad: -/* - -import at.petrak.hexcasting.api.misc.FrozenColorizer; -import at.petrak.hexcasting.api.player.Sentinel; -import at.petrak.hexcasting.api.spell.ParticleSpray; -import net.minecraftforge.network.simple.SimpleChannel; -import org.jetbrains.annotations.ApiStatus; - -import java.util.function.BiFunction; -import java.util.function.Function; - -@ApiStatus.Internal -public final class HexApiMessages { - private static SimpleChannel channel; - private static Function sentinelMessage; - private static Function colorizerMessage; - private static BiFunction particleSprayMessage; - - public static void setSyncChannel(SimpleChannel channel, - Function sentinelMessage, - Function colorizerMessage, - BiFunction particleSprayMessage) { - if (HexApiMessages.channel != null) - throw new IllegalStateException("Already set sync channel! If you're not Hex, you shouldn't be calling this."); - HexApiMessages.channel = channel; - HexApiMessages.sentinelMessage = sentinelMessage; - HexApiMessages.colorizerMessage = colorizerMessage; - HexApiMessages.particleSprayMessage = particleSprayMessage; - } - - public static SimpleChannel getChannel() { - return channel; - } - - public static Object getColorizerMessage(FrozenColorizer colorizer) { - return colorizerMessage.apply(colorizer); - } - - public static Object getSentinelMessage(Sentinel colorizer) { - return sentinelMessage.apply(colorizer); - } - - public static Object getParticleSprayMessage(ParticleSpray spray, FrozenColorizer colorizer) { - return particleSprayMessage.apply(spray, colorizer); - } -} - - */ diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexConfig.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexConfig.java deleted file mode 100644 index aec2c2ca..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexConfig.java +++ /dev/null @@ -1,139 +0,0 @@ -package at.petrak.hexcasting.api.mod; - -import at.petrak.hexcasting.api.HexAPI; -import at.petrak.hexcasting.api.misc.MediaConstants; -import at.petrak.hexcasting.api.misc.ScrollQuantity; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.Tier; -import net.minecraft.world.item.Tiers; -import net.minecraft.world.level.Level; - -import java.util.List; - -public class HexConfig { - public interface CommonConfigAccess { - - int dustMediaAmount(); - - int shardMediaAmount(); - - int chargedCrystalMediaAmount(); - - double mediaToHealthRate(); - - int DEFAULT_DUST_MEDIA_AMOUNT = MediaConstants.DUST_UNIT; - int DEFAULT_SHARD_MEDIA_AMOUNT = MediaConstants.SHARD_UNIT; - int DEFAULT_CHARGED_MEDIA_AMOUNT = MediaConstants.CRYSTAL_UNIT; - double DEFAULT_MEDIA_TO_HEALTH_RATE = 2 * MediaConstants.CRYSTAL_UNIT / 20.0; - - } - - public interface ClientConfigAccess { - boolean ctrlTogglesOffStrokeOrder(); - - boolean invertSpellbookScrollDirection(); - - boolean invertAbacusScrollDirection(); - - double gridSnapThreshold(); - - boolean DEFAULT_CTRL_TOGGLES_OFF_STROKE_ORDER = false; - boolean DEFAULT_INVERT_SPELLBOOK_SCROLL = false; - boolean DEFAULT_INVERT_ABACUS_SCROLL = false; - double DEFAULT_GRID_SNAP_THRESHOLD = 0.5; - } - - public interface ServerConfigAccess { - int opBreakHarvestLevelBecauseForgeThoughtItWasAGoodIdeaToImplementHarvestTiersUsingAnHonestToGodTopoSort(); - - int maxRecurseDepth(); - - int maxSpellCircleLength(); - - boolean isActionAllowed(ResourceLocation actionID); - - boolean isActionAllowedInCircles(ResourceLocation actionID); - - boolean doVillagersTakeOffenseAtMindMurder(); - - // fun fact, although dimension keys are a RegistryHolder, they aren't a registry, so i can't do tags - boolean canTeleportInThisDimension(ResourceKey dimension); - - ScrollQuantity scrollsForLootTable(ResourceLocation lootTable); - - int DEFAULT_MAX_RECURSE_DEPTH = 512; - int DEFAULT_MAX_SPELL_CIRCLE_LENGTH = 1024; - int DEFAULT_OP_BREAK_HARVEST_LEVEL = 3; - - boolean DEFAULT_VILLAGERS_DISLIKE_MIND_MURDER = true; - List DEFAULT_FEW_SCROLL_TABLES = List.of("minecraft:chests/jungle_temple", - "minecraft:chests/simple_dungeon", "minecraft:chests/village/village_cartographer"); - List DEFAULT_SOME_SCROLL_TABLES = List.of("minecraft:chests/bastion_treasure", - "minecraft:chests/shipwreck_map"); - List DEFAULT_MANY_SCROLL_TABLES = List.of("minecraft:chests/stronghold_library"); - - List DEFAULT_DIM_TP_DENYLIST = List.of("twilightforest:twilight_forest"); - - default Tier opBreakHarvestLevel() { - return switch (this.opBreakHarvestLevelBecauseForgeThoughtItWasAGoodIdeaToImplementHarvestTiersUsingAnHonestToGodTopoSort()) { - case 0 -> Tiers.WOOD; - case 1 -> Tiers.STONE; - case 2 -> Tiers.IRON; - case 3 -> Tiers.DIAMOND; - case 4 -> Tiers.NETHERITE; - default -> throw new RuntimeException("please only return a value in 0<=x<=4"); - }; - } - } - - // Simple extensions for resource location configs - public static boolean anyMatch(List keys, ResourceLocation key) { - return keys.stream().map(ResourceLocation::new).anyMatch(key::equals); - } - - public static boolean noneMatch(List keys, ResourceLocation key) { - return keys.stream().map(ResourceLocation::new).noneMatch(key::equals); - } - - // oh man this is aesthetically pleasing - private static CommonConfigAccess common = null; - private static ClientConfigAccess client = null; - private static ServerConfigAccess server = null; - - public static CommonConfigAccess common() { - return common; - } - - public static ClientConfigAccess client() { - return client; - } - - public static ServerConfigAccess server() { - return server; - } - - public static void setCommon(CommonConfigAccess access) { - if (common != null) { - HexAPI.LOGGER.warn("CommonConfigAccess was replaced! Old {} New {}", - common.getClass().getName(), access.getClass().getName()); - } - common = access; - } - - public static void setClient(ClientConfigAccess access) { - if (client != null) { - HexAPI.LOGGER.warn("ClientConfigAccess was replaced! Old {} New {}", - client.getClass().getName(), access.getClass().getName()); - } - client = access; - } - - public static void setServer(ServerConfigAccess access) { - if (server != null) { - HexAPI.LOGGER.warn("ServerConfigAccess was replaced! Old {} New {}", - server.getClass().getName(), access.getClass().getName()); - } - server = access; - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexStatistics.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexStatistics.java deleted file mode 100644 index 5262980d..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexStatistics.java +++ /dev/null @@ -1,29 +0,0 @@ -package at.petrak.hexcasting.api.mod; - -import at.petrak.hexcasting.api.misc.MediaConstants; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.stats.StatFormatter; -import net.minecraft.stats.Stats; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; - -public class HexStatistics { - public static final ResourceLocation MEDIA_USED = makeCustomStat("media_used", - mediamount -> StatFormatter.DEFAULT.format(mediamount / MediaConstants.DUST_UNIT)); - public static final ResourceLocation MEDIA_OVERCAST = makeCustomStat("media_overcast", - mediamount -> StatFormatter.DEFAULT.format(mediamount / MediaConstants.DUST_UNIT)); - public static final ResourceLocation PATTERNS_DRAWN = makeCustomStat("patterns_drawn", StatFormatter.DEFAULT); - public static final ResourceLocation SPELLS_CAST = makeCustomStat("spells_cast", StatFormatter.DEFAULT); - - public static void register() { - // wake up java - } - - private static ResourceLocation makeCustomStat(String key, StatFormatter formatter) { - ResourceLocation resourcelocation = modLoc(key); - Registry.register(Registry.CUSTOM_STAT, key, resourcelocation); - Stats.CUSTOM.get(resourcelocation, formatter); - return resourcelocation; - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java deleted file mode 100644 index 41df2c90..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java +++ /dev/null @@ -1,46 +0,0 @@ -package at.petrak.hexcasting.api.mod; - -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.TagKey; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; - -public class HexTags { - public static final class Items { - public static final TagKey EDIFIED_LOGS = create("edified_logs"); - public static final TagKey EDIFIED_PLANKS = create("edified_planks"); - public static final TagKey STAVES = create("staves"); - public static final TagKey PHIAL_BASE = create("phial_base"); - public static final TagKey GRANTS_ROOT_ADVANCEMENT = create("grants_root_advancement"); - - public static TagKey create(String name) { - return create(modLoc(name)); - } - - public static TagKey create(ResourceLocation id) { - return TagKey.create(Registry.ITEM_REGISTRY, id); - } - } - - public static final class Blocks { - public static final TagKey EDIFIED_LOGS = create("edified_logs"); - public static final TagKey EDIFIED_PLANKS = create("edified_planks"); - - public static TagKey create(String name) { - return TagKey.create(Registry.BLOCK_REGISTRY, modLoc(name)); - } - } - - public static final class Entities { - public static final TagKey> STICKY_TELEPORTERS = create("sticky_teleporters"); - public static final TagKey> CANNOT_TELEPORT = create("cannot_teleport"); - - public static TagKey> create(String name) { - return TagKey.create(Registry.ENTITY_TYPE_REGISTRY, modLoc(name)); - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/player/FlightAbility.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/player/FlightAbility.java deleted file mode 100644 index 55828a7e..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/player/FlightAbility.java +++ /dev/null @@ -1,11 +0,0 @@ -package at.petrak.hexcasting.api.player; - -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.level.Level; -import net.minecraft.world.phys.Vec3; - -public record FlightAbility(boolean allowed, int timeLeft, ResourceKey dimension, Vec3 origin, double radius) { - public static FlightAbility deny() { - return new FlightAbility(false, 0, Level.OVERWORLD, Vec3.ZERO, 0); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/player/Sentinel.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/player/Sentinel.java deleted file mode 100644 index f7cb6274..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/player/Sentinel.java +++ /dev/null @@ -1,14 +0,0 @@ -package at.petrak.hexcasting.api.player; - -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.level.Level; -import net.minecraft.world.phys.Vec3; - -public record Sentinel(boolean hasSentinel, boolean extendsRange, Vec3 position, - ResourceKey dimension) { - public static Sentinel none() { - return new Sentinel(false, false, Vec3.ZERO, Level.OVERWORLD); - } - - -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/Action.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/Action.kt deleted file mode 100644 index 8f1095be..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/Action.kt +++ /dev/null @@ -1,93 +0,0 @@ -package at.petrak.hexcasting.api.spell - -import at.petrak.hexcasting.api.PatternRegistry -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.casting.eval.SpellContinuation -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import at.petrak.hexcasting.api.utils.lightPurple -import net.minecraft.network.chat.Component -import net.minecraft.resources.ResourceLocation -import net.minecraft.world.phys.Vec3 -import java.text.DecimalFormat - -/** - * Manipulates the stack in some way, usually by popping some number of values off the stack - * and pushing one new value. - * For a more "traditional" pop arguments, push return experience, see [ConstMediaAction]. - * - * Implementors MUST NOT mutate the context. - */ -interface Action { - /** - * Operate on the stack. Return the new stack and any side effects of the cast. - * - * Although this is passed a [MutableList], this is only for the convenience of implementors. - * It is a clone of the stack and modifying it does nothing. You must return the new stack - * with the [OperationResult]. - * - * A particle effect at the cast site and various messages and advancements are done automagically. - */ - fun operate( - continuation: SpellContinuation, - stack: MutableList, - ravenmind: Iota?, - ctx: CastingContext - ): OperationResult - - /** - * Do you need to be enlightened to use this operator? (i.e. is this operator a Great Pattern) - */ - val isGreat: Boolean get() = false - - /** - * Should this Great Pattern process and have side effects, even if its user isn't enlightened? - * - * The pattern itself may modify its effects based on whether the user is enlightened or not, regardless of what this value is. - */ - val alwaysProcessGreatSpell: Boolean get() = this is SpellAction - - /** - * Can this Great Pattern give you Blind Diversion? - */ - val causesBlindDiversion: Boolean get() = this is SpellAction - - /** - * The component for displaying this pattern's name. Override for dynamic patterns. - */ - val displayName: Component get() = "hexcasting.spell.${PatternRegistry.lookupPattern(this)}".asTranslatedComponent.lightPurple - - companion object { - // I see why vzakii did this: you can't raycast out to infinity! - const val MAX_DISTANCE: Double = 32.0 - const val MAX_DISTANCE_FROM_SENTINEL: Double = 16.0 - - @JvmStatic - fun raycastEnd(origin: Vec3, look: Vec3): Vec3 = - origin.add(look.normalize().scale(MAX_DISTANCE)) - - @JvmStatic - fun makeConstantOp(x: Iota): Action = object : ConstMediaAction { - override val argc: Int - get() = 0 - - override fun execute(args: List, ctx: CastingContext): List = - listOf(x) - } - - private val DOUBLE_FORMATTER = DecimalFormat("####.####") - - @JvmStatic - fun makeConstantOp(x: Double, key: ResourceLocation): Action = object : ConstMediaAction { - override val argc: Int - get() = 0 - - override fun execute(args: List, ctx: CastingContext): List = - x.asActionResult - - override val displayName: Component - get() = "hexcasting.spell.$key".asTranslatedComponent(DOUBLE_FORMATTER.format(x)).lightPurple - } - } -} - diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/ConstMediaAction.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/ConstMediaAction.kt deleted file mode 100644 index 1f721bc1..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/ConstMediaAction.kt +++ /dev/null @@ -1,36 +0,0 @@ -package at.petrak.hexcasting.api.spell - -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.casting.eval.SpellContinuation -import at.petrak.hexcasting.api.spell.casting.sideeffects.OperatorSideEffect -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.mishaps.MishapNotEnoughArgs - -/** - * A SimpleOperator that always costs the same amount of media. - */ -interface ConstMediaAction : Action { - val argc: Int - val mediaCost: Int - get() = 0 - - fun execute(args: List, ctx: CastingContext): List - - override fun operate( - continuation: SpellContinuation, - stack: MutableList, - ravenmind: Iota?, - ctx: CastingContext - ): OperationResult { - if (this.argc > stack.size) - throw MishapNotEnoughArgs(this.argc, stack.size) - val args = stack.takeLast(this.argc) - repeat(this.argc) { stack.removeLast() } - val newData = this.execute(args, ctx) - stack.addAll(newData) - - val sideEffects = mutableListOf(OperatorSideEffect.ConsumeMedia(this.mediaCost)) - - return OperationResult(continuation, stack, ravenmind, sideEffects) - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/OperationResult.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/OperationResult.kt deleted file mode 100644 index 364a4fa3..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/OperationResult.kt +++ /dev/null @@ -1,15 +0,0 @@ -package at.petrak.hexcasting.api.spell - -import at.petrak.hexcasting.api.spell.casting.eval.SpellContinuation -import at.petrak.hexcasting.api.spell.casting.sideeffects.OperatorSideEffect -import at.petrak.hexcasting.api.spell.iota.Iota - -/** - * What happens when an operator is through? - */ -data class OperationResult( - val newContinuation: SpellContinuation, - val newStack: List, - val newRavenmind: Iota?, - val sideEffects: List -) diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/OperatorUtils.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/OperatorUtils.kt deleted file mode 100644 index 6389208f..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/OperatorUtils.kt +++ /dev/null @@ -1,312 +0,0 @@ -@file:JvmName("OperatorUtils") - -package at.petrak.hexcasting.api.spell - -import at.petrak.hexcasting.api.spell.iota.* -import at.petrak.hexcasting.api.spell.math.HexPattern -import at.petrak.hexcasting.api.spell.mishaps.MishapInvalidIota -import at.petrak.hexcasting.api.spell.mishaps.MishapNotEnoughArgs -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import com.mojang.datafixers.util.Either -import com.mojang.math.Vector3f -import net.minecraft.core.BlockPos -import net.minecraft.server.level.ServerPlayer -import net.minecraft.world.entity.Entity -import net.minecraft.world.entity.LivingEntity -import net.minecraft.world.entity.decoration.ArmorStand -import net.minecraft.world.entity.item.ItemEntity -import net.minecraft.world.entity.npc.Villager -import net.minecraft.world.phys.Vec3 -import java.util.function.DoubleUnaryOperator -import kotlin.math.abs -import kotlin.math.roundToInt -import kotlin.math.roundToLong - -fun List.getDouble(idx: Int, argc: Int = 0): Double { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - return x.double - } else { - // TODO: I'm not sure this calculation is correct - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "double") - } -} - -fun List.getEntity(idx: Int, argc: Int = 0): Entity { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is EntityIota) { - return x.entity - } else { - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity") - } -} - -fun List.getList(idx: Int, argc: Int = 0): SpellList { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is ListIota) { - return x.list - } else { - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "list") - } -} - -fun List.getPattern(idx: Int, argc: Int = 0): HexPattern { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is PatternIota) { - return x.pattern - } else { - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "pattern") - } -} - -fun List.getVec3(idx: Int, argc: Int = 0): Vec3 { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is Vec3Iota) { - return x.vec3 - } else { - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "vector") - } -} - -fun List.getBool(idx: Int, argc: Int = 0): Boolean { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is BooleanIota) { - return x.bool - } else { - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "boolean") - } -} - -// Helpers - -fun List.getItemEntity(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 - 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 { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is EntityIota) { - val e = x.entity - if (e is ServerPlayer) - return e - } - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity.player") -} - -fun List.getVillager(idx: Int, argc: Int = 0): Villager { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is EntityIota) { - val e = x.entity - if (e is Villager) - return e - } - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity.villager") -} - -fun List.getLivingEntityButNotArmorStand(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 - if (e is LivingEntity && e !is ArmorStand) - return e - } - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "entity.living") -} - -fun List.getPositiveDouble(idx: Int, argc: Int = 0): Double { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - if (0 <= double) { - return double - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "double.positive") -} - -fun List.getPositiveDoubleUnder(idx: Int, max: Double, argc: Int = 0): Double { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - if (0.0 <= double && double < max) { - return double - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "double.positive.less", max) -} - -fun List.getPositiveDoubleUnderInclusive(idx: Int, max: Double, argc: Int = 0): Double { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - if (double in 0.0..max) { - return double - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "double.positive.less.equal", max) -} - -fun List.getDoubleBetween(idx: Int, min: Double, max: Double, argc: Int = 0): Double { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - if (double in min..max) { - return double - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "double.between", min, max) -} - -fun List.getInt(idx: Int, argc: Int = 0): Int { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - val rounded = double.roundToInt() - if (abs(double - rounded) <= DoubleIota.TOLERANCE) { - return rounded - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "int") -} - -fun List.getLong(idx: Int, argc: Int = 0): Long { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - val rounded = double.roundToLong() - if (abs(double - rounded) <= DoubleIota.TOLERANCE) { - return rounded - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "int") // shh we're lying -} - -fun List.getPositiveInt(idx: Int, argc: Int = 0): Int { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - val rounded = double.roundToInt() - if (abs(double - rounded) <= DoubleIota.TOLERANCE && rounded >= 0) { - return rounded - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "int.positive") -} - -fun List.getPositiveIntUnder(idx: Int, max: Int, argc: Int = 0): Int { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - val rounded = double.roundToInt() - if (abs(double - rounded) <= DoubleIota.TOLERANCE && rounded in 0 until max) { - return rounded - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "int.positive.less", max) -} - -fun List.getPositiveIntUnderInclusive(idx: Int, max: Int, argc: Int = 0): Int { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - val rounded = double.roundToInt() - if (abs(double - rounded) <= DoubleIota.TOLERANCE && rounded in 0 .. max) { - return rounded - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "int.positive.less.equal", max) -} - -fun List.getIntBetween(idx: Int, min: Int, max: Int, argc: Int = 0): Int { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is DoubleIota) { - val double = x.double - val rounded = double.roundToInt() - if (abs(double - rounded) <= DoubleIota.TOLERANCE && rounded in min..max) { - return rounded - } - } - throw MishapInvalidIota.of(x, if (argc == 0) idx else argc - (idx + 1), "double.between", min, max) -} - -fun List.getBlockPos(idx: Int, argc: Int = 0): BlockPos { - val x = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (x is Vec3Iota) { - return BlockPos(x.vec3) - } - - throw MishapInvalidIota.ofType(x, if (argc == 0) idx else argc - (idx + 1), "vector") -} - -fun List.getNumOrVec(idx: Int, argc: Int = 0): Either { - val datum = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - return when (datum) { - is DoubleIota -> Either.left(datum.double) - is Vec3Iota -> Either.right(datum.vec3) - else -> throw MishapInvalidIota.of( - datum, - if (argc == 0) idx else argc - (idx + 1), - "numvec" - ) - } -} - -fun List.getLongOrList(idx: Int, argc: Int = 0): Either { - val datum = this.getOrElse(idx) { throw MishapNotEnoughArgs(idx + 1, this.size) } - if (datum is DoubleIota) { - val double = datum.double - val rounded = double.roundToLong() - if (abs(double - rounded) <= DoubleIota.TOLERANCE) { - return Either.left(rounded) - } - } else if (datum is ListIota) { - return Either.right(datum.list) - } - throw MishapInvalidIota.of( - datum, - if (argc == 0) idx else argc - (idx + 1), - "numlist" - ) -} - -fun evaluatable(datum: Iota, reverseIdx: Int): Either = - when (datum) { - is PatternIota -> Either.left(datum.pattern) - is ListIota -> Either.right(datum.list) - else -> throw MishapInvalidIota( - datum, - reverseIdx, - "hexcasting.mishap.invalid_value.evaluatable".asTranslatedComponent - ) - } - -fun Iota?.orNull() = this ?: NullIota() - -// TODO do we make this work on lists -// there should probably be some way to abstract function application over lists, vecs, and numbers, -// and i bet it's fucking monads -fun aplKinnie(operatee: Either, fn: DoubleUnaryOperator): Iota = - operatee.map( - { num -> DoubleIota(fn.applyAsDouble(num)) }, - { vec -> Vec3Iota(Vec3(fn.applyAsDouble(vec.x), fn.applyAsDouble(vec.y), fn.applyAsDouble(vec.z))) } - ) - -inline val Boolean.asActionResult get() = listOf(BooleanIota(this)) -inline val Double.asActionResult get() = listOf(DoubleIota(this)) -inline val Number.asActionResult get() = listOf(DoubleIota(this.toDouble())) - -inline val SpellList.asActionResult get() = listOf(ListIota(this)) -inline val List.asActionResult get() = listOf(ListIota(this)) - -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 HexPattern.asActionResult get() = listOf(PatternIota(this)) diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/ParticleSpray.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/ParticleSpray.kt deleted file mode 100644 index 617ee5c0..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/ParticleSpray.kt +++ /dev/null @@ -1,25 +0,0 @@ -package at.petrak.hexcasting.api.spell - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.common.network.MsgCastParticleAck -import at.petrak.hexcasting.xplat.IXplatAbstractions -import net.minecraft.server.level.ServerLevel -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 - fun burst(pos: Vec3, size: Double, count: Int = 20): ParticleSpray { - return ParticleSpray(pos, Vec3(size, 0.0, 0.0), 0.0, 3.14, count) - } - - @JvmStatic - fun cloud(pos: Vec3, size: Double, count: Int = 20): ParticleSpray { - return ParticleSpray(pos, Vec3(0.0, 0.001, 0.0), size, 0.0, count) - } - } - - fun sprayParticles(world: ServerLevel, color: FrozenColorizer) { - IXplatAbstractions.INSTANCE.sendPacketNear(this.pos, 128.0, world, MsgCastParticleAck(this, color)) - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/RenderedSpell.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/RenderedSpell.kt deleted file mode 100644 index 5929aa71..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/RenderedSpell.kt +++ /dev/null @@ -1,7 +0,0 @@ -package at.petrak.hexcasting.api.spell - -import at.petrak.hexcasting.api.spell.casting.CastingContext - -interface RenderedSpell { - fun cast(ctx: CastingContext) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellAction.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellAction.kt deleted file mode 100644 index 856c2b09..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellAction.kt +++ /dev/null @@ -1,55 +0,0 @@ -package at.petrak.hexcasting.api.spell - -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.casting.eval.SpellContinuation -import at.petrak.hexcasting.api.spell.casting.sideeffects.OperatorSideEffect -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.mishaps.MishapNotEnoughArgs - -interface SpellAction : Action { - val argc: Int - - fun hasCastingSound(ctx: CastingContext): Boolean = true - - fun awardsCastingStat(ctx: CastingContext): Boolean = true - - fun execute( - args: List, - ctx: CastingContext - ): Triple>? - - override fun operate( - continuation: SpellContinuation, - stack: MutableList, - ravenmind: Iota?, - ctx: CastingContext - ): OperationResult { - if (this.argc > stack.size) - throw MishapNotEnoughArgs(this.argc, stack.size) - val args = stack.takeLast(this.argc) - for (_i in 0 until this.argc) stack.removeLast() - val executeResult = this.execute(args, ctx) ?: return OperationResult(continuation, stack, ravenmind, listOf()) - val (spell, media, particles) = executeResult - - val sideEffects = mutableListOf() - - if (media > 0) - sideEffects.add(OperatorSideEffect.ConsumeMedia(media)) - - // Don't have an effect if the caster isn't enlightened, even if processing other side effects - if (!isGreat || ctx.isCasterEnlightened) - sideEffects.add( - OperatorSideEffect.AttemptSpell( - spell, - this.hasCastingSound(ctx), - this.awardsCastingStat(ctx) - ) - ) - - for (spray in particles) - sideEffects.add(OperatorSideEffect.Particles(spray)) - - return OperationResult(continuation, stack, ravenmind, sideEffects) - } - -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellList.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellList.kt deleted file mode 100644 index c1472008..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellList.kt +++ /dev/null @@ -1,93 +0,0 @@ -package at.petrak.hexcasting.api.spell - -import at.petrak.hexcasting.api.spell.iota.Iota - -/** - * Restricted interface for functional lists. - * - * ...Surely this won't have any performance implications. - */ -sealed class SpellList : Iterable { - - abstract val nonEmpty: Boolean - abstract val car: Iota - abstract val cdr: SpellList - - class LPair(override val car: Iota, override val cdr: SpellList) : SpellList() { - override val nonEmpty = true - } - - class LList(val idx: Int, val list: List) : SpellList() { - override val nonEmpty: Boolean - get() = idx < list.size - override val car: Iota - get() = list[idx] - override val cdr: SpellList - get() = LList(idx + 1, list) - - constructor(list: List) : this(0, list) - } - - fun modifyAt(startIdx: Int, modify: (SpellList) -> SpellList): SpellList { - val stack = mutableListOf() - val ptr = iterator() - var idx = startIdx - if (idx < 0) { - return this - } - while (idx > 0) { - if (!ptr.hasNext()) { - return this - } - idx-- - stack.add(ptr.next()) - } - var value = modify(ptr.list) - for (datum in stack.asReversed()) { - value = LPair(datum, value) - } - return value - } - - fun getAt(startIdx: Int): Iota { - var ptr = this - var idx = startIdx - if (idx < 0) { - throw ArrayIndexOutOfBoundsException() - } - while (idx > 0) { - when (ptr) { - is LPair -> ptr = ptr.cdr - is LList -> return ptr.list[ptr.idx + idx] - } - idx-- - } - return ptr.car - } - - override fun toString() = toList().toString() - - override fun iterator() = SpellListIterator(this) - - /** - * Note this is O(n), probably. - */ - fun size(): Int { - var size = 0 - var ptr = this - while (ptr.nonEmpty) { - ptr = ptr.cdr - size++ - } - return size - } - - class SpellListIterator(var list: SpellList) : Iterator { - override fun hasNext() = list.nonEmpty - override operator fun next(): Iota { - val car = list.car - list = list.cdr - return car - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/CastingContext.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/CastingContext.kt deleted file mode 100644 index 0ae90378..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/CastingContext.kt +++ /dev/null @@ -1,253 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting - -import at.petrak.hexcasting.api.HexAPI.modLoc -import at.petrak.hexcasting.api.misc.DiscoveryHandlers -import at.petrak.hexcasting.api.mod.HexConfig -import at.petrak.hexcasting.api.spell.Action -import at.petrak.hexcasting.api.spell.mishaps.MishapEntityTooFarAway -import at.petrak.hexcasting.api.spell.mishaps.MishapEvalTooDeep -import at.petrak.hexcasting.api.spell.mishaps.MishapLocationTooFarAway -import at.petrak.hexcasting.api.utils.otherHand -import at.petrak.hexcasting.common.items.magic.ItemCreativeUnlocker -import at.petrak.hexcasting.xplat.IXplatAbstractions -import net.minecraft.core.BlockPos -import net.minecraft.server.level.ServerLevel -import net.minecraft.server.level.ServerPlayer -import net.minecraft.world.InteractionHand -import net.minecraft.world.entity.Entity -import net.minecraft.world.entity.player.Player -import net.minecraft.world.item.ItemStack -import net.minecraft.world.level.GameType -import net.minecraft.world.phys.Vec3 -import java.util.function.Predicate -import kotlin.math.min - -/** - * Transient info about the moment the spell started being cast. - */ -data class CastingContext( - val caster: ServerPlayer, - val castingHand: InteractionHand, - val source: CastSource, - val spellCircle: SpellCircleContext? = null -) { - constructor(caster: ServerPlayer, castingHand: InteractionHand, source: CastSource) : this( - caster, - castingHand, - source, - null - ) - - constructor(caster: ServerPlayer, castingHand: InteractionHand, spellCircleContext: SpellCircleContext) : - this(caster, castingHand, CastSource.SPELL_CIRCLE, spellCircleContext) - - private var depth: Int = 0 - - val world: ServerLevel get() = caster.getLevel() - val otherHand: InteractionHand get() = otherHand(this.castingHand) - val position: Vec3 get() = caster.position() - - private val entitiesGivenMotion = mutableSetOf() - - inline fun getHeldItemToOperateOn(acceptItemIf: (ItemStack) -> Boolean): Pair { - val handItem = caster.getItemInHand(otherHand) - if (!acceptItemIf(handItem)) { - val castingItem = caster.getItemInHand(castingHand) - if (acceptItemIf(castingItem)) { - return castingItem to castingHand - } - } - return handItem to otherHand - } - - /** - * Throws if we get too deep. - */ - fun incDepth() { - this.depth++ - val maxAllowedDepth = HexConfig.server().maxRecurseDepth() - if (this.depth > maxAllowedDepth) { - throw MishapEvalTooDeep() - } - } - - /** - * Check to make sure a vec is in world. - */ - fun assertVecInWorld(vec: Vec3) { - if (!isVecInWorld(vec)) - throw MishapLocationTooFarAway(vec, "out_of_world") - } - - /** - * Check to make sure a vec is in range. - */ - fun assertVecInRange(vec: Vec3) { - if (!isVecInRange(vec)) throw MishapLocationTooFarAway(vec) - assertVecInWorld(vec) - } - - fun assertVecInRange(pos: BlockPos) { - assertVecInRange(Vec3.atCenterOf(pos)) - } - - /** - * Check to make sure an entity is in range. Will not mishap for players. - */ - fun assertEntityInRange(entity: Entity) { - if (entity !is Player && !isEntityInRange(entity)) throw MishapEntityTooFarAway(entity) - } - - fun hasBeenGivenMotion(target: Entity): Boolean { - return entitiesGivenMotion.contains(target) - } - - fun isVecInWorld(vec: Vec3) = - world.isInWorldBounds(BlockPos(vec)) && world.worldBorder.isWithinBounds(vec.x, vec.z, 0.5) - - fun isVecInRange(vec: Vec3): Boolean { - val sentinel = IXplatAbstractions.INSTANCE.getSentinel(caster) - if (sentinel.hasSentinel - && sentinel.extendsRange - && world.dimension() == sentinel.dimension - && vec.distanceToSqr(sentinel.position) < Action.MAX_DISTANCE_FROM_SENTINEL * Action.MAX_DISTANCE_FROM_SENTINEL - ) - return true - - - if (this.spellCircle != null) { - // we use the eye position cause thats where the caster gets their "position" from - val range = this.caster.bbHeight - if (this.spellCircle.activatorAlwaysInRange && vec.distanceToSqr(this.caster.eyePosition) <= range * range) - return true - return this.spellCircle.aabb.contains(vec) - } - - return vec.distanceToSqr(this.caster.eyePosition) <= Action.MAX_DISTANCE * Action.MAX_DISTANCE - } - - fun isEntityInWorld(entity: Entity) = isVecInWorld(entity.position()) - - fun isEntityInRange(entity: Entity): Boolean { - if (this.spellCircle != null && this.spellCircle.activatorAlwaysInRange && this.caster == entity) - return true - return isVecInRange(entity.position()) - } - - fun canEditBlockAt(pos: BlockPos): Boolean { - return this.isVecInRange(Vec3.atCenterOf(pos)) - && this.caster.gameMode.gameModeForPlayer != GameType.ADVENTURE - && this.world.mayInteract(this.caster, pos) - } - - /** - * Return the slot from which to take blocks and items. - */ - // https://wiki.vg/Inventory is WRONG - // slots 0-8 are the hotbar - // for what purpose i cannot imagine - // http://redditpublic.com/images/b/b2/Items_slot_number.png looks right - // and offhand is 150 Inventory.java:464 - fun getOperativeSlot(stackOK: Predicate): ItemStack? { - val operable = DiscoveryHandlers.collectOperableSlots(this) - - for (stack in operable) { - if (stackOK.test(stack)) { - return stack - } - } - return null - } - - /** - * Remove the given count of the specified item from somewhere in the inventory, favoring slots not in the hotbar. - * Return whether the withdrawal was successful. - */ - // https://github.com/VazkiiMods/Psi/blob/master/src/main/java/vazkii/psi/common/spell/trick/block/PieceTrickPlaceBlock.java#L143 - fun withdrawItem(item: ItemStack, count: Int, actuallyRemove: Boolean): Boolean { - if (this.caster.isCreative) return true - - val operativeItem = item.copy() - - // TODO: withdraw from ender chest given a specific ender charm? - val stacksToExamine = DiscoveryHandlers.collectItemSlots(this) - - fun matches(stack: ItemStack): Boolean = - !stack.isEmpty && ItemStack.isSameItemSameTags(operativeItem, stack) - - val presentCount = stacksToExamine.fold(0) { acc, stack -> - acc + if (matches(stack)) stack.count else 0 - } - if (presentCount < count) return false - - // now that we know we have enough items, if we don't need to remove anything we're through. - if (!actuallyRemove) return true - - var remaining = count - for (stack in stacksToExamine) { - if (matches(stack)) { - val toWithdraw = min(stack.count, remaining) - stack.shrink(toWithdraw) - - remaining -= toWithdraw - if (remaining <= 0) { - return true - } - } - } - throw RuntimeException("unreachable") - } - - fun markEntityAsMotionAdded(entity: Entity) { - this.entitiesGivenMotion.add(entity) - } - - val canOvercast: Boolean - get() { - val adv = this.world.server.advancements.getAdvancement(modLoc("y_u_no_cast_angy")) - val advs = this.caster.advancements - return advs.getOrStartProgress(adv!!).isDone - } - - val isCasterEnlightened: Boolean - get() { - val adv = this.world.server.advancements.getAdvancement(modLoc("enlightenment")) - val advs = this.caster.advancements - return advs.getOrStartProgress(adv!!).isDone - } - - val debugPatterns: Boolean by lazy { - !DiscoveryHandlers.findDebugItem(this.caster, ItemCreativeUnlocker.DISPLAY_PATTERNS).isEmpty - } - - companion object { - init { - DiscoveryHandlers.addItemSlotDiscoverer { - val inv = it.caster.inventory - inv.items.toMutableList().apply { removeAt(inv.selected) }.asReversed().toMutableList().apply { - addAll(inv.offhand) - add(inv.getSelected()) - } - } - - DiscoveryHandlers.addOperativeSlotDiscoverer { - val slots = mutableListOf() - val anchorSlot = - if (it.castingHand == InteractionHand.MAIN_HAND) (it.caster.inventory.selected + 1) % 9 else 0 - - slots.add(it.caster.getItemInHand(it.otherHand)) - for (delta in 0 until 9) { - val slot = (anchorSlot + delta) % 9 - slots.add(it.caster.inventory.getItem(slot)) - } - slots - } - } - } - - enum class CastSource { - STAFF, - PACKAGED_HEX, - SPELL_CIRCLE, - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/CastingHarness.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/CastingHarness.kt deleted file mode 100644 index 780b6548..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/CastingHarness.kt +++ /dev/null @@ -1,689 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting - -import at.petrak.hexcasting.api.PatternRegistry -import at.petrak.hexcasting.api.advancements.HexAdvancementTriggers -import at.petrak.hexcasting.api.block.circle.BlockEntityAbstractImpetus -import at.petrak.hexcasting.api.misc.DiscoveryHandlers -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.misc.HexDamageSources -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.spell.Action -import at.petrak.hexcasting.api.spell.ParticleSpray -import at.petrak.hexcasting.api.spell.SpellList -import at.petrak.hexcasting.api.spell.casting.eval.ContinuationFrame -import at.petrak.hexcasting.api.spell.casting.eval.FrameEvaluate -import at.petrak.hexcasting.api.spell.casting.eval.FunctionalData -import at.petrak.hexcasting.api.spell.casting.eval.SpellContinuation -import at.petrak.hexcasting.api.spell.casting.sideeffects.EvalSound -import at.petrak.hexcasting.api.spell.casting.sideeffects.OperatorSideEffect -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.iota.ListIota -import at.petrak.hexcasting.api.spell.iota.PatternIota -import at.petrak.hexcasting.api.spell.math.HexDir -import at.petrak.hexcasting.api.spell.math.HexPattern -import at.petrak.hexcasting.api.spell.mishaps.* -import at.petrak.hexcasting.api.utils.* -import at.petrak.hexcasting.common.lib.hex.HexEvalSounds -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes -import at.petrak.hexcasting.xplat.IXplatAbstractions -import net.minecraft.ChatFormatting -import net.minecraft.nbt.CompoundTag -import net.minecraft.nbt.Tag -import net.minecraft.network.chat.Component -import net.minecraft.resources.ResourceLocation -import net.minecraft.server.level.ServerLevel -import net.minecraft.sounds.SoundSource -import net.minecraft.util.Mth -import net.minecraft.world.level.gameevent.GameEvent -import net.minecraft.world.phys.Vec3 -import kotlin.math.max -import kotlin.math.min - -/** - * Keeps track of a player casting a spell on the server. - * It's stored as NBT on the wand. - */ -class CastingHarness private constructor( - var stack: MutableList, - var ravenmind: Iota?, - var parenCount: Int, - var parenthesized: List, - var escapeNext: Boolean, - val ctx: CastingContext, - val prepackagedColorizer: FrozenColorizer? // for trinkets with colorizers -) { - - @JvmOverloads - constructor( - ctx: CastingContext, - prepackagedColorizer: FrozenColorizer? = null - ) : this(mutableListOf(), null, 0, mutableListOf(), false, ctx, prepackagedColorizer) - - /** - * Execute a single iota. - */ - fun executeIota(iota: Iota, world: ServerLevel): ControllerInfo = executeIotas(listOf(iota), world) - - private fun displayPattern(escapeNext: Boolean, parenCount: Int, iotaRepresentation: Component) { - if (this.ctx.debugPatterns) { - val display = " ".repeat(parenCount).asTextComponent - if (escapeNext) - display.append("\\ ".asTextComponent.gold) - display.append(iotaRepresentation) - - this.ctx.caster.sendSystemMessage(display) - } - } - - private fun getOperatorForPattern(iota: Iota, world: ServerLevel): Action? { - if (iota is PatternIota) - return PatternRegistry.matchPattern(iota.pattern, world) - return null - } - - private fun getPatternForFrame(frame: ContinuationFrame): HexPattern? { - if (frame !is FrameEvaluate) return null - - return (frame.list.car as? PatternIota)?.pattern - } - - private fun getOperatorForFrame(frame: ContinuationFrame, world: ServerLevel): Action? { - if (frame !is FrameEvaluate) return null - - return getOperatorForPattern(frame.list.car, world) - } - - /** - * Given a list of iotas, execute them in sequence. - */ - fun executeIotas(iotas: List, world: ServerLevel): ControllerInfo { - // Initialize the continuation stack to a single top-level eval for all iotas. - var continuation = SpellContinuation.Done.pushFrame(FrameEvaluate(SpellList.LList(0, iotas), false)) - // Begin aggregating info - val info = TempControllerInfo(earlyExit = false) - var lastResolutionType = ResolvedPatternType.UNRESOLVED - var sound = HexEvalSounds.NOTHING - while (continuation is SpellContinuation.NotDone && !info.earlyExit) { - // Take the top of the continuation stack... - val next = continuation.frame - // ...and execute it. - val result = try { - next.evaluate(continuation.next, world, this) - } catch (mishap: Mishap) { - val pattern = getPatternForFrame(next) - val operator = try { - getOperatorForFrame(next, world) - } catch (e: Throwable) { - null - } - CastResult( - continuation, - null, - mishap.resolutionType(ctx), - listOf( - OperatorSideEffect.DoMishap( - mishap, - Mishap.Context(pattern ?: HexPattern(HexDir.WEST), operator) - ) - ), - HexEvalSounds.MISHAP, - ) - } - // Then write all pertinent data back to the harness for the next iteration. - if (result.newData != null) { - this.applyFunctionalData(result.newData) - } - continuation = result.continuation - lastResolutionType = result.resolutionType - performSideEffects(info, result.sideEffects) - info.earlyExit = info.earlyExit || !lastResolutionType.success - sound = if (result.sound == HexEvalSounds.MISHAP) { - HexEvalSounds.MISHAP - } else { - sound.greaterOf(result.sound) - } - } - - sound.sound?.let { - this.ctx.world.playSound( - null, this.ctx.position.x, this.ctx.position.y, this.ctx.position.z, it, - SoundSource.PLAYERS, 1f, 1f - ) - // TODO: is it worth mixing in to the immut map and making our own game event with blackjack and hookers - this.ctx.world.gameEvent(this.ctx.caster, GameEvent.ITEM_INTERACT_FINISH, this.ctx.position) - } - - if (continuation is SpellContinuation.NotDone) { - lastResolutionType = - if (lastResolutionType.success) ResolvedPatternType.EVALUATED else ResolvedPatternType.ERRORED - } - - val (stackDescs, parenDescs, ravenmind) = generateDescs() - - return ControllerInfo( - this.stack.isEmpty() && this.parenCount == 0 && !this.escapeNext, - lastResolutionType, - stackDescs, - parenDescs, - ravenmind, - this.parenCount - ) - } - - fun getUpdate(iota: Iota, world: ServerLevel, continuation: SpellContinuation): CastResult { - try { - // TODO we can have a special intro/retro sound - this.handleParentheses(iota)?.let { (data, resolutionType) -> - return@getUpdate CastResult(continuation, data, resolutionType, listOf(), HexEvalSounds.OPERATOR) - } - - if (iota is PatternIota) { - return updateWithPattern(iota.pattern, world, continuation) - } else { - return CastResult( - continuation, - null, - ResolvedPatternType.INVALID, // Should never matter - listOf( - OperatorSideEffect.DoMishap( - MishapUnescapedValue(iota), - Mishap.Context(HexPattern(HexDir.WEST), null) - ) - ), - HexEvalSounds.MISHAP - ) - } - } catch (mishap: Mishap) { - val operator = try { - getOperatorForPattern(iota, world) - } catch (e: Throwable) { - null - } - return CastResult( - continuation, - null, - mishap.resolutionType(ctx), - listOf( - OperatorSideEffect.DoMishap( - mishap, - Mishap.Context( - (iota as? PatternIota)?.pattern ?: HexPattern(HexDir.WEST), - operator - ) - ) - ), - HexEvalSounds.MISHAP - ) - } catch (exception: Exception) { - // This means something very bad has happened - exception.printStackTrace() - val operator = try { - getOperatorForPattern(iota, world) - } catch (e: Throwable) { - null - } - return CastResult( - continuation, - null, - ResolvedPatternType.ERRORED, - listOf( - OperatorSideEffect.DoMishap( - MishapError(exception), - Mishap.Context( - (iota as? PatternIota)?.pattern ?: HexPattern(HexDir.WEST), - operator - ) - ) - ), - HexEvalSounds.MISHAP - ) - } - } - - /** - * When the server gets a packet from the client with a new pattern, - * handle it functionally. - */ - fun updateWithPattern(newPat: HexPattern, world: ServerLevel, continuation: SpellContinuation): CastResult { - var actionIdPair: Pair? = null - try { - // Don't catch this one - val mojangPair = PatternRegistry.matchPatternAndID(newPat, world) - actionIdPair = mojangPair.first to mojangPair.second - - if (this.ctx.spellCircle == null && !HexConfig.server().isActionAllowed(actionIdPair.second)) { - throw MishapDisallowedSpell() - } else if (this.ctx.spellCircle != null - && !HexConfig.server().isActionAllowedInCircles(actionIdPair.second) - ) { - throw MishapDisallowedSpell("disallowed_circle") - } - - val pattern = actionIdPair.first - - val unenlightened = pattern.isGreat && !ctx.isCasterEnlightened - - val sideEffects = mutableListOf() - var stack2: List? = null - var cont2 = continuation - var ravenmind2: Iota? = null - - if (!unenlightened || pattern.alwaysProcessGreatSpell) { - displayPattern(false, 0, pattern.displayName) - val result = pattern.operate( - continuation, - this.stack.toMutableList(), - this.ravenmind, - this.ctx - ) - cont2 = result.newContinuation - stack2 = result.newStack - ravenmind2 = result.newRavenmind - // TODO parens also break prescience - sideEffects.addAll(result.sideEffects) - } - - if (unenlightened) { - sideEffects.add(OperatorSideEffect.RequiredEnlightenment(pattern.causesBlindDiversion)) - } - - // Stick a poofy particle effect at the caster position - if (this.ctx.spellCircle == null) - sideEffects.add( - OperatorSideEffect.Particles( - ParticleSpray( - this.ctx.position, - Vec3(0.0, 1.0, 0.0), - 0.5, 1.0 - ) - ) - ) - - val hereFd = this.getFunctionalData() - val fd = if (stack2 != null) { - hereFd.copy( - stack = stack2, - ravenmind = ravenmind2 - ) - } else { - hereFd - } - - var soundType = if (this.ctx.source == CastingContext.CastSource.STAFF) { - HexEvalSounds.OPERATOR - } else { - HexEvalSounds.NOTHING - } - for (se in sideEffects) { - if (se is OperatorSideEffect.AttemptSpell) { - soundType = if (se.hasCastingSound) { - soundType.greaterOf(HexEvalSounds.SPELL) - } else { - // WITH CATLIKE TREAD - // UPON OUR PREY WE STEAL - HexEvalSounds.NOTHING - } - } else if (se is OperatorSideEffect.DoMishap) { - soundType = HexEvalSounds.MISHAP - } - } - return CastResult( - cont2, - fd, - ResolvedPatternType.EVALUATED, - sideEffects, - soundType, - ) - - } catch (mishap: Mishap) { - return CastResult( - continuation, - null, - mishap.resolutionType(ctx), - listOf(OperatorSideEffect.DoMishap(mishap, Mishap.Context(newPat, actionIdPair?.first))), - HexEvalSounds.MISHAP - ) - } - } - - /** - * Execute the side effects of a pattern, updating our aggregated info. - */ - fun performSideEffects(info: TempControllerInfo, sideEffects: List) { - for (haskellProgrammersShakingandCryingRN in sideEffects) { - val mustStop = haskellProgrammersShakingandCryingRN.performEffect(this) - if (mustStop) { - info.earlyExit = true - break - } - } - } - - fun generateDescs() = Triple( - stack.map(HexIotaTypes::serialize), - parenthesized.map(HexIotaTypes::serialize), - ravenmind?.let(HexIotaTypes::serialize) - ) - - /** - * Return the functional update represented by the current state (for use with `copy`) - */ - fun getFunctionalData() = FunctionalData( - this.stack.toList(), - this.parenCount, - this.parenthesized.toList(), - this.escapeNext, - this.ravenmind, - ) - - /** - * Apply the functional update. - */ - fun applyFunctionalData(data: FunctionalData) { - this.stack.clear() - this.stack.addAll(data.stack) - this.parenCount = data.parenCount - this.parenthesized = data.parenthesized - this.escapeNext = data.escapeNext - this.ravenmind = data.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. - */ - private fun handleParentheses(iota: Iota): Pair? { - val sig = (iota as? PatternIota)?.pattern?.anglesSignature() - - var displayDepth = this.parenCount - - val out = if (this.parenCount > 0) { - if (this.escapeNext) { - val newParens = this.parenthesized.toMutableList() - newParens.add(iota) - this.getFunctionalData().copy( - escapeNext = false, - parenthesized = newParens - ) to ResolvedPatternType.ESCAPED - } else { - - when (sig) { - SpecialPatterns.CONSIDERATION.anglesSignature() -> { - this.getFunctionalData().copy( - escapeNext = true, - ) to ResolvedPatternType.EVALUATED - } - - SpecialPatterns.INTROSPECTION.anglesSignature() -> { - // we have escaped the parens onto the stack; we just also record our count. - val newParens = this.parenthesized.toMutableList() - newParens.add(iota) - this.getFunctionalData().copy( - parenthesized = newParens, - parenCount = this.parenCount + 1 - ) to if (this.parenCount == 0) ResolvedPatternType.EVALUATED else ResolvedPatternType.ESCAPED - } - - SpecialPatterns.RETROSPECTION.anglesSignature() -> { - val newParenCount = this.parenCount - 1 - displayDepth-- - if (newParenCount == 0) { - val newStack = this.stack.toMutableList() - newStack.add(ListIota(this.parenthesized.toList())) - this.getFunctionalData().copy( - stack = newStack, - parenCount = newParenCount, - parenthesized = listOf() - ) to ResolvedPatternType.EVALUATED - } else if (newParenCount < 0) { - throw MishapTooManyCloseParens() - } else { - // we have this situation: "(()" - // we need to add the close paren - val newParens = this.parenthesized.toMutableList() - newParens.add(iota) - this.getFunctionalData().copy( - parenCount = newParenCount, - parenthesized = newParens - ) to ResolvedPatternType.ESCAPED - } - } - - else -> { - val newParens = this.parenthesized.toMutableList() - newParens.add(iota) - this.getFunctionalData().copy( - parenthesized = newParens - ) to ResolvedPatternType.ESCAPED - } - } - } - } else if (this.escapeNext) { - val newStack = this.stack.toMutableList() - newStack.add(iota) - this.getFunctionalData().copy( - stack = newStack, - escapeNext = false, - ) to ResolvedPatternType.ESCAPED - } else { - when (sig) { - SpecialPatterns.CONSIDERATION.anglesSignature() -> { - this.getFunctionalData().copy( - escapeNext = true - ) to ResolvedPatternType.EVALUATED - } - - SpecialPatterns.INTROSPECTION.anglesSignature() -> { - this.getFunctionalData().copy( - parenCount = this.parenCount + 1 - ) to ResolvedPatternType.EVALUATED - } - - SpecialPatterns.RETROSPECTION.anglesSignature() -> { - throw MishapTooManyCloseParens() - } - - else -> { - null - } - } - } - - if (out != null) { - val display = if (iota is PatternIota) { - PatternNameHelper.representationForPattern(iota.pattern) - .copy() - .withStyle(if (out.second == ResolvedPatternType.ESCAPED) ChatFormatting.YELLOW else ChatFormatting.AQUA) - } else iota.display() - displayPattern(this.escapeNext, displayDepth, display) - } - return out - } - - /** - * Might cast from hitpoints. - * Returns the media cost still remaining after we deplete everything. It will be <= 0 if we could pay for it. - * - * Also awards stats and achievements and such - */ - fun withdrawMedia(mediaCost: Int, allowOvercast: Boolean): Int { - // prevent poor impls from gaining you media - if (mediaCost <= 0) return 0 - var costLeft = mediaCost - - val fake = this.ctx.caster.isCreative - - if (this.ctx.spellCircle != null) { - if (fake) - return 0 - - val tile = this.ctx.world.getBlockEntity(this.ctx.spellCircle.impetusPos) - if (tile is BlockEntityAbstractImpetus) { - val mediaAvailable = tile.media - if (mediaAvailable < 0) - return 0 - - val mediaToTake = min(costLeft, mediaAvailable) - costLeft -= mediaToTake - tile.media = mediaAvailable - mediaToTake - } - } else { - val casterStack = this.ctx.caster.getItemInHand(this.ctx.castingHand) - val casterMediaHolder = IXplatAbstractions.INSTANCE.findMediaHolder(casterStack) - val casterHexHolder = IXplatAbstractions.INSTANCE.findHexHolder(casterStack) - val hexHolderDrawsFromInventory = if (casterHexHolder != null) { - if (casterMediaHolder != null) { - val mediaAvailable = casterMediaHolder.withdrawMedia(-1, true) - val mediaToTake = min(costLeft, mediaAvailable) - if (!fake) casterMediaHolder.withdrawMedia(mediaToTake, false) - costLeft -= mediaToTake - } - casterHexHolder.canDrawMediaFromInventory() - } else { - false - } - - if (casterStack.`is`(HexTags.Items.STAVES) || hexHolderDrawsFromInventory) { - val mediaSources = DiscoveryHandlers.collectMediaHolders(this) - .sortedWith(Comparator(::compareMediaItem).reversed()) - for (source in mediaSources) { - costLeft -= extractMedia(source, costLeft, simulate = fake) - if (costLeft <= 0) - break - } - - if (allowOvercast && costLeft > 0) { - // Cast from HP! - val mediaToHealth = HexConfig.common().mediaToHealthRate() - val healthToRemove = max(costLeft.toDouble() / mediaToHealth, 0.5) - val mediaAbleToCastFromHP = this.ctx.caster.health * mediaToHealth - - val mediaToActuallyPayFor = min(mediaAbleToCastFromHP.toInt(), costLeft) - costLeft -= if (!fake) { - Mishap.trulyHurt(this.ctx.caster, HexDamageSources.OVERCAST, healthToRemove.toFloat()) - - val actuallyTaken = Mth.ceil(mediaAbleToCastFromHP - (this.ctx.caster.health * mediaToHealth)) - - HexAdvancementTriggers.OVERCAST_TRIGGER.trigger(this.ctx.caster, actuallyTaken) - this.ctx.caster.awardStat(HexStatistics.MEDIA_OVERCAST, mediaCost - costLeft) - actuallyTaken - } else { - mediaToActuallyPayFor - } - } - } - } - - if (!fake) { - // this might be more than the media cost! for example if we waste a lot of media from an item - this.ctx.caster.awardStat(HexStatistics.MEDIA_USED, mediaCost - costLeft) - HexAdvancementTriggers.SPEND_MEDIA_TRIGGER.trigger( - this.ctx.caster, - mediaCost - costLeft, - if (costLeft < 0) -costLeft else 0 - ) - } - - return if (fake) 0 else costLeft - } - - fun getColorizer(): FrozenColorizer { - if (this.prepackagedColorizer != null) - return this.prepackagedColorizer - - return IXplatAbstractions.INSTANCE.getColorizer(this.ctx.caster) - } - - - fun serializeToNBT() = NBTBuilder { - TAG_STACK %= stack.serializeToNBT() - - if (ravenmind != null) - TAG_LOCAL %= HexIotaTypes.serialize(ravenmind!!) - TAG_PAREN_COUNT %= parenCount - TAG_ESCAPE_NEXT %= escapeNext - - TAG_PARENTHESIZED %= parenthesized.serializeToNBT() - - if (prepackagedColorizer != null) - TAG_PREPACKAGED_COLORIZER %= prepackagedColorizer.serializeToNBT() - } - - - companion object { - const val TAG_STACK = "stack" - const val TAG_LOCAL = "local" - const val TAG_PAREN_COUNT = "open_parens" - const val TAG_PARENTHESIZED = "parenthesized" - const val TAG_ESCAPE_NEXT = "escape_next" - const val TAG_PREPACKAGED_COLORIZER = "prepackaged_colorizer" - - init { - DiscoveryHandlers.addMediaHolderDiscoverer { - it.ctx.caster.inventory.items - .filter(::isMediaItem) - .mapNotNull(IXplatAbstractions.INSTANCE::findMediaHolder) - } - DiscoveryHandlers.addMediaHolderDiscoverer { - it.ctx.caster.inventory.armor - .filter(::isMediaItem) - .mapNotNull(IXplatAbstractions.INSTANCE::findMediaHolder) - } - DiscoveryHandlers.addMediaHolderDiscoverer { - it.ctx.caster.inventory.offhand - .filter(::isMediaItem) - .mapNotNull(IXplatAbstractions.INSTANCE::findMediaHolder) - } - } - - @JvmStatic - fun fromNBT(nbt: CompoundTag, ctx: CastingContext): CastingHarness { - return try { - val stack = mutableListOf() - val stackTag = nbt.getList(TAG_STACK, Tag.TAG_COMPOUND) - for (subtag in stackTag) { - val datum = HexIotaTypes.deserialize(subtag.asCompound, ctx.world) - stack.add(datum) - } - - val ravenmind = if (nbt.contains(TAG_LOCAL)) - HexIotaTypes.deserialize(nbt.getCompound(TAG_LOCAL), ctx.world) - else - null - - val parenthesized = mutableListOf() - val parenTag = nbt.getList(TAG_PARENTHESIZED, Tag.TAG_COMPOUND) - for (subtag in parenTag) { - parenthesized.add(HexIotaTypes.deserialize(subtag.downcast(CompoundTag.TYPE), ctx.world)) - } - - val parenCount = nbt.getInt(TAG_PAREN_COUNT) - val escapeNext = nbt.getBoolean(TAG_ESCAPE_NEXT) - - val colorizer = if (nbt.contains(TAG_PREPACKAGED_COLORIZER)) { - FrozenColorizer.fromNBT(nbt.getCompound(TAG_PREPACKAGED_COLORIZER)) - } else { - null - } - - CastingHarness(stack, ravenmind, parenCount, parenthesized, escapeNext, ctx, colorizer) - } catch (exn: Exception) { - CastingHarness(ctx) - } - } - } - - data class TempControllerInfo( - var earlyExit: Boolean, - ) - - data class CastResult( - val continuation: SpellContinuation, - val newData: FunctionalData?, - val resolutionType: ResolvedPatternType, - val sideEffects: List, - val sound: EvalSound, - ) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ControllerInfo.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ControllerInfo.kt deleted file mode 100644 index 64d60aba..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ControllerInfo.kt +++ /dev/null @@ -1,16 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting - -import net.minecraft.nbt.CompoundTag - -/** - * Information for the sake of the GUI. - */ -data class ControllerInfo( - val isStackClear: Boolean, - val resolutionType: ResolvedPatternType, - val stack: List, - val parenthesized: List, - val ravenmind: CompoundTag?, - val parenCount: Int, -) - diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPattern.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPattern.kt deleted file mode 100644 index 0413f64c..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPattern.kt +++ /dev/null @@ -1,27 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting - -import at.petrak.hexcasting.api.spell.math.HexCoord -import at.petrak.hexcasting.api.spell.math.HexPattern -import at.petrak.hexcasting.api.utils.NBTBuilder -import net.minecraft.nbt.CompoundTag -import java.util.* - - -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) - } - - 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) - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPatternType.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPatternType.kt deleted file mode 100644 index 518f3cec..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPatternType.kt +++ /dev/null @@ -1,18 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting - -import at.petrak.hexcasting.api.utils.getSafe - -enum class ResolvedPatternType(val color: Int, val fadeColor: Int, val success: Boolean) { - UNRESOLVED(0x7f7f7f, 0xcccccc, false), - EVALUATED(0x7385de, 0xfecbe6, true), - ESCAPED(0xddcc73, 0xfffae5, true), - ERRORED(0xde6262, 0xffc7a0, false), - INVALID(0xb26b6b, 0xcca88e, false); - - companion object { - @JvmStatic - fun fromString(key: String): ResolvedPatternType { - return values().getSafe(key) - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/SpecialPatterns.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/SpecialPatterns.java deleted file mode 100644 index e784b87a..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/SpecialPatterns.java +++ /dev/null @@ -1,10 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting; - -import at.petrak.hexcasting.api.spell.math.HexDir; -import at.petrak.hexcasting.api.spell.math.HexPattern; - -public final class SpecialPatterns { - public static final HexPattern INTROSPECTION = HexPattern.fromAngles("qqq", HexDir.WEST); - public static final HexPattern RETROSPECTION = HexPattern.fromAngles("eee", HexDir.EAST); - public static final HexPattern CONSIDERATION = HexPattern.fromAngles("qqqaw", HexDir.EAST); -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/SpellCircleContext.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/SpellCircleContext.kt deleted file mode 100644 index 404575f2..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/SpellCircleContext.kt +++ /dev/null @@ -1,56 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting - -import at.petrak.hexcasting.api.utils.NBTBuilder -import net.minecraft.core.BlockPos -import net.minecraft.nbt.CompoundTag -import net.minecraft.world.phys.AABB - -/** - * Optional field on a [CastingContext] for the spell circle - */ -data class SpellCircleContext(val impetusPos: BlockPos, val aabb: AABB, val activatorAlwaysInRange: Boolean) { - fun serializeToNBT() = NBTBuilder { - TAG_IMPETUS_X %= impetusPos.x - TAG_IMPETUS_Y %= impetusPos.y - TAG_IMPETUS_Z %= impetusPos.z - - TAG_MIN_X %= aabb.minX - TAG_MIN_Y %= aabb.minY - TAG_MIN_Z %= aabb.minZ - TAG_MAX_X %= aabb.maxX - TAG_MAX_Y %= aabb.maxY - TAG_MAX_Z %= aabb.maxZ - - TAG_PLAYER_ALWAYS_IN_RANGE %= activatorAlwaysInRange - } - - companion object { - const val TAG_IMPETUS_X = "impetus_x" - const val TAG_IMPETUS_Y = "impetus_y" - const val TAG_IMPETUS_Z = "impetus_z" - const val TAG_MIN_X = "min_x" - const val TAG_MIN_Y = "min_y" - const val TAG_MIN_Z = "min_z" - const val TAG_MAX_X = "max_x" - const val TAG_MAX_Y = "max_y" - const val TAG_MAX_Z = "max_z" - const val TAG_PLAYER_ALWAYS_IN_RANGE = "player_always_in_range" - - fun fromNBT(tag: CompoundTag): SpellCircleContext { - val impX = tag.getInt(TAG_IMPETUS_X) - val impY = tag.getInt(TAG_IMPETUS_Y) - val impZ = tag.getInt(TAG_IMPETUS_Z) - - val minX = tag.getDouble(TAG_MIN_X) - val minY = tag.getDouble(TAG_MIN_Y) - val minZ = tag.getDouble(TAG_MIN_Z) - val maxX = tag.getDouble(TAG_MAX_X) - val maxY = tag.getDouble(TAG_MAX_Y) - val maxZ = tag.getDouble(TAG_MAX_Z) - - val playerAIR = tag.getBoolean(TAG_PLAYER_ALWAYS_IN_RANGE) - - return SpellCircleContext(BlockPos(impX, impY, impZ), AABB(minX, minY, minZ, maxX, maxY, maxZ), playerAIR) - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/ContinuationFrame.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/ContinuationFrame.kt deleted file mode 100644 index 4d768732..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/ContinuationFrame.kt +++ /dev/null @@ -1,78 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting.eval - -import at.petrak.hexcasting.api.spell.SpellList -import at.petrak.hexcasting.api.spell.casting.CastingHarness -import at.petrak.hexcasting.api.spell.casting.CastingHarness.CastResult -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.utils.getList -import at.petrak.hexcasting.api.utils.hasList -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes -import net.minecraft.nbt.CompoundTag -import net.minecraft.nbt.Tag -import net.minecraft.server.level.ServerLevel - -// TODO this should probably be a registry too -/** - * A single frame of evaluation during the execution of a spell. - * - * Specifically, an evaluation will keep a stack of these frames. - * An evaluation with no meta-eval will consist of a single [Evaluate(rest of the pats)] at all times. - * When an Eval is invoked, we push Evaluate(pats) to the top of the stack. - * - * Evaluation is performed by repeatedly popping the top-most (i.e. innermost) frame from the stack, - * then evaluating that frame (and possibly allowing it to push other frames (e.g. if it's a Hermes)). - * - * Once the stack of frames is empty, there are no more computations to run, so we're done. - * - */ -sealed interface ContinuationFrame { - /** - * Step the evaluation forward once. - * For Evaluate, this consumes one pattern; for ForEach this queues the next iteration of the outer loop. - * @return the result of this pattern step - */ - fun evaluate(continuation: SpellContinuation, level: ServerLevel, harness: CastingHarness): CastResult - - /** - * The OpHalt instruction wants us to "jump to" the END of the nearest meta-eval. - * In other words, we should consume Evaluate frames until we hit a FinishEval or Thoth frame. - * @return whether the break should stop here, alongside the new stack state (e.g. for finalizing a Thoth) - */ - fun breakDownwards(stack: List): Pair> - - /** - * Serializes this frame. Used for things like delays, where we pause execution. - */ - fun serializeToNBT(): CompoundTag - - companion object { - @JvmStatic - fun fromNBT(tag: CompoundTag, world: ServerLevel): ContinuationFrame { - return when (tag.getString("type")) { - "eval" -> FrameEvaluate( - HexIotaTypes.LIST.deserialize( - tag.getList("patterns", Tag.TAG_COMPOUND), - world - )!!.list, - tag.getBoolean("isMetacasting") - ) - - "end" -> FrameFinishEval - "foreach" -> 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() - ) - - else -> FrameEvaluate(SpellList.LList(0, listOf()), false) - } - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FrameEvaluate.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FrameEvaluate.kt deleted file mode 100644 index f8052f2d..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FrameEvaluate.kt +++ /dev/null @@ -1,51 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting.eval - -import at.petrak.hexcasting.api.spell.SpellList -import at.petrak.hexcasting.api.spell.casting.CastingHarness -import at.petrak.hexcasting.api.spell.casting.ResolvedPatternType -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.utils.NBTBuilder -import at.petrak.hexcasting.api.utils.serializeToNBT -import at.petrak.hexcasting.common.lib.hex.HexEvalSounds -import net.minecraft.server.level.ServerLevel - -/** - * A list of patterns to be evaluated in sequence. - * @property list the *remaining* list of patterns to be evaluated - * @property isMetacasting only for sound effects, if this is being cast from a hermes / iris - */ -data class FrameEvaluate(val list: SpellList, val isMetacasting: Boolean) : ContinuationFrame { - // Discard this frame and keep discarding frames. - override fun breakDownwards(stack: List) = false to stack - - // Step the list of patterns, evaluating a single one. - override fun evaluate( - continuation: SpellContinuation, - level: ServerLevel, - harness: CastingHarness - ): CastingHarness.CastResult { - // If there are patterns left... - return if (list.nonEmpty) { - val newCont = if (list.cdr.nonEmpty) { // yay TCO - // ...enqueue the evaluation of the rest of the patterns... - continuation.pushFrame(FrameEvaluate(list.cdr, this.isMetacasting)) - } else continuation - // ...before evaluating the first one in the list. - val update = harness.getUpdate(list.car, level, newCont) - if (this.isMetacasting && update.sound != HexEvalSounds.MISHAP) { - update.copy(sound = HexEvalSounds.HERMES) - } else { - update - } - } else { - // If there are no patterns (e.g. empty Hermes), just return OK. - CastingHarness.CastResult(continuation, null, ResolvedPatternType.EVALUATED, listOf(), HexEvalSounds.HERMES) - } - } - - override fun serializeToNBT() = NBTBuilder { - "type" %= "evaluate" - "patterns" %= list.serializeToNBT() - "isMetacasting" %= isMetacasting - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FrameFinishEval.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FrameFinishEval.kt deleted file mode 100644 index 05ec820b..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FrameFinishEval.kt +++ /dev/null @@ -1,36 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting.eval - -import at.petrak.hexcasting.api.spell.casting.CastingHarness -import at.petrak.hexcasting.api.spell.casting.ResolvedPatternType -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.utils.NBTBuilder -import at.petrak.hexcasting.common.lib.hex.HexEvalSounds -import net.minecraft.server.level.ServerLevel - -/** - * A stack marker representing the end of a Hermes evaluation, - * so that we know when to stop removing frames during a Halt. - */ -object FrameFinishEval : ContinuationFrame { - // Don't do anything else to the stack, just finish the halt statement. - override fun breakDownwards(stack: List) = true to stack - - // Evaluating it does nothing; it's only a boundary condition. - override fun evaluate( - continuation: SpellContinuation, - level: ServerLevel, - harness: CastingHarness - ): CastingHarness.CastResult { - return CastingHarness.CastResult( - continuation, - FunctionalData(harness.stack.toList(), 0, listOf(), false, harness.ravenmind), - ResolvedPatternType.EVALUATED, - listOf(), - HexEvalSounds.NOTHING, - ) - } - - override fun serializeToNBT() = NBTBuilder { - "type" %= "end" - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FrameForEach.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FrameForEach.kt deleted file mode 100644 index 40107399..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FrameForEach.kt +++ /dev/null @@ -1,87 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting.eval - -import at.petrak.hexcasting.api.spell.SpellList -import at.petrak.hexcasting.api.spell.casting.CastingHarness -import at.petrak.hexcasting.api.spell.casting.ResolvedPatternType -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.iota.ListIota -import at.petrak.hexcasting.api.utils.NBTBuilder -import at.petrak.hexcasting.api.utils.serializeToNBT -import at.petrak.hexcasting.common.lib.hex.HexEvalSounds -import net.minecraft.server.level.ServerLevel - -/** - * A frame representing all the state for a Thoth evaluation. - * Pushed by an OpForEach. - * @property first whether the input stack state is the first one (since we don't want to save the base-stack before any changes are made) - * @property data list of *remaining* datums to ForEach over - * @property code code to run per datum - * @property baseStack the stack state at Thoth entry - * @property acc concatenated list of final stack states after Thoth exit - */ -data class FrameForEach( - val data: SpellList, - val code: SpellList, - val baseStack: List?, - val acc: MutableList -) : ContinuationFrame { - - /** When halting, we add the stack state at halt to the stack accumulator, then return the original pre-Thoth stack, plus the accumulator. */ - override fun breakDownwards(stack: List): Pair> { - val newStack = baseStack?.toMutableList() ?: mutableListOf() - acc.addAll(stack) - newStack.add(ListIota(acc)) - return true to newStack - } - - /** Step the Thoth computation, enqueueing one code evaluation. */ - override fun evaluate( - continuation: SpellContinuation, - level: ServerLevel, - harness: CastingHarness - ): CastingHarness.CastResult { - // If this isn't the very first Thoth step (i.e. no Thoth computations run yet)... - val stack = if (baseStack == null) { - // init stack to the harness stack... - harness.stack.toList() - } else { - // else save the stack to the accumulator and reuse the saved base stack. - acc.addAll(harness.stack) - baseStack - } - - // If we still have data to process... - val (stackTop, newCont) = if (data.nonEmpty) { - // Increment the evaluation depth, - harness.ctx.incDepth() - // push the next datum to the top of the stack, - data.car to continuation - // put the next Thoth object back on the stack for the next Thoth cycle, - .pushFrame(FrameForEach(data.cdr, code, stack, acc)) - // and prep the Thoth'd code block for evaluation. - .pushFrame(FrameEvaluate(code, true)) - } else { - // Else, dump our final list onto the stack. - ListIota(acc) to continuation - } - val tStack = stack.toMutableList() - tStack.add(stackTop) - // TODO: this means we could have Thoth casting do a different sound - return CastingHarness.CastResult( - newCont, - FunctionalData(tStack, 0, listOf(), false, harness.ravenmind), - ResolvedPatternType.EVALUATED, - listOf(), - HexEvalSounds.THOTH, - ) - } - - override fun serializeToNBT() = NBTBuilder { - "type" %= "foreach" - "data" %= data.serializeToNBT() - "code" %= code.serializeToNBT() - if (baseStack != null) - "base" %= baseStack.serializeToNBT() - "accumulator" %= acc.serializeToNBT() - } -} \ No newline at end of file diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FunctionalData.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FunctionalData.kt deleted file mode 100644 index 32ad396e..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/FunctionalData.kt +++ /dev/null @@ -1,15 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting.eval - -import at.petrak.hexcasting.api.spell.iota.Iota - -/** - * A change to the data in a CastHarness after a pattern is drawn. - */ -data class FunctionalData( - val stack: List, - val parenCount: Int, - val parenthesized: List, - val escapeNext: Boolean, - val ravenmind: Iota? -) - diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/SpellContinuation.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/SpellContinuation.kt deleted file mode 100644 index d956f6a0..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/eval/SpellContinuation.kt +++ /dev/null @@ -1,12 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting.eval - -/** - * A continuation during the execution of a spell. - */ -sealed interface SpellContinuation { - object Done : SpellContinuation - - data class NotDone(val frame: ContinuationFrame, val next: SpellContinuation) : SpellContinuation - - fun pushFrame(frame: ContinuationFrame): SpellContinuation = NotDone(frame, this) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/sideeffects/EvalSound.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/sideeffects/EvalSound.java deleted file mode 100644 index 73e2ad71..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/sideeffects/EvalSound.java +++ /dev/null @@ -1,18 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting.sideeffects; - -import net.minecraft.sounds.SoundEvent; -import org.jetbrains.annotations.Nullable; - -/** - * The kind of sound that plays after a cast. - * - * @param sound the actual sound file - * @param priority the priority of this sound. the sound with the highest priority in a given cast will be - * playd. - * shortcutMetacasting takes precedence over this. - */ -public record EvalSound(@Nullable SoundEvent sound, int priority) { - public EvalSound greaterOf(EvalSound that) { - return (this.priority > that.priority) ? this : that; - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/sideeffects/OperatorSideEffect.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/sideeffects/OperatorSideEffect.kt deleted file mode 100644 index e1aa04f7..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/sideeffects/OperatorSideEffect.kt +++ /dev/null @@ -1,100 +0,0 @@ -package at.petrak.hexcasting.api.spell.casting.sideeffects - -import at.petrak.hexcasting.api.advancements.HexAdvancementTriggers -import at.petrak.hexcasting.api.block.circle.BlockEntityAbstractImpetus -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.mod.HexStatistics -import at.petrak.hexcasting.api.spell.ParticleSpray -import at.petrak.hexcasting.api.spell.RenderedSpell -import at.petrak.hexcasting.api.spell.casting.CastingHarness -import at.petrak.hexcasting.api.spell.mishaps.Mishap -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import at.petrak.hexcasting.common.lib.HexItems -import net.minecraft.Util -import net.minecraft.world.item.DyeColor -import net.minecraft.world.item.ItemStack - -/** - * Things that happen after a spell is cast. - */ -sealed class OperatorSideEffect { - /** Return whether to cancel all further [OperatorSideEffect] */ - abstract fun performEffect(harness: CastingHarness): Boolean - - data class RequiredEnlightenment(val awardStat: Boolean) : OperatorSideEffect() { - override fun performEffect(harness: CastingHarness): Boolean { - harness.ctx.caster.sendSystemMessage("hexcasting.message.cant_great_spell".asTranslatedComponent) - - if (awardStat) - HexAdvancementTriggers.FAIL_GREAT_SPELL_TRIGGER.trigger(harness.ctx.caster) - - return true - } - } - - /** Try to cast a spell */ - data class AttemptSpell( - val spell: RenderedSpell, - val hasCastingSound: Boolean = true, - val awardStat: Boolean = true - ) : - OperatorSideEffect() { - override fun performEffect(harness: CastingHarness): Boolean { - this.spell.cast(harness.ctx) - if (awardStat) - harness.ctx.caster.awardStat(HexStatistics.SPELLS_CAST) - - return false - } - } - - data class ConsumeMedia(val amount: Int) : OperatorSideEffect() { - override fun performEffect(harness: CastingHarness): Boolean { - val overcastOk = harness.ctx.canOvercast - val leftoverMedia = harness.withdrawMedia(this.amount, overcastOk) - if (leftoverMedia > 0 && !overcastOk) { - harness.ctx.caster.sendSystemMessage("hexcasting.message.cant_overcast".asTranslatedComponent) - } - return leftoverMedia > 0 - } - } - - data class Particles(val spray: ParticleSpray) : OperatorSideEffect() { - override fun performEffect(harness: CastingHarness): Boolean { - this.spray.sprayParticles(harness.ctx.world, harness.getColorizer()) - - return false - } - } - - data class DoMishap(val mishap: Mishap, val errorCtx: Mishap.Context) : OperatorSideEffect() { - override fun performEffect(harness: CastingHarness): Boolean { - val msg = mishap.errorMessage(harness.ctx, errorCtx); - if (harness.ctx.spellCircle != null) { - val tile = harness.ctx.world.getBlockEntity(harness.ctx.spellCircle.impetusPos) - if (tile is BlockEntityAbstractImpetus) { - tile.lastMishap = msg - tile.setChanged() - } - } else { - // for now - harness.ctx.caster.sendSystemMessage(msg) - } - - val spray = mishap.particleSpray(harness.ctx) - val color = mishap.accentColor(harness.ctx, errorCtx) - spray.sprayParticles(harness.ctx.world, color) - spray.sprayParticles( - harness.ctx.world, - FrozenColorizer( - ItemStack(HexItems.DYE_COLORIZERS[DyeColor.RED]!!), - Util.NIL_UUID - ) - ) - - mishap.execute(harness.ctx, errorCtx, harness.stack) - - return true - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/BooleanIota.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/BooleanIota.java deleted file mode 100644 index 54e3f2be..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/BooleanIota.java +++ /dev/null @@ -1,68 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.api.utils.HexUtils; -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.ChatFormatting; -import net.minecraft.nbt.ByteTag; -import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerLevel; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class BooleanIota extends Iota { - public BooleanIota(boolean d) { - super(HexIotaTypes.BOOLEAN, d); - } - - public boolean getBool() { - return (boolean) this.payload; - } - - @Override - public boolean isTruthy() { - return this.getBool(); - } - - @Override - public boolean toleratesOther(Iota that) { - return typesMatch(this, that) - && that instanceof BooleanIota b - && this.getBool() == b.getBool(); - } - - @Override - public @NotNull Tag serialize() { - // there is no boolean tag :( - return ByteTag.valueOf(this.getBool()); - } - - public static IotaType TYPE = new IotaType<>() { - @Nullable - @Override - public BooleanIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return BooleanIota.deserialize(tag); - } - - @Override - public Component display(Tag tag) { - return BooleanIota.display(BooleanIota.deserialize(tag).getBool()); - } - - @Override - public int color() { - // We can't set red or green ... so do yellow, I guess - return 0xff_ffff55; - } - }; - - public static BooleanIota deserialize(Tag tag) throws IllegalArgumentException { - var dtag = HexUtils.downcast(tag, ByteTag.TYPE); - return new BooleanIota(dtag.getAsByte() != 0); - } - - public static Component display(boolean b) { - return Component.translatable(b ? "hexcasting.tooltip.boolean_true" : "hexcasting.tooltip.boolean_false") - .withStyle(b ? ChatFormatting.DARK_GREEN : ChatFormatting.DARK_RED); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/DoubleIota.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/DoubleIota.java deleted file mode 100644 index 288501f7..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/DoubleIota.java +++ /dev/null @@ -1,71 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.api.utils.HexUtils; -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.ChatFormatting; -import net.minecraft.nbt.DoubleTag; -import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.Component; -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; - - public DoubleIota(double d) { - super(HexIotaTypes.DOUBLE, d); - } - - public double getDouble() { - return HexUtils.fixNAN((Double) this.payload); - } - - @Override - public boolean isTruthy() { - return this.getDouble() != 0.0; - } - - @Override - public boolean toleratesOther(Iota that) { - return typesMatch(this, that) - && that instanceof DoubleIota dd - && tolerates(this.getDouble(), dd.getDouble()); - } - - public static boolean tolerates(double a, double b) { - return Math.abs(a - b) < TOLERANCE; - } - - @Override - public @NotNull Tag serialize() { - return DoubleTag.valueOf(this.getDouble()); - } - - public static IotaType TYPE = new IotaType<>() { - @Nullable - @Override - public DoubleIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return DoubleIota.deserialize(tag); - } - - @Override - public Component display(Tag tag) { - return DoubleIota.display(DoubleIota.deserialize(tag).getDouble()); - } - - @Override - public int color() { - return 0xff_55ff55; - } - }; - - public static DoubleIota deserialize(Tag tag) throws IllegalArgumentException { - var dtag = HexUtils.downcast(tag, DoubleTag.TYPE); - return new DoubleIota(dtag.getAsDouble()); - } - - public static Component display(double d) { - return Component.literal(String.format("%.2f", d)).withStyle(ChatFormatting.GREEN); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/EntityIota.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/EntityIota.java deleted file mode 100644 index 7c5b0be6..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/EntityIota.java +++ /dev/null @@ -1,84 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.api.utils.HexUtils; -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.ChatFormatting; -import net.minecraft.nbt.CompoundTag; -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.world.entity.Entity; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class EntityIota extends Iota { - public EntityIota(@NotNull Entity e) { - super(HexIotaTypes.ENTITY, e); - } - - public Entity getEntity() { - return (Entity) this.payload; - } - - @Override - public boolean toleratesOther(Iota that) { - return typesMatch(this, that) - && that instanceof EntityIota dent - && this.getEntity() == dent.getEntity(); - } - - @Override - public boolean isTruthy() { - return true; - } - - @Override - public @NotNull - Tag serialize() { - var out = new CompoundTag(); - out.putUUID("uuid", this.getEntity().getUUID()); - out.putString("name", Component.Serializer.toJson(this.getEntity().getName())); - return out; - } - - @Override - public Component display() { - return this.getEntity().getName().copy().withStyle(ChatFormatting.AQUA); - } - - public static IotaType TYPE = new IotaType<>() { - @Nullable - @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); - } - - @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.Serializer.fromJsonLenient(nameJson).withStyle(ChatFormatting.AQUA); - } - - @Override - public int color() { - return 0xff_55ffff; - } - }; -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/GarbageIota.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/GarbageIota.java deleted file mode 100644 index 4d480f53..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/GarbageIota.java +++ /dev/null @@ -1,63 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.ChatFormatting; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.Tag; -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; - -/** - * 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 { - 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() { - // 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); - } - - @Override - public boolean isTruthy() { - return false; - } - - @Override - public boolean toleratesOther(Iota that) { - return typesMatch(this, that); - } - - @Override - public @NotNull Tag serialize() { - return new CompoundTag(); - } - - public static IotaType TYPE = new IotaType<>() { - @Nullable - @Override - public GarbageIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return new GarbageIota(); - } - - @Override - public Component display(Tag tag) { - return DISPLAY; - } - - @Override - public int color() { - return 0xff_505050; - } - }; -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/Iota.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/Iota.java deleted file mode 100644 index 90489361..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/Iota.java +++ /dev/null @@ -1,56 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.Component; -import org.jetbrains.annotations.NotNull; - -public abstract class Iota { - @NotNull - protected final Object payload; - @NotNull - protected final IotaType type; - - protected Iota(@NotNull IotaType type, @NotNull Object payload) { - this.type = type; - this.payload = payload; - } - - public @NotNull IotaType getType() { - return this.type; - } - - abstract public boolean isTruthy(); - - /** - * Compare this to another object, within a tolerance. - */ - abstract protected boolean toleratesOther(Iota that); - - /** - * Serialize this under the {@code data} tag. - *

- * You probably don't want to call this directly; use {@link HexIotaTypes#serialize}. - */ - abstract public @NotNull Tag serialize(); - - public Component display() { - return this.type.display(this.serialize()); - } - - /** - * Helper method to see if two iotas have the same type. - */ - public static boolean typesMatch(Iota a, Iota b) { - var resA = HexIotaTypes.REGISTRY.getKey(a.getType()); - var resB = HexIotaTypes.REGISTRY.getKey(b.getType()); - return resA != null && resA.equals(resB); - } - - /** - * Helper method to see if either iota tolerates the other. - */ - public static boolean tolerates(Iota a, Iota b) { - return a.toleratesOther(b) || b.toleratesOther(a); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/IotaType.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/IotaType.java deleted file mode 100644 index f40f024c..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/IotaType.java +++ /dev/null @@ -1,44 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextColor; -import net.minecraft.server.level.ServerLevel; - -import javax.annotation.Nullable; - -// 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()))); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/ListIota.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/ListIota.java deleted file mode 100644 index 69f7f3a4..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/ListIota.java +++ /dev/null @@ -1,117 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.api.spell.SpellList; -import at.petrak.hexcasting.api.utils.HexUtils; -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.ChatFormatting; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.Tag; -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.ArrayList; -import java.util.List; - -/** - * This is a wrapper for {@link SpellList}. - */ -public class ListIota extends Iota { - public ListIota(@NotNull SpellList list) { - super(HexIotaTypes.LIST, list); - } - - public ListIota(@NotNull List list) { - this(new SpellList.LList(list)); - } - - public SpellList getList() { - return (SpellList) this.payload; - } - - @Override - public boolean isTruthy() { - return this.getList().getNonEmpty(); - } - - @Override - public boolean toleratesOther(Iota that) { - if (!typesMatch(this, that)) { - return false; - } - var a = this.getList(); - if (!(that instanceof ListIota list)) { - return false; - } - var b = list.getList(); - - SpellList.SpellListIterator aIter = a.iterator(), bIter = b.iterator(); - for (; ; ) { - if (!aIter.hasNext() && !bIter.hasNext()) { - // we ran out together! - return true; - } - if (aIter.hasNext() != bIter.hasNext()) { - // one remains full before the other - return false; - } - Iota x = aIter.next(), y = bIter.next(); - if (!Iota.tolerates(x, y)) { - return false; - } - } - } - - @Override - public @NotNull Tag serialize() { - var out = new ListTag(); - for (var subdatum : this.getList()) { - out.add(HexIotaTypes.serialize(subdatum)); - } - return out; - } - - 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 = HexIotaTypes.deserialize(csub, world); - if (subiota == null) { - return null; - } - out.add(subiota); - } - - return new ListIota(out); - } - - @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(HexIotaTypes.getDisplay(csub)); - - if (i < list.size() - 1) { - out.append(", "); - } - } - return Component.translatable("hexcasting.tooltip.list_contents", out).withStyle(ChatFormatting.DARK_PURPLE); - } - - @Override - public int color() { - return 0xff_aa00aa; - } - }; -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/NullIota.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/NullIota.java deleted file mode 100644 index 30ab1b2b..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/NullIota.java +++ /dev/null @@ -1,59 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.ChatFormatting; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerLevel; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * An iota with no data associated with it. - */ -public class NullIota extends Iota { - 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); - } - - @Override - public boolean isTruthy() { - return false; - } - - @Override - public boolean toleratesOther(Iota that) { - return typesMatch(this, that); - } - - @Override - public @NotNull Tag serialize() { - return new CompoundTag(); - } - - public static IotaType TYPE = new IotaType<>() { - @Nullable - @Override - public NullIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return new NullIota(); - } - - @Override - public Component display(Tag tag) { - return DISPLAY; - } - - @Override - public int color() { - return 0xff_aaaaaa; - } - }; -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/PatternIota.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/PatternIota.java deleted file mode 100644 index f7a28597..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/PatternIota.java +++ /dev/null @@ -1,82 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.api.spell.math.HexPattern; -import at.petrak.hexcasting.api.utils.HexUtils; -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.ChatFormatting; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerLevel; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class PatternIota extends Iota { - public PatternIota(@NotNull HexPattern pattern) { - super(HexIotaTypes.PATTERN, pattern); - } - - public HexPattern getPattern() { - return (HexPattern) this.payload; - } - - protected PatternIota(@NotNull IotaType type, @NotNull Object payload) { - super(type, payload); - } - - @Override - public boolean isTruthy() { - return true; - } - - @Override - public boolean toleratesOther(Iota that) { - return typesMatch(this, that) - && that instanceof PatternIota piota - && this.getPattern().anglesSignature().equals(piota.getPattern().anglesSignature()); - } - - @Override - public @NotNull Tag serialize() { - return this.getPattern().serializeToNBT(); - } - - - public static IotaType TYPE = new IotaType<>() { - @Nullable - @Override - public PatternIota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return PatternIota.deserialize(tag); - } - - @Override - public Component display(Tag tag) { - return PatternIota.display(PatternIota.deserialize(tag).getPattern()); - } - - @Override - public int color() { - return 0xff_ffaa00; - } - }; - - 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) { - var bob = new StringBuilder(); - bob.append(pat.getStartDir()); - - var sig = pat.anglesSignature(); - if (!sig.isEmpty()) { - bob.append(" "); - bob.append(sig); - } - return Component.translatable("hexcasting.tooltip.pattern_iota", - Component.literal(bob.toString()).withStyle(ChatFormatting.WHITE)) - .withStyle(ChatFormatting.GOLD); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/Vec3Iota.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/Vec3Iota.java deleted file mode 100644 index 1babae96..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/iota/Vec3Iota.java +++ /dev/null @@ -1,78 +0,0 @@ -package at.petrak.hexcasting.api.spell.iota; - -import at.petrak.hexcasting.api.utils.HexUtils; -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import net.minecraft.ChatFormatting; -import net.minecraft.nbt.LongArrayTag; -import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class Vec3Iota extends Iota { - public Vec3Iota(@NotNull Vec3 datum) { - super(HexIotaTypes.VEC3, datum); - } - - public Vec3 getVec3() { - var v = (Vec3) this.payload; - return new Vec3( - HexUtils.fixNAN(v.x), - HexUtils.fixNAN(v.y), - HexUtils.fixNAN(v.z) - ); - } - - @Override - public boolean isTruthy() { - var v = this.getVec3(); - return v.x != 0.0 && v.y != 0.0 && v.z != 0.0; - } - - @Override - public boolean toleratesOther(Iota that) { - return typesMatch(this, that) - && that instanceof Vec3Iota viota - && this.getVec3().distanceToSqr(viota.getVec3()) < DoubleIota.TOLERANCE * DoubleIota.TOLERANCE; - } - - @Override - public @NotNull Tag serialize() { - return HexUtils.serializeToNBT(this.getVec3()); - } - - public static IotaType TYPE = new IotaType<>() { - @Nullable - @Override - public Vec3Iota deserialize(Tag tag, ServerLevel world) throws IllegalArgumentException { - return Vec3Iota.deserialize(tag); - } - - @Override - public Component display(Tag tag) { - return Vec3Iota.display(Vec3Iota.deserialize(tag).getVec3()); - } - - @Override - public int color() { - return 0xff_ff3030; - } - }; - - public static Vec3Iota deserialize(Tag tag) throws IllegalArgumentException { - var lat = HexUtils.downcast(tag, LongArrayTag.TYPE); - var vec = HexUtils.vecFromNBT(lat.getAsLongArray()); - 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); - } - - public static Component display(Vec3 v) { - return display(v.x, v.y, v.z); - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/EulerPathFinder.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/EulerPathFinder.kt deleted file mode 100644 index efdbe780..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/EulerPathFinder.kt +++ /dev/null @@ -1,88 +0,0 @@ -package at.petrak.hexcasting.api.spell.math - -import at.petrak.hexcasting.api.HexAPI -import java.util.* -import kotlin.random.Random - -object EulerPathFinder { - /** - * Find an alternative way to draw the given pattern, based on a random seed. - */ - @JvmStatic - @JvmOverloads - fun findAltDrawing(original: HexPattern, seed: Long, rule: (HexPattern) -> Boolean = { true }): HexPattern { - // http://www.graph-magics.com/articles/euler.php - - val rand = Random(seed) - - // Don't try for too long, in case all paths are exhausted. - // Unlikely to ever actually reach this limit, and can only happen if the same pattern - // is registered both as a Great Pattern and as a special handler or regular pattern, - // or if the random seed has some sort of strange repeating property to it. - var iterationsLeft = 100 - var path: HexPattern - while (iterationsLeft > 0) { - iterationsLeft-- - path = walkPath(original, rand) - if (rule(path)) { - return path - } - } - - HexAPI.LOGGER.warn("Didn't find alternate path for {} in time", original) - return original - } - - private fun walkPath(original: HexPattern, rand: Random): HexPattern { - val graph = toGraph(original) - val oddNodes = graph.filter { (_, dirs) -> dirs.size % 2 == 1 } - var current: HexCoord = when (oddNodes.size) { - // An euler-walkable graph must have 0 odd nodes and start anywhere... - 0 -> graph.keys.random(rand) - // or two, and start at one of them - 2 -> oddNodes.keys.random(rand) - else -> throw IllegalStateException() - } - - val stack = Stack() - val out = mutableListOf() - do { - val exits = graph[current]!! - if (exits.isEmpty()) { - out.add(current) - current = stack.pop() - } else { - stack.push(current) - // This is where the random part happens, mostly - val burnDir = exits.random(rand) - exits.remove(burnDir) - graph[current + burnDir]?.remove(burnDir * HexAngle.BACK) - current += burnDir - } - } while (graph[current]?.isNotEmpty() == true || stack.isNotEmpty()) - out.add(current) - - val dirs = out.zipWithNext { a, b -> a.immediateDelta(b)!! } - val angles = dirs.zipWithNext { a, b -> b.angleFrom(a) } - return HexPattern(dirs[0], angles.toMutableList()) - } - - private fun toGraph(pat: HexPattern): HashMap> { - val graph = HashMap>() - - var compass: HexDir = pat.startDir - var cursor = HexCoord.Origin - for (a in pat.angles) { - // i hate kotlin - graph.getOrPut(cursor) { EnumSet.noneOf(HexDir::class.java) }.add(compass) - graph.getOrPut(cursor + compass) { EnumSet.noneOf(HexDir::class.java) }.add(compass * HexAngle.BACK) - - cursor += compass - compass *= a - } - graph.getOrPut(cursor) { EnumSet.noneOf(HexDir::class.java) }.add(compass) - graph.getOrPut(cursor + compass) { EnumSet.noneOf(HexDir::class.java) }.add(compass * HexAngle.BACK) - - return graph - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexAngle.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexAngle.kt deleted file mode 100644 index 4565329b..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexAngle.kt +++ /dev/null @@ -1,8 +0,0 @@ -package at.petrak.hexcasting.api.spell.math - -enum class HexAngle { - FORWARD, RIGHT, RIGHT_BACK, BACK, LEFT_BACK, LEFT; - - fun rotatedBy(a: HexAngle) = values()[(this.ordinal + a.ordinal) % values().size] - operator fun times(a: HexAngle) = this.rotatedBy(a) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexCoord.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexCoord.kt deleted file mode 100644 index 82506f0e..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexCoord.kt +++ /dev/null @@ -1,62 +0,0 @@ -package at.petrak.hexcasting.api.spell.math - -import kotlin.math.abs -import kotlin.math.max -import kotlin.math.min - -/** - * Uses axial coordinates as per https://www.redblobgames.com/grids/hexagons/ - */ -data class HexCoord(val q: Int, val r: Int) { - fun s(): Int = this.q - this.r - - fun shiftedBy(x: HexCoord): HexCoord = HexCoord(this.q + x.q, this.r + x.r) - - fun shiftedBy(d: HexDir) = this.shiftedBy(d.asDelta()) - - fun delta(x: HexCoord): HexCoord = HexCoord(this.q - x.q, this.r - x.r) - - operator fun plus(x: HexCoord) = this.shiftedBy(x) - operator fun plus(d: HexDir) = this.shiftedBy(d) - operator fun minus(x: HexCoord) = this.delta(x) - - fun distanceTo(x: HexCoord) = - (abs(this.q - x.q) + abs(this.q + this.r - x.q - x.r) + abs(this.r - x.r)) / 2 - - fun rangeAround(radius: Int): Iterator = RingIter(this, radius) - - /** Get the direction that would bring you from this to its neighbor */ - fun immediateDelta(neighbor: HexCoord): HexDir? = - when (neighbor - this) { - HexCoord(1, 0) -> HexDir.EAST - HexCoord(0, 1) -> HexDir.SOUTH_EAST - HexCoord(-1, 1) -> HexDir.SOUTH_WEST - HexCoord(-1, 0) -> HexDir.WEST - HexCoord(0, -1) -> HexDir.NORTH_WEST - HexCoord(1, -1) -> HexDir.NORTH_EAST - else -> null - } - - // https://docs.rs/hex2d/1.1.0/src/hex2d/lib.rs.html#785 - private class RingIter(val center: HexCoord, val radius: Int) : Iterator { - var q: Int = -radius - var r: Int = max(-radius, 0) - - override fun hasNext(): Boolean = r <= radius + min(0, -q) || q < radius - - override fun next(): HexCoord { - if (r > radius + min(0, -q)) { - q++ - r = -radius + max(0, -q) - } - val out = HexCoord(center.q + q, center.r + r) - r++ - return out - } - } - - companion object { - @JvmStatic - val Origin = HexCoord(0, 0) - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexDir.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexDir.kt deleted file mode 100644 index afef8666..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexDir.kt +++ /dev/null @@ -1,34 +0,0 @@ -package at.petrak.hexcasting.api.spell.math - -import at.petrak.hexcasting.api.utils.getSafe - -enum class HexDir { - NORTH_EAST, EAST, SOUTH_EAST, SOUTH_WEST, WEST, NORTH_WEST; - - fun rotatedBy(a: HexAngle): HexDir = - values()[(this.ordinal + a.ordinal).mod(values().size)] - - operator fun times(a: HexAngle) = this.rotatedBy(a) - - fun angleFrom(other: HexDir): HexAngle = - HexAngle.values()[(this.ordinal - other.ordinal).mod(HexAngle.values().size)] - - operator fun minus(other: HexDir) = this.angleFrom(other) - - fun asDelta(): HexCoord = - when (this) { - NORTH_EAST -> HexCoord(1, -1) - EAST -> HexCoord(1, 0) - SOUTH_EAST -> HexCoord(0, 1) - SOUTH_WEST -> HexCoord(-1, 1) - WEST -> HexCoord(-1, 0) - NORTH_WEST -> HexCoord(0, -1) - } - - companion object { - @JvmStatic - fun fromString(key: String): HexDir { - return values().getSafe(key, WEST) - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexPattern.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexPattern.kt deleted file mode 100644 index d05d6874..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexPattern.kt +++ /dev/null @@ -1,171 +0,0 @@ -package at.petrak.hexcasting.api.spell.math - -import at.petrak.hexcasting.api.utils.NBTBuilder -import at.petrak.hexcasting.api.utils.coordToPx -import at.petrak.hexcasting.api.utils.findCenter -import at.petrak.hexcasting.api.utils.getSafe -import net.minecraft.nbt.CompoundTag -import net.minecraft.nbt.Tag -import net.minecraft.world.phys.Vec2 - -/** - * Sequence of angles to define a pattern traced. - */ -data class HexPattern(public val startDir: HexDir, public val angles: MutableList = arrayListOf()) { - /** - * @return True if it successfully appended, false if not. - */ - fun tryAppendDir(newDir: HexDir): Boolean { - // Two restrictions: - // - No adding a pos/dir pair we previously added - // - No backtracking - val linesSeen = mutableSetOf>() - - var compass = this.startDir - var cursor = HexCoord.Origin - for (a in this.angles) { - linesSeen.add(cursor to compass) - // Line from here to there also blocks there to here - linesSeen.add(cursor + compass to compass.rotatedBy(HexAngle.BACK)) - cursor += compass - compass *= a - } - cursor += compass - - val potentialNewLine = cursor to newDir - if (potentialNewLine in linesSeen) return false - val nextAngle = newDir - compass - if (nextAngle == HexAngle.BACK) return false - - this.angles.add(nextAngle) - return true - } - - @JvmOverloads - fun positions(start: HexCoord = HexCoord.Origin): List { - val out: ArrayList = ArrayList(this.angles.size + 2) - out.add(start) - var compass: HexDir = this.startDir - var cursor = start - for (a in this.angles) { - cursor += compass - out.add(cursor) - compass *= a - } - out.add(cursor + compass) - return out - } - - fun directions(): List { - val out = ArrayList(this.angles.size + 1) - out.add(this.startDir) - - var compass: HexDir = this.startDir - for (a in this.angles) { - compass *= a - out.add(compass) - } - return out - } - - 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 { - for (a in this@HexPattern.angles) { - append( - when (a) { - HexAngle.FORWARD -> "w" - HexAngle.RIGHT -> "e" - HexAngle.RIGHT_BACK -> "d" - HexAngle.BACK -> "s" - HexAngle.LEFT_BACK -> "a" - HexAngle.LEFT -> "q" - } - ) - } - } - } - - /** - * Return the "center of mass" of the pattern. - * Drawing the pattern with the returned vector as the origin will center the pattern around it. - */ - @JvmOverloads - fun getCenter(hexRadius: Float, origin: HexCoord = HexCoord.Origin): Vec2 { - val originPx = coordToPx(origin, hexRadius, Vec2.ZERO) - val points = this.toLines(hexRadius, originPx) - return findCenter(points) - } - - - /** - * Convert a hex pattern into a sequence of straight linePoints spanning its points. - */ - fun toLines(hexSize: Float, origin: Vec2): List = - this.positions().map { coordToPx(it, hexSize, origin) } - - fun sigsEqual(that: HexPattern) = this.anglesSignature() == that.anglesSignature() - - override fun toString(): String = buildString { - append("HexPattern[") - append(this@HexPattern.startDir) - append(", ") - append(this@HexPattern.anglesSignature()) - append("]") - } - - companion object { - const val TAG_START_DIR = "start_dir" - const val TAG_ANGLES = "angles" - - @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()) - } - - @JvmStatic - fun fromAngles(signature: String, startDir: HexDir): HexPattern { - val out = HexPattern(startDir) - var compass = startDir - - for ((idx, c) in signature.withIndex()) { - val angle = when (c) { - 'w' -> HexAngle.FORWARD - 'e' -> HexAngle.RIGHT - 'd' -> HexAngle.RIGHT_BACK - // for completeness ... - 's' -> HexAngle.BACK - 'a' -> HexAngle.LEFT_BACK - 'q' -> HexAngle.LEFT - else -> throw IllegalArgumentException("Cannot match $c at idx $idx to a direction") - } - compass *= angle - val success = out.tryAppendDir(compass) - if (!success) { - throw IllegalStateException("Adding the angle $c at index $idx made the pattern invalid by looping back on itself") - } - } - return out - } - - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/Mishap.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/Mishap.kt deleted file mode 100644 index 44ee54f9..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/Mishap.kt +++ /dev/null @@ -1,142 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.mod.HexTags -import at.petrak.hexcasting.api.spell.Action -import at.petrak.hexcasting.api.spell.ParticleSpray -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.casting.ResolvedPatternType -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.math.HexPattern -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import at.petrak.hexcasting.api.utils.lightPurple -import at.petrak.hexcasting.common.lib.HexItems -import at.petrak.hexcasting.ktxt.* -import at.petrak.hexcasting.xplat.IXplatAbstractions -import net.minecraft.Util -import net.minecraft.core.BlockPos -import net.minecraft.network.chat.Component -import net.minecraft.world.InteractionHand -import net.minecraft.world.damagesource.DamageSource -import net.minecraft.world.entity.LivingEntity -import net.minecraft.world.entity.item.ItemEntity -import net.minecraft.world.item.DyeColor -import net.minecraft.world.item.ItemStack -import net.minecraft.world.phys.Vec3 - -abstract class Mishap : Throwable() { - /** Mishaps spray half-red, half-this-color. */ - abstract fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer - - open fun particleSpray(ctx: CastingContext): ParticleSpray { - return ParticleSpray(ctx.position.add(0.0, 0.2, 0.0), Vec3(0.0, 2.0, 0.0), 0.2, Math.PI / 4, 40) - } - - open fun resolutionType(ctx: CastingContext): ResolvedPatternType = ResolvedPatternType.ERRORED - - /** - * Execute the actual effect, not any sfx. - * - * You can also mess up the stack with this. - */ - abstract fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) - - abstract fun errorMessage(ctx: CastingContext, errorCtx: Context): Component - - // Useful helper functions - - protected fun dyeColor(color: DyeColor): FrozenColorizer = - FrozenColorizer( - ItemStack(HexItems.DYE_COLORIZERS[color]!!), - Util.NIL_UUID - ) - - protected fun error(stub: String, vararg args: Any): Component = - "hexcasting.mishap.$stub".asTranslatedComponent(*args) - - protected fun actionName(action: Action?): Component = - action?.displayName ?: "hexcasting.spell.null".asTranslatedComponent.lightPurple - - protected fun yeetHeldItemsTowards(ctx: CastingContext, targetPos: Vec3) { - // Knock the player's items out of their hands - val items = mutableListOf() - for (hand in InteractionHand.values()) { - if (hand != ctx.castingHand || ctx.caster.getItemInHand(hand).`is`(HexTags.Items.STAVES)) { - items.add(ctx.caster.getItemInHand(hand).copy()) - ctx.caster.setItemInHand(hand, ItemStack.EMPTY) - } - } - - val delta = targetPos.subtract(ctx.position).normalize().scale(0.5) - - for (item in items) { - yeetItem(item, ctx, delta) - } - } - - protected fun yeetHeldItem(ctx: CastingContext, hand: InteractionHand) { - val item = ctx.caster.getItemInHand(hand).copy() - if (hand == ctx.castingHand && IXplatAbstractions.INSTANCE.findHexHolder(item) != null) - return - ctx.caster.setItemInHand(hand, ItemStack.EMPTY) - - val delta = ctx.caster.lookAngle.scale(0.5) - yeetItem(item, ctx, delta) - } - - protected fun yeetItem(stack: ItemStack, ctx: CastingContext, delta: Vec3) { - val entity = ItemEntity( - ctx.world, - ctx.position.x, ctx.position.y, ctx.position.z, - stack, - delta.x + (Math.random() - 0.5) * 0.1, - delta.y + (Math.random() - 0.5) * 0.1, - delta.z + (Math.random() - 0.5) * 0.1 - ) - entity.setPickUpDelay(40) - ctx.world.addWithUUID(entity) - } - - protected fun blockAtPos(ctx: CastingContext, pos: BlockPos): Component { - return ctx.world.getBlockState(pos).block.name - } - - data class Context(val pattern: HexPattern, val action: Action?) - - companion object { - fun trulyHurt(entity: LivingEntity, source: DamageSource, amount: Float) { - entity.setHurtWithStamp(source, entity.level.gameTime) - - val targetHealth = entity.health - amount - if (entity.invulnerableTime > 10) { - val lastHurt = entity.lastHurt - if (lastHurt < amount) - entity.invulnerableTime = 0 - else - entity.lastHurt -= amount - } - if (!entity.hurt(source, amount) && - !entity.isInvulnerableTo(source) && - !entity.level.isClientSide && - !entity.isDeadOrDying - ) { - - // Ok, if you REALLY don't want to play nice... - entity.health = targetHealth - entity.markHurt() - - if (entity.isDeadOrDying) { - if (!entity.checkTotemDeathProtection(source)) { - val sound = entity.deathSoundAccessor - if (sound != null) { - entity.playSound(sound, entity.soundVolumeAccessor, entity.voicePitch) - } - entity.die(source) - } - } else { - entity.playHurtSound(source) - } - } - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapAlreadyBrainswept.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapAlreadyBrainswept.kt deleted file mode 100644 index d23b1092..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapAlreadyBrainswept.kt +++ /dev/null @@ -1,25 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.misc.HexDamageSources -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.ParticleSpray -import at.petrak.hexcasting.api.spell.casting.CastingContext -import net.minecraft.world.entity.npc.Villager -import net.minecraft.world.item.DyeColor - -class MishapAlreadyBrainswept(val villager: Villager) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.GREEN) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - villager.hurt(HexDamageSources.overcastDamageFrom(ctx.caster), villager.health) - } - - override fun particleSpray(ctx: CastingContext) = - ParticleSpray.burst(villager.eyePosition, 1.0) - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("already_brainswept") - -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadBlock.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadBlock.kt deleted file mode 100644 index 822515c1..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadBlock.kt +++ /dev/null @@ -1,34 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.ParticleSpray -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import net.minecraft.core.BlockPos -import net.minecraft.network.chat.Component -import net.minecraft.world.item.DyeColor -import net.minecraft.world.level.Explosion -import net.minecraft.world.phys.Vec3 - -class MishapBadBlock(val pos: BlockPos, val expected: Component) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.LIME) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - ctx.world.explode(null, pos.x + 0.5, pos.y + 0.5, pos.z + 0.5, 0.25f, Explosion.BlockInteraction.NONE) - } - - override fun particleSpray(ctx: CastingContext) = - ParticleSpray.burst(Vec3.atCenterOf(pos), 1.0) - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("bad_block", expected, this.pos.toShortString(), blockAtPos(ctx, this.pos)) - - companion object { - @JvmStatic - fun of(pos: BlockPos, stub: String): MishapBadBlock { - return MishapBadBlock(pos, "hexcasting.mishap.bad_block.$stub".asTranslatedComponent) - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadBrainsweep.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadBrainsweep.kt deleted file mode 100644 index 7f121c18..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadBrainsweep.kt +++ /dev/null @@ -1,27 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.misc.HexDamageSources -import at.petrak.hexcasting.api.spell.ParticleSpray -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import net.minecraft.core.BlockPos -import net.minecraft.world.entity.npc.Villager -import net.minecraft.world.item.DyeColor -import net.minecraft.world.phys.Vec3 - -class MishapBadBrainsweep(val villager: Villager, val pos: BlockPos) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.GREEN) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - trulyHurt(villager, HexDamageSources.overcastDamageFrom(ctx.caster), villager.health) - } - - override fun particleSpray(ctx: CastingContext): ParticleSpray { - return ParticleSpray.burst(Vec3.atCenterOf(pos), 1.0) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("bad_brainsweep", blockAtPos(ctx, this.pos)) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadEntity.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadEntity.kt deleted file mode 100644 index ba3cbcec..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadEntity.kt +++ /dev/null @@ -1,33 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.utils.aqua -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import net.minecraft.network.chat.Component -import net.minecraft.world.entity.Entity -import net.minecraft.world.entity.item.ItemEntity -import net.minecraft.world.item.DyeColor - -class MishapBadEntity(val entity: Entity, val wanted: Component) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BROWN) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - yeetHeldItemsTowards(ctx, entity.position()) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("bad_entity", actionName(errorCtx.action), wanted, entity.displayName.plainCopy().aqua) - - companion object { - @JvmStatic - fun of(entity: Entity, stub: String): Mishap { - val component = "hexcasting.mishap.bad_item.$stub".asTranslatedComponent - if (entity is ItemEntity) - return MishapBadItem(entity, component) - return MishapBadEntity(entity, component) - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadItem.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadItem.kt deleted file mode 100644 index e147e634..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadItem.kt +++ /dev/null @@ -1,30 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import net.minecraft.network.chat.Component -import net.minecraft.world.entity.item.ItemEntity -import net.minecraft.world.item.DyeColor - -class MishapBadItem(val item: ItemEntity, val wanted: Component) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BROWN) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - item.deltaMovement = item.deltaMovement.add((Math.random() - 0.5) * 0.05, 0.75, (Math.random() - 0.5) * 0.05) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = if (item.item.isEmpty) - error("no_item", actionName(errorCtx.action), wanted) - else - error("bad_item", actionName(errorCtx.action), wanted, item.item.count, item.item.displayName) - - companion object { - @JvmStatic - fun of(item: ItemEntity, stub: String): MishapBadItem { - return MishapBadItem(item, "hexcasting.mishap.bad_item.$stub".asTranslatedComponent) - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadOffhandItem.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadOffhandItem.kt deleted file mode 100644 index 71dda350..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapBadOffhandItem.kt +++ /dev/null @@ -1,31 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import net.minecraft.network.chat.Component -import net.minecraft.world.InteractionHand -import net.minecraft.world.item.DyeColor -import net.minecraft.world.item.ItemStack - -class MishapBadOffhandItem(val item: ItemStack, val hand: InteractionHand, val wanted: Component) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BROWN) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - yeetHeldItem(ctx, hand) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = if (item.isEmpty) - error("no_item.offhand", actionName(errorCtx.action), wanted) - else - error("bad_item.offhand", actionName(errorCtx.action), wanted, item.count, item.displayName) - - companion object { - @JvmStatic - fun of(item: ItemStack, hand: InteractionHand, stub: String, vararg args: Any): MishapBadOffhandItem { - return MishapBadOffhandItem(item, hand, "hexcasting.mishap.bad_item.$stub".asTranslatedComponent(*args)) - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapDisallowedSpell.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapDisallowedSpell.kt deleted file mode 100644 index 65da779f..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapDisallowedSpell.kt +++ /dev/null @@ -1,21 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.casting.ResolvedPatternType -import net.minecraft.world.item.DyeColor - -class MishapDisallowedSpell(val type: String = "disallowed") : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BLACK) - - override fun resolutionType(ctx: CastingContext) = ResolvedPatternType.INVALID - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - // NO-OP - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error(type, actionName(errorCtx.action)) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapDivideByZero.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapDivideByZero.kt deleted file mode 100644 index 7b9ec707..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapDivideByZero.kt +++ /dev/null @@ -1,75 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.misc.HexDamageSources -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.DoubleIota -import at.petrak.hexcasting.api.spell.iota.GarbageIota -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.iota.Vec3Iota -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import net.minecraft.network.chat.Component -import net.minecraft.world.item.DyeColor -import net.minecraft.world.phys.Vec3 - -class MishapDivideByZero(val operand1: Component, val operand2: Component, val suffix: String = "divide") : Mishap() { - - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.RED) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - stack.add(GarbageIota()) - trulyHurt(ctx.caster, HexDamageSources.OVERCAST, ctx.caster.health / 2) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("divide_by_zero.$suffix", operand1, operand2) - - companion object { - private const val PREFIX = "hexcasting.mishap.divide_by_zero" - - @JvmStatic - fun of(operand1: Iota, operand2: Iota, suffix: String = "divide"): MishapDivideByZero { - if (suffix == "exponent") - return MishapDivideByZero(translate(operand1), powerOf(operand2), suffix) - return MishapDivideByZero(translate(operand1), translate(operand2), suffix) - } - - @JvmStatic - fun tan(angle: DoubleIota): MishapDivideByZero { - val translatedAngle = translate(angle) - return MishapDivideByZero( - "$PREFIX.sin".asTranslatedComponent(translatedAngle), - "$PREFIX.cos".asTranslatedComponent(translatedAngle) - ) - } - - @JvmStatic - val zero - get() = "$PREFIX.zero".asTranslatedComponent - - @JvmStatic - val zerothPower - get() = "$PREFIX.zero.power".asTranslatedComponent - - @JvmStatic - val zeroVector - get() = "$PREFIX.zero.vec".asTranslatedComponent - - @JvmStatic - fun powerOf(power: Component) = "$PREFIX.power".asTranslatedComponent(power) - - @JvmStatic - fun powerOf(datum: Iota): Component = when { - datum is DoubleIota && datum.double == 0.0 -> zerothPower - else -> datum.display() - } - - @JvmStatic - fun translate(datum: Iota): Component = when { - datum is DoubleIota && datum.double == 0.0 -> zero - datum is Vec3Iota && datum.vec3 == Vec3.ZERO -> zeroVector - else -> datum.display() - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapEntityTooFarAway.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapEntityTooFarAway.kt deleted file mode 100644 index 5eb5fab7..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapEntityTooFarAway.kt +++ /dev/null @@ -1,21 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.Iota -import net.minecraft.network.chat.Component -import net.minecraft.world.entity.Entity -import net.minecraft.world.item.DyeColor - -class MishapEntityTooFarAway(val entity: Entity) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.PINK) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - // Knock the player's items out of their hands - yeetHeldItemsTowards(ctx, entity.position()) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context): Component = - error("entity_too_far", entity.displayName, actionName(errorCtx.action)) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapError.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapError.kt deleted file mode 100644 index 0f6d4666..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapError.kt +++ /dev/null @@ -1,18 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import net.minecraft.world.item.DyeColor - -class MishapError(val exception: Exception) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BLACK) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - // NO-OP - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("unknown", actionName(errorCtx.action), exception) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapEvalTooDeep.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapEvalTooDeep.kt deleted file mode 100644 index c118486f..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapEvalTooDeep.kt +++ /dev/null @@ -1,18 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import net.minecraft.world.item.DyeColor - -class MishapEvalTooDeep : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BLUE) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - ctx.caster.airSupply -= 290 - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("eval_too_deep") -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapImmuneEntity.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapImmuneEntity.kt deleted file mode 100644 index 793641f4..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapImmuneEntity.kt +++ /dev/null @@ -1,20 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.utils.aqua -import net.minecraft.world.entity.Entity -import net.minecraft.world.item.DyeColor - -class MishapImmuneEntity(val entity: Entity) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BLUE) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - yeetHeldItemsTowards(ctx, entity.position()) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("immune_entity", actionName(errorCtx.action), entity.displayName.plainCopy().aqua) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapInvalidIota.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapInvalidIota.kt deleted file mode 100644 index 1e1b6b83..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapInvalidIota.kt +++ /dev/null @@ -1,46 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.GarbageIota -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.utils.asTranslatedComponent -import net.minecraft.network.chat.Component -import net.minecraft.world.item.DyeColor - -/** - * The value failed some kind of predicate. - * - * [MishapInvalidIota.reverseIdx] is the index from the *back* of the stack. - */ -class MishapInvalidIota( - val perpetrator: Iota, - val reverseIdx: Int, - val expected: Component -) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.GRAY) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - stack[stack.size - 1 - reverseIdx] = GarbageIota(); - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error( - "invalid_value", actionName(errorCtx.action), expected, reverseIdx, - perpetrator.display() - ) - - companion object { - @JvmStatic - fun ofType(perpetrator: Iota, reverseIdx: Int, name: String): MishapInvalidIota { - return of(perpetrator, reverseIdx, "class.$name") - } - - @JvmStatic - fun of(perpetrator: Iota, reverseIdx: Int, name: String, vararg translations: Any): MishapInvalidIota { - val key = "hexcasting.mishap.invalid_value.$name" - return MishapInvalidIota(perpetrator, reverseIdx, key.asTranslatedComponent(*translations)) - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapInvalidPattern.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapInvalidPattern.kt deleted file mode 100644 index f1bee32a..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapInvalidPattern.kt +++ /dev/null @@ -1,22 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.casting.ResolvedPatternType -import at.petrak.hexcasting.api.spell.iota.GarbageIota -import at.petrak.hexcasting.api.spell.iota.Iota -import net.minecraft.world.item.DyeColor - -class MishapInvalidPattern : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.YELLOW) - - override fun resolutionType(ctx: CastingContext) = ResolvedPatternType.INVALID - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - stack.add(GarbageIota()) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("invalid_pattern") -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapInvalidSpellDatumType.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapInvalidSpellDatumType.kt deleted file mode 100644 index 49ea0825..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapInvalidSpellDatumType.kt +++ /dev/null @@ -1,21 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import net.minecraft.world.item.DyeColor - -/** - * this is bad - */ -class MishapInvalidSpellDatumType(val perpetrator: Any) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BLACK) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - // NO-OP - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("invalid_spell_datum_type", this.perpetrator.toString(), this.perpetrator.javaClass.typeName) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapLocationInWrongDimension.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapLocationInWrongDimension.kt deleted file mode 100644 index 865036da..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapLocationInWrongDimension.kt +++ /dev/null @@ -1,24 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.GarbageIota -import at.petrak.hexcasting.api.spell.iota.Iota -import net.minecraft.network.chat.Component -import net.minecraft.resources.ResourceLocation -import net.minecraft.world.item.DyeColor - -class MishapLocationInWrongDimension(val properDimension: ResourceLocation) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.MAGENTA) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - stack.add(GarbageIota()) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context): Component = - error( - "wrong_dimension", actionName(errorCtx.action!!), properDimension.toString(), - ctx.world.dimension().location().toString() - ) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapLocationTooFarAway.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapLocationTooFarAway.kt deleted file mode 100644 index f22a4dcf..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapLocationTooFarAway.kt +++ /dev/null @@ -1,21 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.iota.Vec3Iota -import net.minecraft.network.chat.Component -import net.minecraft.world.item.DyeColor -import net.minecraft.world.phys.Vec3 - -class MishapLocationTooFarAway(val location: Vec3, val type: String = "too_far") : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.MAGENTA) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - yeetHeldItemsTowards(ctx, location) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context): Component = - error("location_$type", Vec3Iota.display(location), actionName(errorCtx.action)) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapNoAkashicRecord.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapNoAkashicRecord.kt deleted file mode 100644 index 66a323f2..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapNoAkashicRecord.kt +++ /dev/null @@ -1,19 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import net.minecraft.core.BlockPos -import net.minecraft.world.item.DyeColor - -class MishapNoAkashicRecord(val pos: BlockPos) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.PURPLE) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - ctx.caster.giveExperiencePoints(-100) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("no_akashic_record", pos.toShortString()) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapNoSpellCircle.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapNoSpellCircle.kt deleted file mode 100644 index 35726671..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapNoSpellCircle.kt +++ /dev/null @@ -1,35 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.Iota -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 - -class MishapNoSpellCircle : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.LIGHT_BLUE) - - 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)) { - player.drop(item, true, false) - stacks[index] = ItemStack.EMPTY - } - } - } - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - dropAll(ctx.caster, ctx.caster.inventory.items) - dropAll(ctx.caster, ctx.caster.inventory.offhand) - dropAll(ctx.caster, ctx.caster.inventory.armor) { - !EnchantmentHelper.hasBindingCurse(it) - } - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("no_spell_circle", actionName(errorCtx.action)) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapNotEnoughArgs.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapNotEnoughArgs.kt deleted file mode 100644 index e94b1542..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapNotEnoughArgs.kt +++ /dev/null @@ -1,22 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.GarbageIota -import at.petrak.hexcasting.api.spell.iota.Iota -import net.minecraft.world.item.DyeColor - -class MishapNotEnoughArgs(val expected: Int, val got: Int) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.LIGHT_GRAY) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - repeat(expected - got) { stack.add(GarbageIota()) } - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - if (got == 0) - error("no_args", actionName(errorCtx.action), expected) - else - error("not_enough_args", actionName(errorCtx.action), expected, got) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapOthersName.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapOthersName.kt deleted file mode 100644 index fa2e16b4..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapOthersName.kt +++ /dev/null @@ -1,58 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.EntityIota -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.iota.ListIota -import net.minecraft.world.effect.MobEffectInstance -import net.minecraft.world.effect.MobEffects -import net.minecraft.world.entity.player.Player -import net.minecraft.world.item.DyeColor - -/** - * Also throwable for your *own* name, for cases like Chronicler's Gambit - */ -class MishapOthersName(val confidant: Player) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BLACK) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - val seconds = if (this.confidant == ctx.caster) 5 else 60; - ctx.caster.addEffect(MobEffectInstance(MobEffects.BLINDNESS, seconds * 20)) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - if (this.confidant == ctx.caster) - error("others_name.self") - else - error("others_name", confidant.name) - - companion object { - /** - * Return any true names found in this iota. - * - * If `caster` is non-null, it will ignore that when checking. - */ - @JvmStatic - fun getTrueNameFromDatum(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 ListIota) - poolToSearch.addAll(datumToCheck.list) - } - - return null - } - - @JvmStatic - fun getTrueNameFromArgs(datums: List, caster: Player): Player? { - return datums.firstNotNullOfOrNull { getTrueNameFromDatum(it, caster) } - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapShameOnYou.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapShameOnYou.kt deleted file mode 100644 index 8700cedf..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapShameOnYou.kt +++ /dev/null @@ -1,18 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.misc.HexDamageSources -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.Iota -import net.minecraft.world.item.DyeColor - -class MishapShameOnYou() : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.BLACK) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - Mishap.trulyHurt(ctx.caster, HexDamageSources.SHAME, 69420f) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = error("shame") -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapTooManyCloseParens.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapTooManyCloseParens.kt deleted file mode 100644 index 5420d090..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapTooManyCloseParens.kt +++ /dev/null @@ -1,20 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.casting.CastingContext -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.iota.PatternIota -import net.minecraft.world.item.DyeColor - -class MishapTooManyCloseParens : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.ORANGE) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - // TODO this is a kinda shitty mishap - stack.add(PatternIota(errorCtx.pattern)) - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("too_many_close_parens") -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapUnescapedValue.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapUnescapedValue.kt deleted file mode 100644 index f952f6d0..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapUnescapedValue.kt +++ /dev/null @@ -1,35 +0,0 @@ -package at.petrak.hexcasting.api.spell.mishaps - -import at.petrak.hexcasting.api.misc.FrozenColorizer -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.casting.CastingContext -import net.minecraft.world.item.DyeColor - -/** - * The value was a naked iota without being Considered or Retrospected. - */ -class MishapUnescapedValue( - val perpetrator: Iota -) : Mishap() { - override fun accentColor(ctx: CastingContext, errorCtx: Context): FrozenColorizer = - dyeColor(DyeColor.GRAY) - - override fun execute(ctx: CastingContext, errorCtx: Context, stack: MutableList) { - // TODO - /* - val idx = stack.indexOfLast { it.getType() == DatumType.LIST } - if (idx != -1) { - val list = stack[idx].payload as SpellList - val idxOfIota = list.indexOfFirst { it == perpetrator } - if (idxOfIota != -1) { - stack[idx] = SpellDatum.make(list.modifyAt(idxOfIota) { - SpellList.LPair(SpellDatum.make(Widget.GARBAGE), it.cdr) - }) - } - } - */ - } - - override fun errorMessage(ctx: CastingContext, errorCtx: Context) = - error("unescaped", perpetrator.display()) -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/HexUtils.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/HexUtils.kt deleted file mode 100644 index 7f65b885..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/HexUtils.kt +++ /dev/null @@ -1,274 +0,0 @@ -@file:JvmName("HexUtils") - -package at.petrak.hexcasting.api.utils - -import at.petrak.hexcasting.api.spell.iota.Iota -import at.petrak.hexcasting.api.spell.iota.ListIota -import at.petrak.hexcasting.api.spell.math.HexCoord -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes -import net.minecraft.ChatFormatting -import net.minecraft.nbt.* -import net.minecraft.network.chat.Component -import net.minecraft.network.chat.MutableComponent -import net.minecraft.network.chat.Style -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.math.absoluteValue -import kotlin.math.max -import kotlin.math.min -import kotlin.math.roundToInt -import kotlin.reflect.KProperty - -const val TAU = Math.PI * 2.0 -const val SQRT_3 = 1.7320508f - -fun Vec3.serializeToNBT(): LongArrayTag = - LongArrayTag(longArrayOf(this.x.toRawBits(), this.y.toRawBits(), this.z.toRawBits())) - -fun vecFromNBT(tag: LongArray): Vec3 = if (tag.size != 3) Vec3.ZERO else - Vec3( - Double.fromBits(tag[0]), - Double.fromBits(tag[1]), - Double.fromBits(tag[2]) - ) - -fun Vec2.serializeToNBT(): LongArrayTag = - LongArrayTag(longArrayOf(this.x.toDouble().toRawBits(), this.y.toDouble().toRawBits())) - -fun vec2FromNBT(tag: LongArray): Vec2 = if (tag.size != 2) Vec2.ZERO else - Vec2( - Double.fromBits(tag[0]).toFloat(), - Double.fromBits(tag[1]).toFloat(), - ) - -fun otherHand(hand: InteractionHand) = - if (hand == InteractionHand.MAIN_HAND) InteractionHand.OFF_HAND else InteractionHand.MAIN_HAND - -fun fixNAN(n: Double): Double = if (n.isFinite()) n else 0.0 - -fun findCenter(points: List): Vec2 { - var minX = Float.POSITIVE_INFINITY - var minY = Float.POSITIVE_INFINITY - var maxX = Float.NEGATIVE_INFINITY - var maxY = Float.NEGATIVE_INFINITY - - for (pos in points) { - minX = min(minX, pos.x) - minY = min(minY, pos.y) - maxX = max(maxX, pos.x) - maxY = max(maxY, pos.y) - } - return Vec2( - (minX + maxX) / 2f, - (minY + maxY) / 2f - ) -} - -fun coordToPx(coord: HexCoord, size: Float, offset: Vec2): Vec2 = - Vec2( - SQRT_3 * coord.q.toFloat() + SQRT_3 / 2.0f * coord.r.toFloat(), - 1.5f * coord.r.toFloat() - ).scale(size).add(offset) - -fun pxToCoord(px: Vec2, size: Float, offset: Vec2): HexCoord { - val offsetted = px.add(offset.negated()) - var qf = (SQRT_3 / 3.0f * offsetted.x - 0.33333f * offsetted.y) / size - var rf = (0.66666f * offsetted.y) / size - - val q = qf.roundToInt() - val r = rf.roundToInt() - qf -= q - rf -= r - return if (q.absoluteValue >= r.absoluteValue) - HexCoord(q + (qf + 0.5f * rf).roundToInt(), r) - else - HexCoord(q, r + (rf + 0.5 * qf).roundToInt()) -} - -@JvmOverloads -fun > Array.getSafe(key: String, default: T = this[0]): T { - val lowercaseKey = key.lowercase(Locale.ROOT) - return firstOrNull { it.name.lowercase(Locale.ROOT) == lowercaseKey } ?: default -} - -@JvmOverloads -fun > Array.getSafe(index: Byte, default: T = this[0]) = getSafe(index.toInt(), default) - -@JvmOverloads -fun > Array.getSafe(index: Int, default: T = this[0]) = if (index in indices) this[index] else default - -fun String.withStyle(op: (Style) -> Style): MutableComponent = asTextComponent.withStyle(op) -fun String.withStyle(style: Style): MutableComponent = asTextComponent.withStyle(style) -fun String.withStyle(formatting: ChatFormatting): MutableComponent = asTextComponent.withStyle(formatting) -fun String.withStyle(vararg formatting: ChatFormatting): MutableComponent = asTextComponent.withStyle(*formatting) - -infix fun String.styledWith(op: (Style) -> Style) = withStyle(op) -infix fun String.styledWith(style: Style) = withStyle(style) -infix fun String.styledWith(formatting: ChatFormatting) = withStyle(formatting) - -infix fun MutableComponent.styledWith(op: (Style) -> Style): MutableComponent = withStyle(op) -infix fun MutableComponent.styledWith(style: Style): MutableComponent = withStyle(style) -infix fun MutableComponent.styledWith(formatting: ChatFormatting): MutableComponent = withStyle(formatting) - -val String.black get() = this styledWith ChatFormatting.BLACK -val MutableComponent.black get() = this styledWith ChatFormatting.BLACK - -val String.darkBlue get() = this styledWith ChatFormatting.DARK_BLUE -val MutableComponent.darkBlue get() = this styledWith ChatFormatting.DARK_BLUE - -val String.darkGreen get() = this styledWith ChatFormatting.DARK_GREEN -val MutableComponent.darkGreen get() = this styledWith ChatFormatting.DARK_GREEN - -val String.darkAqua get() = this styledWith ChatFormatting.DARK_AQUA -val MutableComponent.darkAqua get() = this styledWith ChatFormatting.DARK_AQUA - -val String.darkRed get() = this styledWith ChatFormatting.DARK_RED -val MutableComponent.darkRed get() = this styledWith ChatFormatting.DARK_RED - -val String.darkPurple get() = this styledWith ChatFormatting.DARK_PURPLE -val MutableComponent.darkPurple get() = this styledWith ChatFormatting.DARK_PURPLE - -val String.gold get() = this styledWith ChatFormatting.GOLD -val MutableComponent.gold get() = this styledWith ChatFormatting.GOLD - -val String.gray get() = this styledWith ChatFormatting.GRAY -val MutableComponent.gray get() = this styledWith ChatFormatting.GRAY - -val String.darkGray get() = this styledWith ChatFormatting.DARK_GRAY -val MutableComponent.darkGray get() = this styledWith ChatFormatting.DARK_GRAY - -val String.blue get() = this styledWith ChatFormatting.BLUE -val MutableComponent.blue get() = this styledWith ChatFormatting.BLUE - -val String.green get() = this styledWith ChatFormatting.GREEN -val MutableComponent.green get() = this styledWith ChatFormatting.GREEN - -val String.aqua get() = this styledWith ChatFormatting.AQUA -val MutableComponent.aqua get() = this styledWith ChatFormatting.AQUA - -val String.red get() = this styledWith ChatFormatting.RED -val MutableComponent.red get() = this styledWith ChatFormatting.RED - -val String.lightPurple get() = this styledWith ChatFormatting.LIGHT_PURPLE -val MutableComponent.lightPurple get() = this styledWith ChatFormatting.LIGHT_PURPLE - -val String.yellow get() = this styledWith ChatFormatting.YELLOW -val MutableComponent.yellow get() = this styledWith ChatFormatting.YELLOW - -val String.white get() = this styledWith ChatFormatting.WHITE -val MutableComponent.white get() = this styledWith ChatFormatting.WHITE - -val String.obfuscated get() = this styledWith ChatFormatting.OBFUSCATED -val MutableComponent.obfuscated get() = this styledWith ChatFormatting.OBFUSCATED - -val String.bold get() = this styledWith ChatFormatting.BOLD -val MutableComponent.bold get() = this styledWith ChatFormatting.BOLD - -val String.strikethrough get() = this styledWith ChatFormatting.STRIKETHROUGH -val MutableComponent.strikethrough get() = this styledWith ChatFormatting.STRIKETHROUGH - -val String.underline get() = this styledWith ChatFormatting.UNDERLINE -val MutableComponent.underline get() = this styledWith ChatFormatting.UNDERLINE - -val String.italic get() = this styledWith ChatFormatting.ITALIC -val MutableComponent.italic get() = this styledWith ChatFormatting.ITALIC - -operator fun MutableComponent.plusAssign(component: Component) { - append(component) -} - -val String.asTextComponent: MutableComponent get() = Component.literal(this) -val String.asTranslatedComponent: MutableComponent get() = Component.translatable(this) - -fun String.asTranslatedComponent(vararg args: Any): MutableComponent = Component.translatable(this, *args) - -/** - * Represents a value that the garbage collector is still allowed to collect. - * To create an instance of a [WeakValue], use [weakReference] or [weakMapped]. - */ -interface WeakValue { - var value: T? -} - -/** - * A weakly referenced value that relies directly on a [WeakReference]. - * - * This means that if there are no other places where the contained object is referenced, - * the reference will expire, and value contained within this reference will become null. - */ -private class WeakReferencedValue(var reference: WeakReference?) : WeakValue { - override var value: T? - get() = reference?.get() - set(value) { - reference = value?.let(::WeakReference) - } -} - -/** - * A weakly referenced value that relies on a [WeakHashMap]. - * - * Unlike [WeakReferencedValue], it relies on the continued existence of something else (obtained by [keyGen]). - * For example, this can be used to hold an entity, and have the reference expire when the world it's in is unloaded. - */ -private class WeakMappedValue(val keyGen: (T) -> K) : WeakValue { - val reference = WeakHashMap() - override var value: T? - get() = reference.values.firstOrNull() - set(value) { - reference.clear() - if (value != null) reference[keyGen(value)] = value - } -} - -/** - * Creates a [WeakReferencedValue], the contents of which will expire when nothing else is referencing them. - */ -fun weakReference(value: T? = null): WeakValue = WeakReferencedValue(value?.let { WeakReference(it) }) - -/** - * Creates a [WeakMappedValue], the contents of which will expire when nothing else is referencing the value returned by [keyGen]. - */ -fun weakMapped(keyGen: (T) -> K): WeakValue = WeakMappedValue(keyGen) - -// kt boilerplate for making WeakValues work as delegates (using the keyword `by`) -@Suppress("NOTHING_TO_INLINE") -inline operator fun WeakValue.getValue(thisRef: Any?, property: KProperty<*>): T? = value - -@Suppress("NOTHING_TO_INLINE") -inline operator fun WeakValue.setValue(thisRef: Any?, property: KProperty<*>, value: T?) { - this.value = value -} - -/** - * Returns an empty list if it's too complicated. - */ -fun Iterable.serializeToNBT() = - if (HexIotaTypes.isTooLargeToSerialize(this)) - ListTag() - else - ListIota(this.toList()).serialize() - -// Copy the impl from forge -fun ItemStack.serializeToNBT(): CompoundTag { - val out = CompoundTag() - this.save(out) - return out -} - -@Suppress("UNCHECKED_CAST") -@Throws(IllegalArgumentException::class) -fun Tag.downcast(type: TagType): T { - if (this.type == type) { - return this as T - } else { - throw IllegalArgumentException( - "Expected this tag to be of type ${type.name}, but found ${this.type.name}." - ) - } -} - -const val ERROR_COLOR = 0xff_f800f8.toInt() diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/MediaHelper.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/MediaHelper.kt deleted file mode 100644 index 3ede2c14..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/MediaHelper.kt +++ /dev/null @@ -1,89 +0,0 @@ -@file:JvmName("MediaHelper") - -package at.petrak.hexcasting.api.utils - -import at.petrak.hexcasting.api.addldata.ADMediaHolder -import at.petrak.hexcasting.xplat.IXplatAbstractions -import net.minecraft.util.Mth -import net.minecraft.world.item.ItemStack -import kotlin.math.roundToInt - -fun isMediaItem(stack: ItemStack): Boolean { - val mediaHolder = IXplatAbstractions.INSTANCE.findMediaHolder(stack) ?: return false - if (!mediaHolder.canProvide()) - return false - return mediaHolder.withdrawMedia(-1, true) > 0 -} - -/** - * Extract [cost] media from [stack]. If [cost] is less than zero, extract all media instead. - * This may mutate [stack] (and may consume it) unless [simulate] is set. - * - * If [drainForBatteries] is false, this will only consider forms of media that can be used to make new batteries. - * - * Return the amount of media extracted. This may be over [cost] if media is wasted. - */ -@JvmOverloads -fun extractMedia( - stack: ItemStack, - cost: Int = -1, - drainForBatteries: Boolean = false, - simulate: Boolean = false -): Int { - val mediaHolder = IXplatAbstractions.INSTANCE.findMediaHolder(stack) ?: return 0 - - return extractMedia(mediaHolder, cost, drainForBatteries, simulate) -} - -/** - * Extract [cost] media from [holder]. If [cost] is less than zero, extract all media instead. - * This may mutate the stack underlying [holder] (and may consume it) unless [simulate] is set. - * - * If [drainForBatteries] is false, this will only consider forms of media that can be used to make new batteries. - * - * Return the amount of media extracted. This may be over [cost] if media is wasted. - */ -fun extractMedia( - holder: ADMediaHolder, - cost: Int = -1, - drainForBatteries: Boolean = false, - simulate: Boolean = false -): Int { - if (drainForBatteries && !holder.canConstructBattery()) - return 0 - - return holder.withdrawMedia(cost, simulate) -} - -/** - * Sorted from least important to most important - */ -fun compareMediaItem(aMedia: ADMediaHolder, bMedia: ADMediaHolder): Int { - val priority = aMedia.consumptionPriority - bMedia.consumptionPriority - if (priority != 0) - return priority - - return aMedia.withdrawMedia(-1, true) - bMedia.withdrawMedia(-1, true) -} - -fun mediaBarColor(media: Int, maxMedia: Int): Int { - val amt = if (maxMedia == 0) { - 0f - } else { - media.toFloat() / maxMedia.toFloat() - } - - val r = Mth.lerp(amt, 84f, 254f) - val g = Mth.lerp(amt, 57f, 203f) - val b = Mth.lerp(amt, 138f, 230f) - return Mth.color(r / 255f, g / 255f, b / 255f) -} - -fun mediaBarWidth(media: Int, maxMedia: Int): Int { - val amt = if (maxMedia == 0) { - 0f - } else { - media.toFloat() / maxMedia.toFloat() - } - return (13f * amt).roundToInt() -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTDsl.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTDsl.kt deleted file mode 100644 index a7a315b7..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTDsl.kt +++ /dev/null @@ -1,210 +0,0 @@ -@file:Suppress("NOTHING_TO_INLINE") -package at.petrak.hexcasting.api.utils - -import net.minecraft.nbt.* - -// https://github.com/TeamWizardry/LibrarianLib/blob/9cfb2cf3e35685568942ad41395265a2edc27d30/modules/core/src/main/kotlin/com/teamwizardry/librarianlib/core/util/kotlin/NbtBuilder.kt - -@DslMarker -internal annotation class NBTDslMarker - -@NBTDslMarker -object NBTBuilder { - inline operator fun invoke(block: NbtCompoundBuilder.() -> Unit) = compound(block) - inline operator fun invoke(tag: CompoundTag, block: NbtCompoundBuilder.() -> Unit) = use(tag, block) - - inline fun use(tag: CompoundTag, block: NbtCompoundBuilder.() -> Unit): CompoundTag = - NbtCompoundBuilder(tag).apply(block).tag - - inline fun compound(block: NbtCompoundBuilder.() -> Unit): CompoundTag = - NbtCompoundBuilder(CompoundTag()).apply(block).tag - - inline fun list(block: NbtListBuilder.() -> Unit): ListTag = - NbtListBuilder(ListTag()).apply(block).tag - - inline fun list(vararg elements: Tag, block: NbtListBuilder.() -> Unit): ListTag = - NbtListBuilder(ListTag()).also { - it.addAll(elements.toList()) - it.block() - }.tag - - inline fun list(vararg elements: Tag): ListTag = ListTag().also { it.addAll(elements) } - inline fun list(elements: Collection): ListTag = ListTag().also { it.addAll(elements) } - inline fun list(elements: Collection, mapper: (T) -> Tag): ListTag = ListTag().also { it.addAll(elements.map(mapper)) } - - inline fun double(value: Number): DoubleTag = DoubleTag.valueOf(value.toDouble()) - inline fun float(value: Number): FloatTag = FloatTag.valueOf(value.toFloat()) - inline fun long(value: Number): LongTag = LongTag.valueOf(value.toLong()) - inline fun int(value: Number): IntTag = IntTag.valueOf(value.toInt()) - inline fun short(value: Number): ShortTag = ShortTag.valueOf(value.toShort()) - inline fun byte(value: Number): ByteTag = ByteTag.valueOf(value.toByte()) - - inline fun string(value: String): StringTag = StringTag.valueOf(value) - - inline fun byteArray(value: Collection): ByteArrayTag = ByteArrayTag(value.map { it.toByte() }) - inline fun byteArray(vararg value: Int): ByteArrayTag = ByteArrayTag(ByteArray(value.size) { value[it].toByte() }) - inline fun byteArray(vararg value: Byte): ByteArrayTag = ByteArrayTag(value) - inline fun byteArray(): ByteArrayTag = ByteArrayTag(byteArrayOf()) // avoiding overload ambiguity - inline fun longArray(value: Collection): LongArrayTag = LongArrayTag(value.map { it.toLong() }) - inline fun longArray(vararg value: Int): LongArrayTag = LongArrayTag(LongArray(value.size) { value[it].toLong() }) - inline fun longArray(vararg value: Long): LongArrayTag = LongArrayTag(value) - inline fun longArray(): LongArrayTag = LongArrayTag(longArrayOf()) // avoiding overload ambiguity - inline fun intArray(value: Collection): IntArrayTag = IntArrayTag(value.map { it.toInt() }) - inline fun intArray(vararg value: Int): IntArrayTag = IntArrayTag(value) -} - -@JvmInline -@NBTDslMarker -value class NbtCompoundBuilder(val tag: CompoundTag) { - // configuring this tag - - inline operator fun String.remAssign(nbt: Tag) { - tag.put(this, nbt) - } - - inline operator fun String.remAssign(str: String) { - tag.put(this, string(str)) - } - - inline operator fun String.remAssign(num: Int) { - tag.put(this, int(num)) - } - - inline operator fun String.remAssign(num: Double) { - tag.put(this, double(num)) - } - - inline operator fun String.remAssign(num: Float) { - tag.put(this, float(num)) - } - - inline operator fun String.remAssign(bool: Boolean) { - tag.put(this, byte(if (bool) 1 else 0)) - } - - // creating new tags - - inline fun compound(block: NbtCompoundBuilder.() -> Unit): CompoundTag = - NbtCompoundBuilder(CompoundTag()).apply(block).tag - - inline fun list(block: NbtListBuilder.() -> Unit): ListTag = - NbtListBuilder(ListTag()).apply(block).tag - - inline fun list(vararg elements: Tag, block: NbtListBuilder.() -> Unit): ListTag = - NbtListBuilder(ListTag()).also { - it.addAll(elements.toList()) - it.block() - }.tag - - inline fun list(vararg elements: Tag): ListTag = ListTag().also { it.addAll(elements) } - inline fun list(elements: Collection): ListTag = ListTag().also { it.addAll(elements) } - inline fun list(elements: Collection, mapper: (T) -> Tag): ListTag = ListTag().also { it.addAll(elements.map(mapper)) } - - inline fun double(value: Number): DoubleTag = DoubleTag.valueOf(value.toDouble()) - inline fun float(value: Number): FloatTag = FloatTag.valueOf(value.toFloat()) - inline fun long(value: Number): LongTag = LongTag.valueOf(value.toLong()) - inline fun int(value: Number): IntTag = IntTag.valueOf(value.toInt()) - inline fun short(value: Number): ShortTag = ShortTag.valueOf(value.toShort()) - inline fun byte(value: Number): ByteTag = ByteTag.valueOf(value.toByte()) - - inline fun string(value: String): StringTag = StringTag.valueOf(value) - - inline fun byteArray(value: Collection): ByteArrayTag = ByteArrayTag(value.map { it.toByte() }) - inline fun byteArray(vararg value: Int): ByteArrayTag = ByteArrayTag(ByteArray(value.size) { value[it].toByte() }) - inline fun byteArray(vararg value: Byte): ByteArrayTag = ByteArrayTag(value) - inline fun byteArray(): ByteArrayTag = ByteArrayTag(byteArrayOf()) // avoiding overload ambiguity - inline fun longArray(value: Collection): LongArrayTag = LongArrayTag(value.map { it.toLong() }) - inline fun longArray(vararg value: Int): LongArrayTag = LongArrayTag(LongArray(value.size) { value[it].toLong() }) - inline fun longArray(vararg value: Long): LongArrayTag = LongArrayTag(value) - inline fun longArray(): LongArrayTag = LongArrayTag(longArrayOf()) // avoiding overload ambiguity - inline fun intArray(value: Collection): IntArrayTag = IntArrayTag(value.map { it.toInt() }) - inline fun intArray(vararg value: Int): IntArrayTag = IntArrayTag(value) -} - -@JvmInline -@NBTDslMarker -value class NbtListBuilder(val tag: ListTag) { - // configuring this tag - - /** - * Add the given tag to this list - */ - inline operator fun Tag.unaryPlus() { - tag.add(this) - } - - /** - * Add the given tags to this list - */ - inline operator fun Collection.unaryPlus() { - tag.addAll(this) - } - - /** - * Add the given tag to this list. This is explicitly defined for [ListTag] because otherwise there is overload - * ambiguity between the [Tag] and [Collection] methods. - */ - inline operator fun ListTag.unaryPlus() { - tag.add(this) - } - - inline fun addAll(nbt: Collection) { - this.tag.addAll(nbt) - } - - inline fun add(nbt: Tag) { - this.tag.add(nbt) - } - - // creating new tags - - inline fun compound(block: NbtCompoundBuilder.() -> Unit): CompoundTag = - NbtCompoundBuilder(CompoundTag()).apply(block).tag - - inline fun list(block: NbtListBuilder.() -> Unit): ListTag = - NbtListBuilder(ListTag()).apply(block).tag - - inline fun list(vararg elements: Tag, block: NbtListBuilder.() -> Unit): ListTag = - NbtListBuilder(ListTag()).also { - it.addAll(elements.toList()) - it.block() - }.tag - - inline fun list(vararg elements: Tag): ListTag = ListTag().also { it.addAll(elements) } - inline fun list(elements: Collection): ListTag = ListTag().also { it.addAll(elements) } - inline fun list(elements: Collection, mapper: (T) -> Tag): ListTag = ListTag().also { it.addAll(elements.map(mapper)) } - - inline fun double(value: Number): DoubleTag = DoubleTag.valueOf(value.toDouble()) - inline fun float(value: Number): FloatTag = FloatTag.valueOf(value.toFloat()) - inline fun long(value: Number): LongTag = LongTag.valueOf(value.toLong()) - inline fun int(value: Number): IntTag = IntTag.valueOf(value.toInt()) - inline fun short(value: Number): ShortTag = ShortTag.valueOf(value.toShort()) - inline fun byte(value: Number): ByteTag = ByteTag.valueOf(value.toByte()) - - inline fun string(value: String): StringTag = StringTag.valueOf(value) - - inline fun byteArray(value: Collection): ByteArrayTag = ByteArrayTag(value.map { it.toByte() }) - inline fun byteArray(vararg value: Int): ByteArrayTag = ByteArrayTag(ByteArray(value.size) { value[it].toByte() }) - inline fun byteArray(vararg value: Byte): ByteArrayTag = ByteArrayTag(value) - inline fun byteArray(): ByteArrayTag = ByteArrayTag(byteArrayOf()) // avoiding overload ambiguity - inline fun longArray(value: Collection): LongArrayTag = LongArrayTag(value.map { it.toLong() }) - inline fun longArray(vararg value: Int): LongArrayTag = LongArrayTag(LongArray(value.size) { value[it].toLong() }) - inline fun longArray(vararg value: Long): LongArrayTag = LongArrayTag(value) - inline fun longArray(): LongArrayTag = LongArrayTag(longArrayOf()) // avoiding overload ambiguity - inline fun intArray(value: Collection): IntArrayTag = IntArrayTag(value.map { it.toInt() }) - inline fun intArray(vararg value: Int): IntArrayTag = IntArrayTag(value) - - inline fun doubles(vararg value: Int): List = value.map { DoubleTag.valueOf(it.toDouble()) } - inline fun doubles(vararg value: Double): List = value.map { DoubleTag.valueOf(it) } - inline fun floats(vararg value: Int): List = value.map { FloatTag.valueOf(it.toFloat()) } - inline fun floats(vararg value: Float): List = value.map { FloatTag.valueOf(it) } - inline fun longs(vararg value: Int): List = value.map { LongTag.valueOf(it.toLong()) } - inline fun longs(vararg value: Long): List = value.map { LongTag.valueOf(it) } - inline fun ints(vararg value: Int): List = value.map { IntTag.valueOf(it) } - inline fun shorts(vararg value: Int): List = value.map { ShortTag.valueOf(it.toShort()) } - inline fun shorts(vararg value: Short): List = value.map { ShortTag.valueOf(it) } - inline fun bytes(vararg value: Int): List = value.map { ByteTag.valueOf(it.toByte()) } - inline fun bytes(vararg value: Byte): List = value.map { ByteTag.valueOf(it) } - - fun strings(vararg value: String): List = value.map { StringTag.valueOf(it) } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTHelper.kt b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTHelper.kt deleted file mode 100644 index ef9a757c..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/NBTHelper.kt +++ /dev/null @@ -1,273 +0,0 @@ -@file:JvmName("NBTHelper") - -package at.petrak.hexcasting.api.utils - -import net.minecraft.nbt.* -import net.minecraft.world.item.ItemStack -import java.util.* - -private inline fun T?.getIf(key: K, predicate: T?.(K) -> Boolean, get: T.(K) -> E): E? = - getIf(key, predicate, get, null) - -private inline fun T?.getIf(key: K, predicate: T?.(K) -> Boolean, get: T.(K) -> E, default: E): E { - if (this != null && predicate(key)) - return get(key) - return default -} - -// ======================================================================================================== CompoundTag - -// Checks for containment - -fun CompoundTag?.hasNumber(key: String) = contains(key, Tag.TAG_ANY_NUMERIC) -fun CompoundTag?.hasByte(key: String) = contains(key, Tag.TAG_BYTE) -fun CompoundTag?.hasShort(key: String) = contains(key, Tag.TAG_SHORT) -fun CompoundTag?.hasInt(key: String) = contains(key, Tag.TAG_INT) -fun CompoundTag?.hasLong(key: String) = contains(key, Tag.TAG_LONG) -fun CompoundTag?.hasFloat(key: String) = contains(key, Tag.TAG_FLOAT) -fun CompoundTag?.hasDouble(key: String) = contains(key, Tag.TAG_DOUBLE) -fun CompoundTag?.hasLongArray(key: String) = contains(key, Tag.TAG_LONG_ARRAY) -fun CompoundTag?.hasIntArray(key: String) = contains(key, Tag.TAG_INT_ARRAY) -fun CompoundTag?.hasByteArray(key: String) = contains(key, Tag.TAG_BYTE_ARRAY) -fun CompoundTag?.hasCompound(key: String) = contains(key, Tag.TAG_COMPOUND) -fun CompoundTag?.hasString(key: String) = contains(key, Tag.TAG_STRING) -fun CompoundTag?.hasList(key: String) = contains(key, Tag.TAG_LIST) -fun CompoundTag?.hasList(key: String, objType: Int) = hasList(key, objType.toByte()) -fun CompoundTag?.hasList(key: String, objType: Byte): Boolean { - if (!hasList(key)) return false - val lt = get(key) as ListTag - return lt.elementType == objType || lt.elementType == 0.toByte() -} - -fun CompoundTag?.hasUUID(key: String) = this != null && hasUUID(key) - -fun CompoundTag?.contains(key: String, id: Byte) = contains(key, id.toInt()) -fun CompoundTag?.contains(key: String, id: Int) = this != null && contains(key, id) -fun CompoundTag?.contains(key: String) = this != null && contains(key) - -// Puts - -fun CompoundTag?.putBoolean(key: String, value: Boolean) = this?.putBoolean(key, value) -fun CompoundTag?.putByte(key: String, value: Byte) = this?.putByte(key, value) -fun CompoundTag?.putShort(key: String, value: Short) = this?.putShort(key, value) -fun CompoundTag?.putInt(key: String, value: Int) = this?.putInt(key, value) -fun CompoundTag?.putLong(key: String, value: Long) = this?.putLong(key, value) -fun CompoundTag?.putFloat(key: String, value: Float) = this?.putFloat(key, value) -fun CompoundTag?.putDouble(key: String, value: Double) = this?.putDouble(key, value) -fun CompoundTag?.putLongArray(key: String, value: LongArray) = this?.putLongArray(key, value) -fun CompoundTag?.putIntArray(key: String, value: IntArray) = this?.putIntArray(key, value) -fun CompoundTag?.putByteArray(key: String, value: ByteArray) = this?.putByteArray(key, value) -fun CompoundTag?.putCompound(key: String, value: CompoundTag) = put(key, value) -fun CompoundTag?.putString(key: String, value: String) = this?.putString(key, value) -fun CompoundTag?.putList(key: String, value: ListTag) = put(key, value) -fun CompoundTag?.putUUID(key: String, value: UUID) = this?.putUUID(key, value) -fun CompoundTag?.put(key: String, value: Tag) = this?.put(key, value) - -// Remove - -fun CompoundTag?.remove(key: String) = this?.remove(key) - -// Gets - -@JvmOverloads -fun CompoundTag?.getBoolean(key: String, defaultExpected: Boolean = false) = - getIf(key, CompoundTag?::hasNumber, CompoundTag::getBoolean, defaultExpected) - -@JvmOverloads -fun CompoundTag?.getByte(key: String, defaultExpected: Byte = 0) = - getIf(key, CompoundTag?::hasNumber, CompoundTag::getByte, defaultExpected) - -@JvmOverloads -fun CompoundTag?.getShort(key: String, defaultExpected: Short = 0) = - getIf(key, CompoundTag?::hasNumber, CompoundTag::getShort, defaultExpected) - -@JvmOverloads -fun CompoundTag?.getInt(key: String, defaultExpected: Int = 0) = - getIf(key, CompoundTag?::hasNumber, CompoundTag::getInt, defaultExpected) - -@JvmOverloads -fun CompoundTag?.getLong(key: String, defaultExpected: Long = 0) = - getIf(key, CompoundTag?::hasNumber, CompoundTag::getLong, defaultExpected) - -@JvmOverloads -fun CompoundTag?.getFloat(key: String, defaultExpected: Float = 0f) = - getIf(key, CompoundTag?::hasNumber, CompoundTag::getFloat, defaultExpected) - -@JvmOverloads -fun CompoundTag?.getDouble(key: String, defaultExpected: Double = 0.0) = - getIf(key, CompoundTag?::hasNumber, CompoundTag::getDouble, defaultExpected) - -fun CompoundTag?.getLongArray(key: String) = getIf(key, CompoundTag?::hasLongArray, CompoundTag::getLongArray) -fun CompoundTag?.getIntArray(key: String) = getIf(key, CompoundTag?::hasIntArray, CompoundTag::getIntArray) -fun CompoundTag?.getByteArray(key: String) = getIf(key, CompoundTag?::hasByteArray, CompoundTag::getByteArray) -fun CompoundTag?.getCompound(key: String): CompoundTag? = - getIf(key, CompoundTag?::hasCompound, CompoundTag::getCompound) - -fun CompoundTag?.getString(key: String) = getIf(key, CompoundTag?::hasString, CompoundTag::getString) -fun CompoundTag?.getList(key: String, objType: Byte) = getList(key, objType.toInt()) -fun CompoundTag?.getList(key: String, objType: Int) = getIf(key, { hasList(key, objType) }) { getList(it, objType) } -fun CompoundTag?.getUUID(key: String) = getIf(key, CompoundTag?::hasUUID, CompoundTag::getUUID) -fun CompoundTag?.get(key: String) = getIf(key, CompoundTag?::contains, CompoundTag::get) - -@JvmSynthetic -@JvmName("getListByByte") -fun CompoundTag.getList(key: String, objType: Byte): ListTag = getList(key, objType.toInt()) - -// Get-or-create - -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) } - -// ================================================================================================================ Tag - -val Tag.asBoolean get() = asByte == 0.toByte() -val Tag.asByte get() = (this as? NumericTag)?.asByte ?: 0.toByte() -val Tag.asShort get() = (this as? NumericTag)?.asShort ?: 0.toShort() -val Tag.asInt get() = (this as? NumericTag)?.asInt ?: 0 -val Tag.asLong get() = (this as? NumericTag)?.asLong ?: 0L -val Tag.asFloat get() = (this as? NumericTag)?.asFloat ?: 0F -val Tag.asDouble get() = (this as? NumericTag)?.asDouble ?: 0.0 - -val Tag.asLongArray: LongArray - get() = when (this) { - is LongArrayTag -> this.asLongArray - is IntArrayTag -> { - 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) - } - -val Tag.asIntArray: IntArray - get() = when (this) { - is IntArrayTag -> this.asIntArray - is LongArrayTag -> { - 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) - } - -val Tag.asByteArray: ByteArray - get() = when (this) { - is ByteArrayTag -> this.asByteArray - is LongArrayTag -> { - 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) - } - -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/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/PatternNameHelper.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/PatternNameHelper.java deleted file mode 100644 index 1f05fc06..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/api/utils/PatternNameHelper.java +++ /dev/null @@ -1,28 +0,0 @@ -package at.petrak.hexcasting.api.utils; - -import at.petrak.hexcasting.api.PatternRegistry; -import at.petrak.hexcasting.api.spell.casting.SpecialPatterns; -import at.petrak.hexcasting.api.spell.iota.PatternIota; -import at.petrak.hexcasting.api.spell.math.HexPattern; -import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.Component; - -public class PatternNameHelper { - - public static Component representationForPattern(HexPattern pattern) { - if (pattern.sigsEqual(SpecialPatterns.CONSIDERATION)) { - return Component.translatable("hexcasting.spell.hexcasting:escape").withStyle(ChatFormatting.LIGHT_PURPLE); - } else if (pattern.sigsEqual(SpecialPatterns.INTROSPECTION)) { - return Component.translatable("hexcasting.spell.hexcasting:open_paren").withStyle(ChatFormatting.LIGHT_PURPLE); - } else if (pattern.sigsEqual(SpecialPatterns.RETROSPECTION)) { - return Component.translatable("hexcasting.spell.hexcasting:close_paren").withStyle(ChatFormatting.LIGHT_PURPLE); - } - - var action = PatternRegistry.lookupPatternByShape(pattern); - if (action != null) { - return action.getDisplayName(); - } - - return new PatternIota(pattern).display(); // TODO: this should be merged into iota.display once Great Spells can be identified by name - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java deleted file mode 100644 index 213b3433..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java +++ /dev/null @@ -1,23 +0,0 @@ -package at.petrak.hexcasting.client; - -import net.minecraft.client.Minecraft; - -public class ClientTickCounter { - public static long ticksInGame = 0L; - public static float partialTicks = 0.0F; - - public static float getTotal() { - return (float)ticksInGame + partialTicks; - } - - public static void renderTickStart(float renderTickTime) { - partialTicks = renderTickTime; - } - - public static void clientTickEnd() { - if (!Minecraft.getInstance().isPaused()) { - ++ticksInGame; - partialTicks = 0.0F; - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/client/HexAdditionalRenderers.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/client/HexAdditionalRenderers.java deleted file mode 100644 index 7817e966..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/client/HexAdditionalRenderers.java +++ /dev/null @@ -1,219 +0,0 @@ -package at.petrak.hexcasting.client; - -import at.petrak.hexcasting.api.client.ScryingLensOverlayRegistry; -import at.petrak.hexcasting.api.misc.DiscoveryHandlers; -import at.petrak.hexcasting.api.player.Sentinel; -import at.petrak.hexcasting.xplat.IXplatAbstractions; -import com.google.common.collect.Lists; -import com.mojang.blaze3d.platform.GlStateManager; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.Tesselator; -import com.mojang.blaze3d.vertex.VertexFormat; -import com.mojang.datafixers.util.Pair; -import com.mojang.math.Quaternion; -import com.mojang.math.Vector3f; -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.player.LocalPlayer; -import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.locale.Language; -import net.minecraft.network.chat.FormattedText; -import net.minecraft.network.chat.Style; -import net.minecraft.util.Mth; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; -import net.minecraft.world.phys.Vec3; - -import java.util.List; -import java.util.function.BiConsumer; - -public class HexAdditionalRenderers { - public static void overlayLevel(PoseStack ps, float partialTick) { - var player = Minecraft.getInstance().player; - if (player != null) { - var sentinel = IXplatAbstractions.INSTANCE.getSentinel(player); - if (sentinel.hasSentinel() && player.getLevel().dimension().equals(sentinel.dimension())) { - renderSentinel(sentinel, player, ps, partialTick); - } - } - } - - public static void overlayGui(PoseStack ps, float partialTicks) { - tryRenderScryingLensOverlay(ps, partialTicks); - } - - private static void renderSentinel(Sentinel sentinel, LocalPlayer owner, - PoseStack ps, float partialTicks) { - ps.pushPose(); - - // zero vector is the player - var mc = Minecraft.getInstance(); - var camera = mc.gameRenderer.getMainCamera(); - var playerPos = camera.getPosition(); - ps.translate( - sentinel.position().x - playerPos.x, - sentinel.position().y - playerPos.y, - sentinel.position().z - playerPos.z); - - var time = ClientTickCounter.getTotal() / 2; - var bobSpeed = 1f / 20; - var magnitude = 0.1f; - ps.translate(0, Mth.sin(bobSpeed * time) * magnitude, 0); - var spinSpeed = 1f / 30; - ps.mulPose(Quaternion.fromXYZ(new Vector3f(0, spinSpeed * time, 0))); - if (sentinel.extendsRange()) { - ps.mulPose(Quaternion.fromXYZ(new Vector3f(spinSpeed * time / 8f, 0, 0))); - } - - float scale = 0.5f; - ps.scale(scale, scale, scale); - - - var tess = Tesselator.getInstance(); - var buf = tess.getBuilder(); - var neo = ps.last().pose(); - RenderSystem.enableBlend(); - RenderSystem.setShader(GameRenderer::getRendertypeLinesShader); - RenderSystem.disableDepthTest(); - RenderSystem.disableCull(); - RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); - RenderSystem.lineWidth(5f); - - var colorizer = IXplatAbstractions.INSTANCE.getColorizer(owner); - BiConsumer v = (l, r) -> { - int lcolor = colorizer.getColor(time, new Vec3(l[0], l[1], l[2])), - rcolor = colorizer.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(); - }; - - // 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; - - // top & bottom spider - for (int i = 0; i < 5; i++) { - v.accept(apex, ring[i]); - } - - // ring around - for (int i = 0; i < 5; i++) { - v.accept(ring[i % 5], ring[(i + 1) % 5]); - } - } - // center band - for (int i = 0; i < 5; i++) { - var bottom = Icos.BOTTOM_RING[i]; - v.accept(Icos.TOP_RING[(i + 2) % 5], bottom); - v.accept(bottom, Icos.TOP_RING[(i + 3) % 5]); - } - tess.end(); - - RenderSystem.enableDepthTest(); - RenderSystem.enableCull(); - ps.popPose(); - } - - private static class Icos { - public static float[] TOP = {0, 1, 0}; - public static float[] BOTTOM = {0, -1, 0}; - public static float[][] TOP_RING = new float[5][]; - public static float[][] BOTTOM_RING = new float[5][]; - - static { - var theta = (float) Mth.atan2(0.5, 1); - for (int i = 0; i < 5; i++) { - var phi = (float) i / 5f * Mth.TWO_PI; - var x = Mth.cos(theta) * Mth.cos(phi); - var y = Mth.sin(theta); - var z = Mth.cos(theta) * Mth.sin(phi); - TOP_RING[i] = new float[]{x, y, z}; - BOTTOM_RING[i] = new float[]{-x, -y, -z}; - } - } - } - - private static void tryRenderScryingLensOverlay(PoseStack ps, float partialTicks) { - var mc = Minecraft.getInstance(); - - LocalPlayer player = mc.player; - ClientLevel level = mc.level; - if (player == null || level == null) { - return; - } - - if (!DiscoveryHandlers.hasLens(player)) - return; - - var hitRes = mc.hitResult; - if (hitRes != null && hitRes.getType() == HitResult.Type.BLOCK) { - var bhr = (BlockHitResult) hitRes; - var pos = bhr.getBlockPos(); - var bs = level.getBlockState(pos); - - var lines = ScryingLensOverlayRegistry.getLines(bs, pos, player, level, bhr.getDirection()); - - int totalHeight = 8; - List>> actualLines = Lists.newArrayList(); - - var window = mc.getWindow(); - var maxWidth = (int) (window.getGuiScaledWidth() / 2f * 0.8f); - - for (var pair : lines) { - totalHeight += mc.font.lineHeight + 6; - var text = pair.getSecond(); - var textLines = mc.font.getSplitter().splitLines(text, maxWidth, Style.EMPTY); - - actualLines.add(Pair.of(pair.getFirst(), textLines)); - - if (textLines.size() > 1) { - totalHeight += mc.font.lineHeight * (textLines.size() - 1); - } - } - - if (!lines.isEmpty()) { - var x = window.getGuiScaledWidth() / 2f + 8f; - var y = window.getGuiScaledHeight() / 2f - totalHeight; - ps.pushPose(); - ps.translate(x, y, 0); - - for (var pair : actualLines) { - var stack = pair.getFirst(); - if (!stack.isEmpty()) { - // this draws centered in the Y ... - RenderLib.renderItemStackInGui(ps, pair.getFirst(), 0, 0); - } - float tx = stack.isEmpty() ? 0 : 18; - float ty = 5; - // but this draws where y=0 is the baseline - var text = pair.getSecond(); - - for (var line : text) { - var actualLine = Language.getInstance().getVisualOrder(line); - mc.font.drawShadow(ps, actualLine, tx, ty, 0xffffffff); - ps.translate(0, mc.font.lineHeight, 0); - } - if (text.isEmpty()) { - ps.translate(0, mc.font.lineHeight, 0); - } - ps.translate(0, 6, 0); - } - - ps.popPose(); - } - } - } -} diff --git a/0.10.3/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java b/0.10.3/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java deleted file mode 100644 index 09e66e6a..00000000 --- a/0.10.3/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java +++ /dev/null @@ -1,469 +0,0 @@ -package at.petrak.hexcasting.client; - -import at.petrak.hexcasting.api.block.circle.BlockAbstractImpetus; -import at.petrak.hexcasting.api.block.circle.BlockEntityAbstractImpetus; -import at.petrak.hexcasting.api.client.ScryingLensOverlayRegistry; -import at.petrak.hexcasting.api.item.IotaHolderItem; -import at.petrak.hexcasting.api.item.MediaHolderItem; -import at.petrak.hexcasting.api.misc.MediaConstants; -import at.petrak.hexcasting.api.utils.NBTHelper; -import at.petrak.hexcasting.client.be.BlockEntityAkashicBookshelfRenderer; -import at.petrak.hexcasting.client.be.BlockEntitySlateRenderer; -import at.petrak.hexcasting.client.entity.WallScrollRenderer; -import at.petrak.hexcasting.common.blocks.akashic.BlockAkashicBookshelf; -import at.petrak.hexcasting.common.blocks.akashic.BlockEntityAkashicBookshelf; -import at.petrak.hexcasting.common.entities.HexEntities; -import at.petrak.hexcasting.common.items.*; -import at.petrak.hexcasting.common.items.magic.ItemMediaBattery; -import at.petrak.hexcasting.common.items.magic.ItemPackagedHex; -import at.petrak.hexcasting.common.lib.HexBlockEntities; -import at.petrak.hexcasting.common.lib.HexBlocks; -import at.petrak.hexcasting.common.lib.hex.HexIotaTypes; -import at.petrak.hexcasting.common.lib.HexItems; -import at.petrak.hexcasting.xplat.IClientXplatAbstractions; -import com.mojang.datafixers.util.Pair; -import net.minecraft.ChatFormatting; -import net.minecraft.client.color.block.BlockColor; -import net.minecraft.client.color.item.ItemColor; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.Style; -import net.minecraft.network.chat.TextColor; -import net.minecraft.util.Mth; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.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.properties.ComparatorMode; -import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; -import net.minecraft.world.level.block.state.properties.RailShape; -import net.minecraft.world.level.material.MaterialColor; -import org.jetbrains.annotations.NotNull; - -import java.util.Locale; -import java.util.function.BiConsumer; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; -import java.util.function.UnaryOperator; - -public class RegisterClientStuff { - public static void init() { - registerDataHolderOverrides(HexItems.FOCUS, - stack -> HexItems.FOCUS.readIotaTag(stack) != null, - ItemFocus::isSealed); - registerDataHolderOverrides(HexItems.SPELLBOOK, - stack -> HexItems.SPELLBOOK.readIotaTag(stack) != null, - ItemSpellbook::isSealed); - - registerPackagedSpellOverrides(HexItems.CYPHER); - registerPackagedSpellOverrides(HexItems.TRINKET); - registerPackagedSpellOverrides(HexItems.ARTIFACT); - - var x = IClientXplatAbstractions.INSTANCE; - x.registerItemProperty(HexItems.BATTERY, ItemMediaBattery.MEDIA_PREDICATE, - (stack, level, holder, holderID) -> { - var item = (MediaHolderItem) stack.getItem(); - return item.getMediaFullness(stack); - }); - x.registerItemProperty(HexItems.BATTERY, ItemMediaBattery.MAX_MEDIA_PREDICATE, - (stack, level, holder, holderID) -> { - var item = (ItemMediaBattery) stack.getItem(); - var max = item.getMaxMedia(stack); - return (float) Math.sqrt((float) max / MediaConstants.CRYSTAL_UNIT / 10); - }); - - registerScrollOverrides(HexItems.SCROLL_SMOL); - registerScrollOverrides(HexItems.SCROLL_MEDIUM); - registerScrollOverrides(HexItems.SCROLL_LARGE); - - x.registerItemProperty(HexItems.SLATE, ItemSlate.WRITTEN_PRED, - (stack, level, holder, holderID) -> ItemSlate.hasPattern(stack) ? 1f : 0f); - - registerWandOverrides(HexItems.STAFF_OAK); - registerWandOverrides(HexItems.STAFF_BIRCH); - registerWandOverrides(HexItems.STAFF_SPRUCE); - registerWandOverrides(HexItems.STAFF_JUNGLE); - registerWandOverrides(HexItems.STAFF_DARK_OAK); - registerWandOverrides(HexItems.STAFF_ACACIA); - registerWandOverrides(HexItems.STAFF_EDIFIED); - - x.setRenderLayer(HexBlocks.CONJURED_LIGHT, RenderType.cutout()); - x.setRenderLayer(HexBlocks.CONJURED_BLOCK, RenderType.cutout()); - x.setRenderLayer(HexBlocks.EDIFIED_DOOR, RenderType.cutout()); - x.setRenderLayer(HexBlocks.EDIFIED_TRAPDOOR, RenderType.cutout()); - x.setRenderLayer(HexBlocks.AKASHIC_BOOKSHELF, RenderType.cutout()); - x.setRenderLayer(HexBlocks.SCONCE, RenderType.cutout()); - - x.setRenderLayer(HexBlocks.AMETHYST_EDIFIED_LEAVES, RenderType.cutoutMipped()); - x.setRenderLayer(HexBlocks.AVENTURINE_EDIFIED_LEAVES, RenderType.cutoutMipped()); - x.setRenderLayer(HexBlocks.CITRINE_EDIFIED_LEAVES, RenderType.cutoutMipped()); - - x.setRenderLayer(HexBlocks.AKASHIC_RECORD, RenderType.translucent()); - - x.registerEntityRenderer(HexEntities.WALL_SCROLL, WallScrollRenderer::new); - -// for (var tex : new ResourceLocation[]{ -// PatternTooltipComponent.PRISTINE_BG, -// PatternTooltipComponent.ANCIENT_BG, -// PatternTooltipComponent.SLATE_BG -// }) { -// Minecraft.getInstance().getTextureManager().bindForSetup(tex); -// } - - addScryingLensStuff(); - } - - public static void registerColorProviders(BiConsumer itemColorRegistry, - BiConsumer blockColorRegistry) { - itemColorRegistry.accept(makeIotaStorageColorizer(HexItems.FOCUS::getColor), HexItems.FOCUS); - itemColorRegistry.accept(makeIotaStorageColorizer(HexItems.SPELLBOOK::getColor), HexItems.SPELLBOOK); - - blockColorRegistry.accept((bs, level, pos, idx) -> { - if (!bs.getValue(BlockAkashicBookshelf.HAS_BOOKS) || level == null || pos == null) { - return 0xff_ffffff; - } - var tile = level.getBlockEntity(pos); - if (!(tile instanceof BlockEntityAkashicBookshelf beas)) { - // this gets called for particles for some irritating reason - return 0xff_ffffff; - } - var iotaTag = beas.getIotaTag(); - if (iotaTag == null) { - return 0xff_ffffff; - } - return HexIotaTypes.getColor(iotaTag); - }, HexBlocks.AKASHIC_BOOKSHELF); - } - - /** - * Helper function to colorize the layers of an item that stores an iota, in the manner of foci and spellbooks. - *
- * 0 = base; 1 = overlay - */ - public static ItemColor makeIotaStorageColorizer(ToIntFunction getColor) { - return (stack, idx) -> { - if (idx == 1) { - return getColor.applyAsInt(stack); - } - return 0xff_ffffff; - }; - } - - private static void addScryingLensStuff() { - ScryingLensOverlayRegistry.addPredicateDisplayer( - (state, pos, observer, world, direction) -> state.getBlock() instanceof BlockAbstractImpetus, - (lines, state, pos, observer, world, direction) -> { - if (world.getBlockEntity(pos) instanceof BlockEntityAbstractImpetus beai) { - beai.applyScryingLensOverlay(lines, state, pos, observer, world, direction); - } - }); - - ScryingLensOverlayRegistry.addDisplayer(Blocks.NOTE_BLOCK, - (lines, state, pos, observer, world, direction) -> { - int note = state.getValue(NoteBlock.NOTE); - - float rCol = Math.max(0.0F, Mth.sin((note / 24F + 0.0F) * Mth.TWO_PI) * 0.65F + 0.35F); - float gCol = Math.max(0.0F, Mth.sin((note / 24F + 0.33333334F) * Mth.TWO_PI) * 0.65F + 0.35F); - float bCol = Math.max(0.0F, Mth.sin((note / 24F + 0.6666667F) * Mth.TWO_PI) * 0.65F + 0.35F); - - int noteColor = 0xFF_000000 | Mth.color(rCol, gCol, bCol); - - var instrument = state.getValue(NoteBlock.INSTRUMENT); - - lines.add(new Pair<>( - new ItemStack(Items.MUSIC_DISC_CHIRP), - Component.literal(String.valueOf(instrument.ordinal())) - .withStyle(color(instrumentColor(instrument))))); - lines.add(new Pair<>( - new ItemStack(Items.NOTE_BLOCK), - Component.literal(String.valueOf(note)) - .withStyle(color(noteColor)))); - }); - - 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 = HexIotaTypes.getDisplay(iotaTag); - lines.add(new Pair<>(new ItemStack(Items.BOOK), display)); - } - } - }); - - ScryingLensOverlayRegistry.addDisplayer(Blocks.COMPARATOR, - (lines, state, pos, observer, world, direction) -> { - int comparatorValue = ScryingLensOverlayRegistry.getComparatorValue(true); - lines.add(new Pair<>( - new ItemStack(Items.REDSTONE), - Component.literal(comparatorValue == -1 ? "" : String.valueOf(comparatorValue)) - .withStyle(redstoneColor(comparatorValue)))); - - boolean compare = state.getValue(ComparatorBlock.MODE) == ComparatorMode.COMPARE; - - lines.add(new Pair<>( - new ItemStack(Items.REDSTONE_TORCH), - Component.literal(compare ? ">=" : "-") - .withStyle(redstoneColor(compare ? 0 : 15)))); - }); - - ScryingLensOverlayRegistry.addDisplayer(Blocks.POWERED_RAIL, - (lines, state, pos, observer, world, direction) -> { - int power = getPoweredRailStrength(world, pos, state); - lines.add(new Pair<>( - new ItemStack(Items.POWERED_RAIL), - Component.literal(String.valueOf(power)) - .withStyle(redstoneColor(power, 9)))); - }); - - ScryingLensOverlayRegistry.addDisplayer(Blocks.REPEATER, - (lines, state, pos, observer, world, direction) -> lines.add(new Pair<>( - new ItemStack(Items.CLOCK), - Component.literal(String.valueOf(state.getValue(RepeaterBlock.DELAY))) - .withStyle(ChatFormatting.YELLOW)))); - - ScryingLensOverlayRegistry.addPredicateDisplayer( - (state, pos, observer, world, direction) -> state.getBlock() instanceof BeehiveBlock, - (lines, state, pos, observer, world, direction) -> { - int count = ScryingLensOverlayRegistry.getBeeValue(); - lines.add(new Pair<>(new ItemStack(Items.BEE_NEST), count == -1 ? Component.empty() : - Component.translatable( - "hexcasting.tooltip.lens.bee" + (count == 1 ? ".single" : ""), - count - ))); - }); - - ScryingLensOverlayRegistry.addPredicateDisplayer( - (state, pos, observer, world, direction) -> state.isSignalSource() && !state.is( - Blocks.COMPARATOR), - (lines, state, pos, observer, world, direction) -> { - int signalStrength = 0; - if (state.getBlock() instanceof RedStoneWireBlock) { - signalStrength = state.getValue(RedStoneWireBlock.POWER); - } else { - for (Direction dir : Direction.values()) { - signalStrength = Math.max(signalStrength, state.getSignal(world, pos, dir)); - } - } - - lines.add(0, new Pair<>( - new ItemStack(Items.REDSTONE), - Component.literal(String.valueOf(signalStrength)) - .withStyle(redstoneColor(signalStrength)))); - }); - - ScryingLensOverlayRegistry.addPredicateDisplayer( - (state, pos, observer, world, direction) -> state.hasAnalogOutputSignal(), - (lines, state, pos, observer, world, direction) -> { - int comparatorValue = ScryingLensOverlayRegistry.getComparatorValue(false); - lines.add( - new Pair<>( - new ItemStack(Items.COMPARATOR), - Component.literal(comparatorValue == -1 ? "" : String.valueOf(comparatorValue)) - .withStyle(redstoneColor(comparatorValue)))); - }); - } - - private static UnaryOperator