Merge branch 'main' into mishaps
|
@ -35,9 +35,9 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
|||
// Adds the Kotlin Gradle plugin
|
||||
buildscript {
|
||||
dependencies {
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0"
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
|
||||
// OPTIONAL Kotlin Serialization plugin
|
||||
classpath 'org.jetbrains.kotlin:kotlin-serialization:1.6.0'
|
||||
classpath 'org.jetbrains.kotlin:kotlin-serialization:1.6.10'
|
||||
}
|
||||
}
|
||||
apply plugin: 'kotlin'
|
||||
|
|
|
@ -3,10 +3,12 @@
|
|||
aed50918bad8a7b00cd26e45d67eb509a04c9f6c assets/hexcasting/blockstates/amethyst_tiles.json
|
||||
27cedb7c1bb8fe4bc1c9b0ecb69678999ca08377 assets/hexcasting/blockstates/ancient_scroll_paper.json
|
||||
080fce1ae9fb8eeb7fc0cb7ad0a2db05b2ca3dc5 assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json
|
||||
2834b4ef19393aabf44d659d032d0cabe2c36a4f assets/hexcasting/blockstates/empty_directrix.json
|
||||
4d62b41c90cb0c5b94697e151c4aad964fb56727 assets/hexcasting/blockstates/empty_impetus.json
|
||||
6ed9718a95e195cd19dcca317e653e83f830f1d1 assets/hexcasting/blockstates/impetus_look.json
|
||||
8d7c7bfdca1def0205714465422d327dbcc00539 assets/hexcasting/blockstates/impetus_rightclick.json
|
||||
0c9402bc7269b1069a2d39f960b2e3095d5c1733 assets/hexcasting/blockstates/impetus_storedplayer.json
|
||||
73febb72e52a34e4d7abaf243a69c2e22c644ee2 assets/hexcasting/blockstates/redstone_directrix.json
|
||||
1c138caef4d5964cba77dc2b5dc3febe28ab65b7 assets/hexcasting/blockstates/scroll_paper.json
|
||||
77e723163f415795437b810fe87c348c96a989be assets/hexcasting/blockstates/scroll_paper_lantern.json
|
||||
5cb63493ae07f5ab5d8f686e3553c97a85105931 assets/hexcasting/blockstates/slate.json
|
||||
|
@ -15,6 +17,12 @@ de50477d8d34bbd69db98249cc6c878be8bc80f3 assets/hexcasting/models/block/amethyst
|
|||
df994438c20d9dec9009c9c56de74860a847681b assets/hexcasting/models/block/amethyst_tiles.json
|
||||
4e65ad75eeee22fa1d2c899fc86ac8b7b9a43701 assets/hexcasting/models/block/ancient_scroll_paper.json
|
||||
2a03847eb4ce6679219784cd1e29408e9cdb2c0b assets/hexcasting/models/block/ancient_scroll_paper_lantern.json
|
||||
dee605b03de1e145b8fe1b5e57cbc86cc8ceae9e assets/hexcasting/models/block/empty_directrix_dim_x.json
|
||||
f23e20b75d407758c1def44d7f7a6c648fac3d59 assets/hexcasting/models/block/empty_directrix_dim_y.json
|
||||
f5f34f91c22a91e479a038cedd383fa807385d20 assets/hexcasting/models/block/empty_directrix_dim_z.json
|
||||
bb82eb5e96b56726bdc2146e3d5ee9259c404b66 assets/hexcasting/models/block/empty_directrix_lit_x.json
|
||||
73c931554d691d679b4ac4f35f7d4b37c947310c assets/hexcasting/models/block/empty_directrix_lit_y.json
|
||||
085b773f8f362754ac773a8a1b3c6d8f5661b914 assets/hexcasting/models/block/empty_directrix_lit_z.json
|
||||
94c2f39fc0e4d53acbc0e8b378b0b00d0f0db7ab assets/hexcasting/models/block/empty_impetus_dim_down.json
|
||||
d4d59f1e508715190a69baeb23068e3297c8e6d0 assets/hexcasting/models/block/empty_impetus_dim_east.json
|
||||
c55a466e8878d6144b7b1da08eb4a6db7e12aefb assets/hexcasting/models/block/empty_impetus_dim_north.json
|
||||
|
@ -63,6 +71,30 @@ bae9e764c5cd4faa1fb91b12e95e0cb3fa23b1e2 assets/hexcasting/models/block/impetus_
|
|||
2e3426d3f3a530168b92a7276cbc2169f0c0a620 assets/hexcasting/models/block/impetus_storedplayer_lit_south.json
|
||||
b13533d0c0085a5965d2143535e5004281b06f8b assets/hexcasting/models/block/impetus_storedplayer_lit_up.json
|
||||
f7e114f1cb8bf4c8de3fc7bd3238a30bfdca99a5 assets/hexcasting/models/block/impetus_storedplayer_lit_west.json
|
||||
81cb2a01937c3aed1e6a8091bdb2e0287297075f assets/hexcasting/models/block/redstone_directrix_powered_dim_down.json
|
||||
deb0e05ddd90fe3f724a2faa9b466660a130bb0a assets/hexcasting/models/block/redstone_directrix_powered_dim_east.json
|
||||
959a401d73e8ac85ae4d54a6de2d436816210e4b assets/hexcasting/models/block/redstone_directrix_powered_dim_north.json
|
||||
75d6c73cf1d1771c8317f1d243d26a6a293614cd assets/hexcasting/models/block/redstone_directrix_powered_dim_south.json
|
||||
82aad82e1720d8d0cdd668205967a811076d1e9a assets/hexcasting/models/block/redstone_directrix_powered_dim_up.json
|
||||
479686ac2701b69fa308920e1d7ebebc1edc51c1 assets/hexcasting/models/block/redstone_directrix_powered_dim_west.json
|
||||
50a7d9e5453e9daa6e998fe26f4d1ecef3f554f2 assets/hexcasting/models/block/redstone_directrix_powered_lit_down.json
|
||||
3f8bc7677d54d35b38919306c8c746d0f18699f7 assets/hexcasting/models/block/redstone_directrix_powered_lit_east.json
|
||||
1ad98d64732d64f7585e7d64fb7d509e819dbfdb assets/hexcasting/models/block/redstone_directrix_powered_lit_north.json
|
||||
26fc3ab6a2aff5bf1e3af4844a81e89d576d2815 assets/hexcasting/models/block/redstone_directrix_powered_lit_south.json
|
||||
72a1b531e11859621ee2f7fb1237d8b6df2e4ce1 assets/hexcasting/models/block/redstone_directrix_powered_lit_up.json
|
||||
8854054092eabce17ad2c9b52257d6e9369e21d2 assets/hexcasting/models/block/redstone_directrix_powered_lit_west.json
|
||||
f1aa939c0e5359ebb5a2e6e605443aeae8e7190a assets/hexcasting/models/block/redstone_directrix_unpowered_dim_down.json
|
||||
44bc26b6062d9639ad9df8058a4a578c89167497 assets/hexcasting/models/block/redstone_directrix_unpowered_dim_east.json
|
||||
4d8dd7edf79d124fe7534d403176f0987c38f2bc assets/hexcasting/models/block/redstone_directrix_unpowered_dim_north.json
|
||||
6f2cade3581d4814be37a9fdc600b6feb6e60e36 assets/hexcasting/models/block/redstone_directrix_unpowered_dim_south.json
|
||||
273488e8738ba3ae133434765ce3dc008d97320b assets/hexcasting/models/block/redstone_directrix_unpowered_dim_up.json
|
||||
15e7f499cf6f31f69059758d2c38a73822aa6874 assets/hexcasting/models/block/redstone_directrix_unpowered_dim_west.json
|
||||
982e76b746ccfd1389892a05d59de9a760777beb assets/hexcasting/models/block/redstone_directrix_unpowered_lit_down.json
|
||||
a752ca73fe255f4cb2d062cba4447190985a795c assets/hexcasting/models/block/redstone_directrix_unpowered_lit_east.json
|
||||
7b0f2db78d809b4c26b72c97b0f1e1d402a78ce5 assets/hexcasting/models/block/redstone_directrix_unpowered_lit_north.json
|
||||
52ddbb9ce734899ede3b4c51611ce7efbad53790 assets/hexcasting/models/block/redstone_directrix_unpowered_lit_south.json
|
||||
69fad01ca4978a584fe1fc76e49bda284b5bbc41 assets/hexcasting/models/block/redstone_directrix_unpowered_lit_up.json
|
||||
510f136cd3bbdb9571e2f90b54678b50808ba41b assets/hexcasting/models/block/redstone_directrix_unpowered_lit_west.json
|
||||
649a5d560534d6f9502ed4f2d0fd88e3afecfa24 assets/hexcasting/models/block/scroll_paper.json
|
||||
9327633bd23735970a1ffe9811593a668e05947d assets/hexcasting/models/block/scroll_paper_lantern.json
|
||||
d51541b464840530f4e734db1f67ed20e811ad14 assets/hexcasting/models/block/slate_block.json
|
||||
|
@ -95,6 +127,7 @@ c2ceb08a8662a7e4a311401b0baced1add6f2e35 assets/hexcasting/models/item/dye_color
|
|||
f41fb9405b869644333872cd1ece40b1b07410d2 assets/hexcasting/models/item/dye_colorizer_red.json
|
||||
5894e7a1cc38ae5b09c651791c65c983d984d20c assets/hexcasting/models/item/dye_colorizer_white.json
|
||||
07959b86ed25559b4960c5f4aa7bab88bf9b5bf1 assets/hexcasting/models/item/dye_colorizer_yellow.json
|
||||
2d92703e675e4e5b1c2ee6ec4e9d4ca592bf1b40 assets/hexcasting/models/item/empty_directrix.json
|
||||
0a552831b1ae261666bf1c8f76af55582becddaa assets/hexcasting/models/item/empty_impetus.json
|
||||
f7f98a306a8a0529a54446b4876e624201525a1d assets/hexcasting/models/item/focus.json
|
||||
0146e90177ed71b25d2936ff3b2d9975e47c5142 assets/hexcasting/models/item/focus_double.json
|
||||
|
@ -145,6 +178,7 @@ fd858303001437d5aee2f134b4dce56fb8afb0aa assets/hexcasting/models/item/pride_col
|
|||
e7b88cde507911c0ad1bf60976dcc43a319d498d assets/hexcasting/models/item/pride_colorizer_7.json
|
||||
372ebac400778d51f5f3d32d98b1021b52da6f09 assets/hexcasting/models/item/pride_colorizer_8.json
|
||||
352169689d1b82d670142478b67a1515bd71d93d assets/hexcasting/models/item/pride_colorizer_9.json
|
||||
81c0a8098b595f9704e3b7b65f240bdd48457289 assets/hexcasting/models/item/redstone_directrix.json
|
||||
9ef07e2885063ed1ffe1cb8f7728f26cb7c9881e assets/hexcasting/models/item/scroll.json
|
||||
297b05008b9ab37b5881820a0f5c99f7441a9dfe assets/hexcasting/models/item/scroll_ancient.json
|
||||
7bc2499b363ab4bef749393f2984fae9e76ea982 assets/hexcasting/models/item/scroll_paper.json
|
||||
|
@ -226,9 +260,9 @@ eb17a23e7a9543f33922c056cdf0d63def176bf2 data/hexcasting/advancements/recipes/he
|
|||
cfd93238a1774a30a9da7c6b84e66c2e1e22f243 data/hexcasting/advancements/recipes/hexcasting/wand.json
|
||||
d31956749bebbcb3f0d3c37f89b569642ac8c2fb data/hexcasting/advancements/root.json
|
||||
739cbdf7f204132f2acfab4df8d21c6197aa1456 data/hexcasting/advancements/y_u_no_cast_angy.json
|
||||
b1a039d0e90be7882e7558b26a4ffaa30d22b968 data/hexcasting/loot_modifiers/amethyst_cluster_charged.json
|
||||
e3405d91602cacf6da7d12dd35e628c6ccc749cc data/hexcasting/loot_modifiers/amethyst_cluster_dust.json
|
||||
b0eac0b211d4621ab2cdda44d5d03f66582d88f7 data/hexcasting/loot_modifiers/amethyst_cluster_shard_reducer.json
|
||||
70a8f77d38affa642afbfceebe129358737b09ac data/hexcasting/loot_modifiers/amethyst_cluster_charged.json
|
||||
f746acc6b3e798d3b95f4ceb463c648b1f3ae8c3 data/hexcasting/loot_modifiers/amethyst_cluster_dust.json
|
||||
985be42281c0396c22b4976b8466448dccd716ec data/hexcasting/loot_modifiers/amethyst_cluster_shard_reducer.json
|
||||
e04be385fa9daa422e41a38ddd70fdd065107968 data/hexcasting/loot_modifiers/scroll_bastion.json
|
||||
6569766d1579114149eb0a1154d05ec3c964b2a3 data/hexcasting/loot_modifiers/scroll_cartographer.json
|
||||
afecba3144e00505977a4ab4de7940f949ab7818 data/hexcasting/loot_modifiers/scroll_dungeon.json
|
||||
|
@ -240,8 +274,12 @@ afecba3144e00505977a4ab4de7940f949ab7818 data/hexcasting/loot_modifiers/scroll_d
|
|||
79421f4528355837d12fbfcccb19e08a1eb40bff data/hexcasting/loot_tables/blocks/amethyst_tiles.json
|
||||
558ce469f2bcbf8f0498815b6b4c1fd4f2bfbc2b data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json
|
||||
4ba256a96d6794214775c6ea94074f03ace6cb90 data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json
|
||||
41834ac09febbefdca79bdbb404d42c91a4de2e5 data/hexcasting/loot_tables/blocks/empty_directrix.json
|
||||
5944235a01e31fbe3f2799f667b6deb2f8a62ca6 data/hexcasting/loot_tables/blocks/empty_impetus.json
|
||||
9d882c43431b33de256f2bc0acb831a393ab4740 data/hexcasting/loot_tables/blocks/impetus_look.json
|
||||
c87dcdb39d1d9cb0429763bbd32631cbf15047aa data/hexcasting/loot_tables/blocks/impetus_rightclick.json
|
||||
4c65e5287cefeec17703cb4959e12546b753d26b data/hexcasting/loot_tables/blocks/impetus_storedplayer.json
|
||||
e56bb2096532f216855128d5ad15085415ed9931 data/hexcasting/loot_tables/blocks/redstone_directrix.json
|
||||
e66ddc68e90e5e779f273a8d081c2f63e81d6698 data/hexcasting/loot_tables/blocks/scroll_paper.json
|
||||
fd662ce6977b96065bd438ff332bc5b9f62560e6 data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json
|
||||
17e53b980127473558a1a544e59d329a4701e7cc data/hexcasting/loot_tables/blocks/slate.json
|
||||
|
@ -307,5 +345,5 @@ d14cf2f8f0895a5b6dc09b7582c0abf1c2514adf data/hexcasting/recipes/sub_sandwich.js
|
|||
14d6be5d47b54676a349564ea32c045c76c39b45 data/hexcasting/recipes/uuid_colorizer.json
|
||||
0521d57838cb3e9795fc02ce47aa58db3b0188f9 data/hexcasting/recipes/wand.json
|
||||
f930dbc5b41d42150d388e39b29b940229658809 data/minecraft/tags/blocks/crystal_sound_blocks.json
|
||||
6ac1852c49b696a3f31bbd83a686b348da86b003 data/minecraft/tags/blocks/mineable/pickaxe.json
|
||||
f5c40ef0f3aaaa7e51f6407e96d7524bde741175 data/minecraft/tags/blocks/mineable/pickaxe.json
|
||||
f55afc2c05d93b5a44bc9fd73c5e81e71b183965 data/minecraft/tags/blocks/mineable/shovel.json
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"variants": {
|
||||
"axis=x,energized=false": {
|
||||
"model": "hexcasting:block/empty_directrix_dim_x"
|
||||
},
|
||||
"axis=y,energized=false": {
|
||||
"model": "hexcasting:block/empty_directrix_dim_y"
|
||||
},
|
||||
"axis=z,energized=false": {
|
||||
"model": "hexcasting:block/empty_directrix_dim_z"
|
||||
},
|
||||
"axis=x,energized=true": {
|
||||
"model": "hexcasting:block/empty_directrix_lit_x"
|
||||
},
|
||||
"axis=y,energized=true": {
|
||||
"model": "hexcasting:block/empty_directrix_lit_y"
|
||||
},
|
||||
"axis=z,energized=true": {
|
||||
"model": "hexcasting:block/empty_directrix_lit_z"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
{
|
||||
"variants": {
|
||||
"energized=false,facing=down,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_dim_down"
|
||||
},
|
||||
"energized=true,facing=down,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_lit_down"
|
||||
},
|
||||
"energized=false,facing=up,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_dim_up"
|
||||
},
|
||||
"energized=true,facing=up,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_lit_up"
|
||||
},
|
||||
"energized=false,facing=north,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_dim_north"
|
||||
},
|
||||
"energized=true,facing=north,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_lit_north"
|
||||
},
|
||||
"energized=false,facing=south,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_dim_south"
|
||||
},
|
||||
"energized=true,facing=south,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_lit_south"
|
||||
},
|
||||
"energized=false,facing=west,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_dim_west"
|
||||
},
|
||||
"energized=true,facing=west,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_lit_west"
|
||||
},
|
||||
"energized=false,facing=east,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_dim_east"
|
||||
},
|
||||
"energized=true,facing=east,powered=false": {
|
||||
"model": "hexcasting:block/redstone_directrix_unpowered_lit_east"
|
||||
},
|
||||
"energized=false,facing=down,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_dim_down"
|
||||
},
|
||||
"energized=true,facing=down,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_lit_down"
|
||||
},
|
||||
"energized=false,facing=up,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_dim_up"
|
||||
},
|
||||
"energized=true,facing=up,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_lit_up"
|
||||
},
|
||||
"energized=false,facing=north,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_dim_north"
|
||||
},
|
||||
"energized=true,facing=north,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_lit_north"
|
||||
},
|
||||
"energized=false,facing=south,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_dim_south"
|
||||
},
|
||||
"energized=true,facing=south,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_lit_south"
|
||||
},
|
||||
"energized=false,facing=west,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_dim_west"
|
||||
},
|
||||
"energized=true,facing=west,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_lit_west"
|
||||
},
|
||||
"energized=false,facing=east,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_dim_east"
|
||||
},
|
||||
"energized=true,facing=east,powered=true": {
|
||||
"model": "hexcasting:block/redstone_directrix_powered_lit_east"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/empty/horiz_dim",
|
||||
"up": "hexcasting:block/directrix/empty/horiz_dim",
|
||||
"north": "hexcasting:block/directrix/empty/horiz_dim",
|
||||
"south": "hexcasting:block/directrix/empty/horiz_dim",
|
||||
"east": "hexcasting:block/directrix/empty/end_dim",
|
||||
"west": "hexcasting:block/directrix/empty/end_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/empty/end_dim",
|
||||
"up": "hexcasting:block/directrix/empty/end_dim",
|
||||
"north": "hexcasting:block/directrix/empty/vert_dim",
|
||||
"south": "hexcasting:block/directrix/empty/vert_dim",
|
||||
"east": "hexcasting:block/directrix/empty/vert_dim",
|
||||
"west": "hexcasting:block/directrix/empty/vert_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/empty/vert_dim",
|
||||
"up": "hexcasting:block/directrix/empty/vert_dim",
|
||||
"north": "hexcasting:block/directrix/empty/end_dim",
|
||||
"south": "hexcasting:block/directrix/empty/end_dim",
|
||||
"east": "hexcasting:block/directrix/empty/horiz_dim",
|
||||
"west": "hexcasting:block/directrix/empty/horiz_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/empty/horiz_lit",
|
||||
"up": "hexcasting:block/directrix/empty/horiz_lit",
|
||||
"north": "hexcasting:block/directrix/empty/horiz_lit",
|
||||
"south": "hexcasting:block/directrix/empty/horiz_lit",
|
||||
"east": "hexcasting:block/directrix/empty/end_lit",
|
||||
"west": "hexcasting:block/directrix/empty/end_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/empty/end_lit",
|
||||
"up": "hexcasting:block/directrix/empty/end_lit",
|
||||
"north": "hexcasting:block/directrix/empty/vert_lit",
|
||||
"south": "hexcasting:block/directrix/empty/vert_lit",
|
||||
"east": "hexcasting:block/directrix/empty/vert_lit",
|
||||
"west": "hexcasting:block/directrix/empty/vert_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/empty/vert_lit",
|
||||
"up": "hexcasting:block/directrix/empty/vert_lit",
|
||||
"north": "hexcasting:block/directrix/empty/end_lit",
|
||||
"south": "hexcasting:block/directrix/empty/end_lit",
|
||||
"east": "hexcasting:block/directrix/empty/horiz_lit",
|
||||
"west": "hexcasting:block/directrix/empty/horiz_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"north": "hexcasting:block/directrix/redstone/down_powered_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/down_powered_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/down_powered_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/down_powered_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/right_powered_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/right_powered_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/left_powered_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/right_powered_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/down_powered_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/up_powered_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"east": "hexcasting:block/directrix/redstone/right_powered_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/left_powered_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/up_powered_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/down_powered_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"south": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/left_powered_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/right_powered_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"up": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/up_powered_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/up_powered_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/up_powered_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/up_powered_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/left_powered_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/left_powered_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/right_powered_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/left_powered_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"west": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"north": "hexcasting:block/directrix/redstone/down_powered_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/down_powered_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/down_powered_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/down_powered_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/right_powered_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/right_powered_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/left_powered_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/right_powered_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/down_powered_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/up_powered_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"east": "hexcasting:block/directrix/redstone/right_powered_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/left_powered_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/up_powered_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/down_powered_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"south": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/left_powered_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/right_powered_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"up": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/up_powered_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/up_powered_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/up_powered_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/up_powered_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/left_powered_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/left_powered_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/right_powered_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/left_powered_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/back_powered",
|
||||
"west": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"north": "hexcasting:block/directrix/redstone/down_unpowered_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/down_unpowered_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/down_unpowered_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/down_unpowered_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/right_unpowered_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/right_unpowered_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/left_unpowered_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/right_unpowered_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/down_unpowered_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/up_unpowered_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"east": "hexcasting:block/directrix/redstone/right_unpowered_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/left_unpowered_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/up_unpowered_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/down_unpowered_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"south": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/left_unpowered_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/right_unpowered_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"up": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/up_unpowered_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/up_unpowered_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/up_unpowered_dim",
|
||||
"west": "hexcasting:block/directrix/redstone/up_unpowered_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/left_unpowered_dim",
|
||||
"up": "hexcasting:block/directrix/redstone/left_unpowered_dim",
|
||||
"north": "hexcasting:block/directrix/redstone/right_unpowered_dim",
|
||||
"south": "hexcasting:block/directrix/redstone/left_unpowered_dim",
|
||||
"east": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"west": "hexcasting:block/directrix/redstone/front_dim",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"north": "hexcasting:block/directrix/redstone/down_unpowered_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/down_unpowered_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/down_unpowered_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/down_unpowered_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/right_unpowered_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/right_unpowered_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/left_unpowered_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/right_unpowered_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/down_unpowered_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/up_unpowered_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"east": "hexcasting:block/directrix/redstone/right_unpowered_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/left_unpowered_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/up_unpowered_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/down_unpowered_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"south": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/left_unpowered_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/right_unpowered_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"up": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/up_unpowered_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/up_unpowered_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/up_unpowered_lit",
|
||||
"west": "hexcasting:block/directrix/redstone/up_unpowered_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "hexcasting:block/directrix/redstone/left_unpowered_lit",
|
||||
"up": "hexcasting:block/directrix/redstone/left_unpowered_lit",
|
||||
"north": "hexcasting:block/directrix/redstone/right_unpowered_lit",
|
||||
"south": "hexcasting:block/directrix/redstone/left_unpowered_lit",
|
||||
"east": "hexcasting:block/directrix/redstone/back_unpowered",
|
||||
"west": "hexcasting:block/directrix/redstone/front_lit",
|
||||
"particle": "hexcasting:block/slate"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "hexcasting:block/empty_directrix_dim_z"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "hexcasting:block/redstone_directrix_unpowered_dim_north"
|
||||
}
|
|
@ -21,9 +21,10 @@
|
|||
"condition": "minecraft:table_bonus",
|
||||
"enchantment": "minecraft:fortune",
|
||||
"chances": [
|
||||
0.25,
|
||||
0.35,
|
||||
0.5,
|
||||
0.8,
|
||||
0.9,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
|
|
|
@ -22,7 +22,11 @@
|
|||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": 4.0,
|
||||
"count": {
|
||||
"type": "minecraft:uniform",
|
||||
"min": 1.0,
|
||||
"max": 4.0
|
||||
},
|
||||
"add": false
|
||||
},
|
||||
{
|
||||
|
|
|
@ -3,6 +3,19 @@
|
|||
{
|
||||
"condition": "forge:loot_table_id",
|
||||
"loot_table_id": "minecraft:blocks/amethyst_cluster"
|
||||
},
|
||||
{
|
||||
"condition": "minecraft:inverted",
|
||||
"term": {
|
||||
"condition": "minecraft:match_tool",
|
||||
"predicate": {
|
||||
"enchantments": [
|
||||
{
|
||||
"enchantment": "minecraft:silk_touch"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"item": "minecraft:amethyst_shard",
|
||||
|
@ -10,7 +23,7 @@
|
|||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": -2.0,
|
||||
"add": false
|
||||
"add": true
|
||||
}
|
||||
],
|
||||
"type": "paucal:add_item"
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"name": "empty_directrix",
|
||||
"rolls": 1.0,
|
||||
"bonus_rolls": 0.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "hexcasting:empty_directrix"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"name": "impetus_look",
|
||||
"rolls": 1.0,
|
||||
"bonus_rolls": 0.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "hexcasting:impetus_look"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"name": "impetus_storedplayer",
|
||||
"rolls": 1.0,
|
||||
"bonus_rolls": 0.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "hexcasting:impetus_storedplayer"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"name": "redstone_directrix",
|
||||
"rolls": 1.0,
|
||||
"bonus_rolls": 0.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "hexcasting:redstone_directrix"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -3,8 +3,12 @@
|
|||
"values": [
|
||||
"hexcasting:slate_block",
|
||||
"hexcasting:slate",
|
||||
"hexcasting:empty_directrix",
|
||||
"hexcasting:redstone_directrix",
|
||||
"hexcasting:empty_impetus",
|
||||
"hexcasting:impetus_rightclick",
|
||||
"hexcasting:impetus_look",
|
||||
"hexcasting:impetus_storedplayer",
|
||||
"hexcasting:amethyst_tiles",
|
||||
"hexcasting:amethyst_sconce"
|
||||
]
|
||||
|
|
|
@ -5,6 +5,8 @@ import at.petrak.hexcasting.api.circle.BlockAbstractImpetus;
|
|||
import at.petrak.hexcasting.common.blocks.circles.BlockEmptyImpetus;
|
||||
import at.petrak.hexcasting.common.blocks.circles.BlockEntitySlate;
|
||||
import at.petrak.hexcasting.common.blocks.circles.BlockSlate;
|
||||
import at.petrak.hexcasting.common.blocks.circles.directrix.BlockEmptyDirectrix;
|
||||
import at.petrak.hexcasting.common.blocks.circles.directrix.BlockRedstoneDirectrix;
|
||||
import at.petrak.hexcasting.common.blocks.circles.impetuses.*;
|
||||
import at.petrak.hexcasting.common.blocks.decoration.BlockSconce;
|
||||
import at.petrak.hexcasting.common.items.HexItems;
|
||||
|
@ -57,6 +59,11 @@ public class HexBlocks {
|
|||
public static final RegistryObject<BlockEmptyImpetus> EMPTY_IMPETUS = blockItem("empty_impetus",
|
||||
() -> new BlockEmptyImpetus(slateish()));
|
||||
|
||||
public static final RegistryObject<BlockEmptyDirectrix> EMPTY_DIRECTRIX = blockItem("empty_directrix",
|
||||
() -> new BlockEmptyDirectrix(slateish()));
|
||||
public static final RegistryObject<BlockRedstoneDirectrix> DIRECTRIX_REDSTONE = blockItem("redstone_directrix",
|
||||
() -> new BlockRedstoneDirectrix(slateish()));
|
||||
|
||||
public static final RegistryObject<BlockRightClickImpetus> IMPETUS_RIGHTCLICK = blockItem(
|
||||
"impetus_rightclick",
|
||||
() -> new BlockRightClickImpetus(slateish()
|
||||
|
|
|
@ -13,6 +13,7 @@ import net.minecraft.world.level.block.state.BlockState;
|
|||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||
import net.minecraft.world.level.material.PushReaction;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
@ -53,6 +54,11 @@ public class BlockEmptyImpetus extends BlockCircleComponent {
|
|||
return 0.5f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PushReaction getPistonPushReaction(BlockState pState) {
|
||||
return PushReaction.BLOCK;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||
super.createBlockStateDefinition(builder);
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
package at.petrak.hexcasting.common.blocks.circles.directrix;
|
||||
|
||||
import at.petrak.hexcasting.api.circle.BlockCircleComponent;
|
||||
import at.petrak.hexcasting.hexmath.HexPattern;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
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.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.EnumProperty;
|
||||
import net.minecraft.world.level.material.PushReaction;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
public class BlockEmptyDirectrix extends BlockCircleComponent {
|
||||
public static final EnumProperty<Direction.Axis> AXIS = BlockStateProperties.AXIS;
|
||||
|
||||
public BlockEmptyDirectrix(Properties p_49795_) {
|
||||
super(p_49795_);
|
||||
this.registerDefaultState(this.stateDefinition.any()
|
||||
.setValue(ENERGIZED, false)
|
||||
.setValue(AXIS, Direction.Axis.X));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canEnterFromDirection(Direction enterDir, Direction normalDir, BlockPos pos, BlockState bs,
|
||||
Level world) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<Direction> exitDirections(BlockPos pos, BlockState bs, Level world) {
|
||||
var sign = world.random.nextBoolean() ? Direction.AxisDirection.POSITIVE : Direction.AxisDirection.NEGATIVE;
|
||||
return EnumSet.of(Direction.fromAxisAndDirection(bs.getValue(AXIS), sign));
|
||||
}
|
||||
|
||||
@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 Direction.UP;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float particleHeight(BlockPos pos, BlockState bs, Level world) {
|
||||
return 0.5f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PushReaction getPistonPushReaction(BlockState pState) {
|
||||
return PushReaction.BLOCK;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||
super.createBlockStateDefinition(builder);
|
||||
builder.add(AXIS);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext pContext) {
|
||||
return this.defaultBlockState().setValue(AXIS, pContext.getNearestLookingDirection().getAxis());
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState rotate(BlockState pState, Rotation pRot) {
|
||||
return pState.setValue(AXIS,
|
||||
pRot.rotate(Direction.get(Direction.AxisDirection.POSITIVE, pState.getValue(AXIS))).getAxis());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,127 @@
|
|||
package at.petrak.hexcasting.common.blocks.circles.directrix;
|
||||
|
||||
import at.petrak.hexcasting.api.circle.BlockCircleComponent;
|
||||
import at.petrak.hexcasting.hexmath.HexPattern;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.particles.DustParticleOptions;
|
||||
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.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.BooleanProperty;
|
||||
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||
import net.minecraft.world.level.material.PushReaction;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.Random;
|
||||
|
||||
public class BlockRedstoneDirectrix extends BlockCircleComponent {
|
||||
public static final DirectionProperty FACING = BlockStateProperties.FACING;
|
||||
public static final BooleanProperty REDSTONE_POWERED = BlockStateProperties.POWERED;
|
||||
|
||||
public BlockRedstoneDirectrix(Properties p_49795_) {
|
||||
super(p_49795_);
|
||||
this.registerDefaultState(this.stateDefinition.any()
|
||||
.setValue(REDSTONE_POWERED, false)
|
||||
.setValue(ENERGIZED, false)
|
||||
.setValue(FACING, Direction.NORTH));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canEnterFromDirection(Direction enterDir, Direction normalDir, BlockPos pos, BlockState bs,
|
||||
Level world) {
|
||||
return enterDir != getRealFacing(bs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<Direction> exitDirections(BlockPos pos, BlockState bs, Level world) {
|
||||
return EnumSet.of(getRealFacing(bs));
|
||||
}
|
||||
|
||||
@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(getRealFacing(bs)), world, recursionLeft);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float particleHeight(BlockPos pos, BlockState bs, Level world) {
|
||||
return 0.5f;
|
||||
}
|
||||
|
||||
protected Direction getRealFacing(BlockState bs) {
|
||||
var facing = bs.getValue(FACING);
|
||||
if (bs.getValue(REDSTONE_POWERED)) {
|
||||
return facing.getOpposite();
|
||||
} else {
|
||||
return facing;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void neighborChanged(BlockState pState, Level pLevel, BlockPos pPos, Block pBlock, BlockPos pFromPos,
|
||||
boolean pIsMoving) {
|
||||
super.neighborChanged(pState, pLevel, pPos, pBlock, pFromPos, pIsMoving);
|
||||
|
||||
if (!pLevel.isClientSide) {
|
||||
boolean currentlyPowered = pState.getValue(REDSTONE_POWERED);
|
||||
if (currentlyPowered != pLevel.hasNeighborSignal(pPos)) {
|
||||
pLevel.setBlock(pPos, pState.setValue(REDSTONE_POWERED, !currentlyPowered), 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void animateTick(BlockState bs, Level pLevel, BlockPos pos, Random rand) {
|
||||
if (bs.getValue(REDSTONE_POWERED)) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
var step = bs.getValue(FACING).getOpposite().step();
|
||||
var center = Vec3.atCenterOf(pos).add(step.x() * 0.5, step.y() * 0.5, step.z() * 0.5);
|
||||
double x = center.x + (rand.nextDouble() - 0.5) * 0.5D;
|
||||
double y = center.y + (rand.nextDouble() - 0.5) * 0.5D;
|
||||
double z = center.z + (rand.nextDouble() - 0.5) * 0.5D;
|
||||
pLevel.addParticle(DustParticleOptions.REDSTONE, x, y, z,
|
||||
step.x() * 0.1, step.y() * 0.1, step.z() * 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public PushReaction getPistonPushReaction(BlockState pState) {
|
||||
return PushReaction.BLOCK;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||
super.createBlockStateDefinition(builder);
|
||||
builder.add(REDSTONE_POWERED, 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)));
|
||||
}
|
||||
}
|
|
@ -178,35 +178,35 @@ public class RegisterPatterns {
|
|||
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qqqqqaqwawaw", HexDir.NORTH_WEST),
|
||||
prefix("potion/weakness"),
|
||||
new OpPotionEffect(MobEffects.WEAKNESS, 10_000 / 10, true));
|
||||
new OpPotionEffect(MobEffects.WEAKNESS, 10_000 / 10, true, false));
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qqqqqawwawawd", HexDir.WEST),
|
||||
prefix("potion/levitation"),
|
||||
new OpPotionEffect(MobEffects.LEVITATION, 10_000 / 5, false));
|
||||
new OpPotionEffect(MobEffects.LEVITATION, 10_000 / 5, false, false));
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qqqqqaewawawe", HexDir.SOUTH_WEST),
|
||||
prefix("potion/wither"),
|
||||
new OpPotionEffect(MobEffects.WITHER, 10_000, true));
|
||||
new OpPotionEffect(MobEffects.WITHER, 10_000, true, false));
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qqqqqadwawaww", HexDir.SOUTH_EAST),
|
||||
prefix("potion/poison"),
|
||||
new OpPotionEffect(MobEffects.POISON, 10_000 / 3, true));
|
||||
new OpPotionEffect(MobEffects.POISON, 10_000 / 3, true, false));
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qqqqqadwawaw", HexDir.SOUTH_EAST),
|
||||
prefix("potion/slowness"),
|
||||
new OpPotionEffect(MobEffects.MOVEMENT_SLOWDOWN, 10_000 / 3, true));
|
||||
new OpPotionEffect(MobEffects.MOVEMENT_SLOWDOWN, 10_000 / 3, true, false));
|
||||
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qqqqaawawaedd", HexDir.NORTH_WEST),
|
||||
prefix("potion/regeneration"),
|
||||
new OpPotionEffect(MobEffects.REGENERATION, 10_000, true), true);
|
||||
new OpPotionEffect(MobEffects.REGENERATION, 10_000, true, true), true);
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qqqaawawaeqdd", HexDir.WEST),
|
||||
prefix("potion/night_vision"),
|
||||
new OpPotionEffect(MobEffects.NIGHT_VISION, 10_000 / 5, false), true);
|
||||
new OpPotionEffect(MobEffects.NIGHT_VISION, 10_000 / 5, false, true), true);
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qqaawawaeqqdd", HexDir.SOUTH_WEST),
|
||||
prefix("potion/absorption"),
|
||||
new OpPotionEffect(MobEffects.ABSORPTION, 10_000, true), true);
|
||||
new OpPotionEffect(MobEffects.ABSORPTION, 10_000, true, true), true);
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qaawawaeqqqdd", HexDir.SOUTH_EAST),
|
||||
prefix("potion/haste"),
|
||||
new OpPotionEffect(MobEffects.DIG_SPEED, 10_000 / 3, true), true);
|
||||
new OpPotionEffect(MobEffects.DIG_SPEED, 10_000 / 3, true, true), true);
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("aawawaeqqqqdd", HexDir.EAST),
|
||||
prefix("potion/strength"),
|
||||
new OpPotionEffect(MobEffects.DAMAGE_BOOST, 10_000 / 3, true), true);
|
||||
new OpPotionEffect(MobEffects.DAMAGE_BOOST, 10_000 / 3, true, true), true);
|
||||
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("waeawae", HexDir.EAST),
|
||||
prefix("sentinel/create"),
|
||||
|
@ -343,7 +343,7 @@ public class RegisterPatterns {
|
|||
OpAppend.INSTANCE);
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("qaeaq", HexDir.NORTH_WEST), prefix("concat"),
|
||||
OpConcat.INSTANCE);
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("deeed", HexDir.NORTH_EAST), prefix("index"),
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("deeed", HexDir.NORTH_WEST), prefix("index"),
|
||||
OpIndex.INSTANCE);
|
||||
PatternRegistry.mapPattern(HexPattern.FromAnglesSig("dadad", HexDir.NORTH_EAST), prefix("for_each"),
|
||||
OpForEach.INSTANCE);
|
||||
|
|
|
@ -11,9 +11,14 @@ import net.minecraft.world.effect.MobEffectInstance
|
|||
import net.minecraft.world.entity.LivingEntity
|
||||
import kotlin.math.max
|
||||
|
||||
class OpPotionEffect(val effect: MobEffect, val baseCost: Int, val potency: Boolean) : SpellOperator {
|
||||
class OpPotionEffect(
|
||||
val effect: MobEffect,
|
||||
val baseCost: Int,
|
||||
val allowPotency: Boolean,
|
||||
val potencyCubic: Boolean
|
||||
) : SpellOperator {
|
||||
override val argc: Int
|
||||
get() = if (this.potency) 3 else 2
|
||||
get() = if (this.allowPotency) 3 else 2
|
||||
|
||||
override fun execute(
|
||||
args: List<SpellDatum<*>>,
|
||||
|
@ -22,11 +27,15 @@ class OpPotionEffect(val effect: MobEffect, val baseCost: Int, val potency: Bool
|
|||
val target = args.getChecked<LivingEntity>(0)
|
||||
val duration = max(args.getChecked(1), 0.0)
|
||||
ctx.assertEntityInRange(target)
|
||||
val potency = if (this.potency)
|
||||
val potency = if (this.allowPotency)
|
||||
max(args.getChecked(2), 1.0)
|
||||
else 1.0
|
||||
|
||||
val cost = this.baseCost * duration * potency
|
||||
val cost = this.baseCost * duration * if (potencyCubic) {
|
||||
potency * potency * potency
|
||||
} else {
|
||||
potency * potency
|
||||
}
|
||||
return Triple(
|
||||
Spell(effect, target, duration, potency),
|
||||
cost.toInt(),
|
||||
|
|
|
@ -4,6 +4,7 @@ import at.petrak.hexcasting.HexMod;
|
|||
import at.petrak.hexcasting.api.circle.BlockCircleComponent;
|
||||
import at.petrak.hexcasting.common.blocks.HexBlocks;
|
||||
import at.petrak.hexcasting.common.blocks.circles.BlockSlate;
|
||||
import at.petrak.hexcasting.common.blocks.circles.directrix.BlockRedstoneDirectrix;
|
||||
import at.petrak.paucal.api.datagen.PaucalBlockStateAndModelProvider;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
|
@ -51,6 +52,72 @@ public class HexBlockStatesAndModels extends PaucalBlockStateAndModelProvider {
|
|||
"impetus/right_empty"
|
||||
);
|
||||
|
||||
// auugh
|
||||
getVariantBuilder(HexBlocks.DIRECTRIX_REDSTONE.get()).forAllStates(bs -> {
|
||||
var isLit = bs.getValue(BlockCircleComponent.ENERGIZED);
|
||||
var litness = isLit ? "lit" : "dim";
|
||||
var isPowered = bs.getValue(BlockRedstoneDirectrix.REDSTONE_POWERED);
|
||||
var poweredness = isPowered ? "powered" : "unpowered";
|
||||
var dir = bs.getValue(BlockStateProperties.FACING);
|
||||
|
||||
var up = modLoc("block/directrix/redstone/up_" + poweredness + "_" + litness);
|
||||
var left = modLoc("block/directrix/redstone/left_" + poweredness + "_" + litness);
|
||||
var right = modLoc("block/directrix/redstone/right_" + poweredness + "_" + litness);
|
||||
var down = modLoc("block/directrix/redstone/down_" + poweredness + "_" + litness);
|
||||
var front = modLoc("block/directrix/redstone/front_" + litness);
|
||||
var back = modLoc("block/directrix/redstone/back_" + poweredness);
|
||||
|
||||
var routing = routeReslocsForArrowBlock(dir, front, back, up, down, left, right);
|
||||
|
||||
var modelName = "redstone_directrix_" + poweredness + "_" + litness + "_" + dir.getName();
|
||||
var model = models().cube(modelName, routing[0], routing[1], routing[2], routing[3], routing[4], routing[5])
|
||||
.texture("particle", modLoc("block/slate"));
|
||||
if (!isLit && !isPowered && dir == Direction.NORTH) {
|
||||
simpleBlockItem(HexBlocks.DIRECTRIX_REDSTONE.get(), model);
|
||||
}
|
||||
return ConfiguredModel.builder()
|
||||
.modelFile(model)
|
||||
.build();
|
||||
});
|
||||
getVariantBuilder(HexBlocks.EMPTY_DIRECTRIX.get()).forAllStates(bs -> {
|
||||
var isLit = bs.getValue(BlockCircleComponent.ENERGIZED);
|
||||
var litness = isLit ? "lit" : "dim";
|
||||
var axis = bs.getValue(BlockStateProperties.AXIS);
|
||||
|
||||
var horiz = modLoc("block/directrix/empty/horiz_" + litness);
|
||||
var vert = modLoc("block/directrix/empty/vert_" + litness);
|
||||
var end = modLoc("block/directrix/empty/end_" + litness);
|
||||
|
||||
ResourceLocation x = null, y = null, z = null;
|
||||
switch (axis) {
|
||||
case X -> {
|
||||
x = end;
|
||||
y = horiz;
|
||||
z = horiz;
|
||||
}
|
||||
case Y -> {
|
||||
x = vert;
|
||||
y = end;
|
||||
z = vert;
|
||||
}
|
||||
case Z -> {
|
||||
x = horiz;
|
||||
y = vert;
|
||||
z = end;
|
||||
}
|
||||
}
|
||||
|
||||
var modelName = "empty_directrix_" + litness + "_" + axis.getName();
|
||||
var model = models().cube(modelName, y, y, z, z, x, x)
|
||||
.texture("particle", modLoc("block/slate"));
|
||||
if (!isLit && axis == Direction.Axis.Z) {
|
||||
simpleBlockItem(HexBlocks.EMPTY_DIRECTRIX.get(), model);
|
||||
}
|
||||
return ConfiguredModel.builder()
|
||||
.modelFile(model)
|
||||
.build();
|
||||
});
|
||||
|
||||
blockAndItem(HexBlocks.SLATE_BLOCK.get(), models().cubeAll("slate_block", modLoc("block/slate")));
|
||||
cubeBlockAndItem(HexBlocks.AMETHYST_DUST_BLOCK.get(), "amethyst_dust_block");
|
||||
cubeBlockAndItem(HexBlocks.AMETHYST_TILES.get(), "amethyst_tiles");
|
||||
|
@ -89,54 +156,10 @@ public class HexBlockStatesAndModels extends PaucalBlockStateAndModelProvider {
|
|||
var right = modLoc("block/" + rightStub + "_" + litness);
|
||||
var down = modLoc("block/" + downStub + "_" + litness);
|
||||
|
||||
ResourceLocation bottom = null, top = null, north = null, south = null, east = null, west = null;
|
||||
switch (dir) {
|
||||
case UP -> {
|
||||
top = front;
|
||||
bottom = back;
|
||||
north = east = south = west = up;
|
||||
}
|
||||
case DOWN -> {
|
||||
bottom = front;
|
||||
top = back;
|
||||
north = east = south = west = down;
|
||||
}
|
||||
case NORTH -> {
|
||||
north = front;
|
||||
south = back;
|
||||
west = left;
|
||||
east = right;
|
||||
top = up;
|
||||
bottom = down;
|
||||
}
|
||||
case SOUTH -> {
|
||||
south = front;
|
||||
north = back;
|
||||
west = right;
|
||||
east = left;
|
||||
top = down;
|
||||
bottom = up;
|
||||
}
|
||||
case WEST -> {
|
||||
west = front;
|
||||
east = back;
|
||||
north = right;
|
||||
south = left;
|
||||
top = left;
|
||||
bottom = left;
|
||||
}
|
||||
case EAST -> {
|
||||
east = front;
|
||||
west = back;
|
||||
north = left;
|
||||
south = right;
|
||||
top = right;
|
||||
bottom = right;
|
||||
}
|
||||
}
|
||||
var routing = routeReslocsForArrowBlock(dir, front, back, up, down, left, right);
|
||||
|
||||
var modelName = name + "_" + litness + "_" + dir.getName();
|
||||
var model = models().cube(modelName, bottom, top, north, south, east, west)
|
||||
var model = models().cube(modelName, routing[0], routing[1], routing[2], routing[3], routing[4], routing[5])
|
||||
.texture("particle", particle);
|
||||
// Ordinarily i would use north, because north is the lower-right direction in the inv
|
||||
// and that's where other blocks face.
|
||||
|
@ -150,4 +173,56 @@ public class HexBlockStatesAndModels extends PaucalBlockStateAndModelProvider {
|
|||
.build();
|
||||
});
|
||||
}
|
||||
|
||||
private static ResourceLocation[] routeReslocsForArrowBlock(Direction dir, ResourceLocation front,
|
||||
ResourceLocation back,
|
||||
ResourceLocation up, ResourceLocation down,
|
||||
ResourceLocation left, ResourceLocation right) {
|
||||
ResourceLocation bottom = null, top = null, north = null, south = null, east = null, west = null;
|
||||
switch (dir) {
|
||||
case UP -> {
|
||||
top = front;
|
||||
bottom = back;
|
||||
north = east = south = west = up;
|
||||
}
|
||||
case DOWN -> {
|
||||
bottom = front;
|
||||
top = back;
|
||||
north = east = south = west = down;
|
||||
}
|
||||
case NORTH -> {
|
||||
north = front;
|
||||
south = back;
|
||||
west = left;
|
||||
east = right;
|
||||
top = up;
|
||||
bottom = down;
|
||||
}
|
||||
case SOUTH -> {
|
||||
south = front;
|
||||
north = back;
|
||||
west = right;
|
||||
east = left;
|
||||
top = down;
|
||||
bottom = up;
|
||||
}
|
||||
case WEST -> {
|
||||
west = front;
|
||||
east = back;
|
||||
north = right;
|
||||
south = left;
|
||||
top = left;
|
||||
bottom = left;
|
||||
}
|
||||
case EAST -> {
|
||||
east = front;
|
||||
west = back;
|
||||
north = left;
|
||||
south = right;
|
||||
top = right;
|
||||
bottom = right;
|
||||
}
|
||||
}
|
||||
return new ResourceLocation[]{bottom, top, north, south, east, west};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,8 +17,10 @@ public class HexBlockTags extends BlockTagsProvider {
|
|||
@Override
|
||||
protected void addTags() {
|
||||
tag(BlockTags.MINEABLE_WITH_PICKAXE)
|
||||
.add(HexBlocks.SLATE_BLOCK.get(), HexBlocks.SLATE.get(), HexBlocks.EMPTY_IMPETUS.get(),
|
||||
HexBlocks.IMPETUS_RIGHTCLICK.get(),
|
||||
.add(HexBlocks.SLATE_BLOCK.get(), HexBlocks.SLATE.get(),
|
||||
HexBlocks.EMPTY_DIRECTRIX.get(), HexBlocks.DIRECTRIX_REDSTONE.get(),
|
||||
HexBlocks.EMPTY_IMPETUS.get(),
|
||||
HexBlocks.IMPETUS_RIGHTCLICK.get(), HexBlocks.IMPETUS_LOOK.get(), HexBlocks.IMPETUS_STOREDPLAYER.get(),
|
||||
HexBlocks.AMETHYST_TILES.get(), HexBlocks.SCONCE.get());
|
||||
|
||||
tag(BlockTags.MINEABLE_WITH_SHOVEL)
|
||||
|
|
|
@ -3,8 +3,6 @@ package at.petrak.hexcasting.datagen;
|
|||
import at.petrak.hexcasting.common.blocks.HexBlocks;
|
||||
import at.petrak.hexcasting.common.blocks.circles.BlockEntitySlate;
|
||||
import at.petrak.paucal.api.datagen.PaucalLootTableProvider;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.storage.loot.LootPool;
|
||||
|
@ -19,16 +17,15 @@ import java.util.Map;
|
|||
// https://github.com/XuulMedia/Flint-Age/blob/4638289130ef80dafe9b6a3fdcb461a72688100f/src/main/java/xuul/flint/datagen/BaseLootTableProvider.java#L61
|
||||
// auugh mojang whyyyy
|
||||
public class HexLootTables extends PaucalLootTableProvider {
|
||||
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
|
||||
|
||||
|
||||
public HexLootTables(DataGenerator pGenerator) {
|
||||
super(pGenerator);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void makeLootTables(Map<Block, LootTable.Builder> lootTables) {
|
||||
dropSelfTable(lootTables, HexBlocks.EMPTY_IMPETUS, HexBlocks.IMPETUS_RIGHTCLICK,
|
||||
dropSelfTable(lootTables, HexBlocks.EMPTY_IMPETUS,
|
||||
HexBlocks.IMPETUS_RIGHTCLICK, HexBlocks.IMPETUS_LOOK, HexBlocks.IMPETUS_STOREDPLAYER,
|
||||
HexBlocks.DIRECTRIX_REDSTONE, HexBlocks.EMPTY_DIRECTRIX,
|
||||
HexBlocks.SLATE_BLOCK, HexBlocks.AMETHYST_DUST_BLOCK, HexBlocks.AMETHYST_TILES, HexBlocks.SCROLL_PAPER,
|
||||
HexBlocks.ANCIENT_SCROLL_PAPER, HexBlocks.SCROLL_PAPER_LANTERN, HexBlocks.ANCIENT_SCROLL_PAPER_LANTERN,
|
||||
HexBlocks.SCONCE);
|
||||
|
|
|
@ -18,6 +18,7 @@ import net.minecraft.world.level.storage.loot.predicates.BonusLevelTableConditio
|
|||
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
|
||||
import net.minecraft.world.level.storage.loot.predicates.MatchTool;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
|
||||
import net.minecraftforge.common.data.GlobalLootModifierProvider;
|
||||
import net.minecraftforge.common.loot.GlobalLootModifierSerializer;
|
||||
import net.minecraftforge.common.loot.LootTableIdCondition;
|
||||
|
@ -40,12 +41,20 @@ public class HexLootModifiers extends GlobalLootModifierProvider {
|
|||
ResourceLocation amethystCluster = new ResourceLocation("minecraft:blocks/amethyst_cluster");
|
||||
// 4? that's a lot!
|
||||
add("amethyst_cluster_shard_reducer", PaucalLootMods.ADD_ITEM.get(), new PaucalAddItemModifier(
|
||||
Items.AMETHYST_SHARD, -2, amethystCluster
|
||||
Items.AMETHYST_SHARD, new LootItemFunction[]{
|
||||
SetItemCountFunction.setCount(ConstantValue.exactly(-2), true).build(),
|
||||
}, new LootItemCondition[]{
|
||||
LootTableIdCondition.builder(amethystCluster).build(),
|
||||
MatchTool.toolMatches(
|
||||
ItemPredicate.Builder.item().hasEnchantment(
|
||||
new EnchantmentPredicate(Enchantments.SILK_TOUCH, MinMaxBounds.Ints.ANY)))
|
||||
.invert().build(),
|
||||
}
|
||||
));
|
||||
|
||||
add("amethyst_cluster_dust", PaucalLootMods.ADD_ITEM.get(), new PaucalAddItemModifier(
|
||||
HexItems.AMETHYST_DUST.get(), new LootItemFunction[]{
|
||||
SetItemCountFunction.setCount(ConstantValue.exactly(4)).build(),
|
||||
SetItemCountFunction.setCount(UniformGenerator.between(1, 4)).build(),
|
||||
ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE).build()
|
||||
}, new LootItemCondition[]{
|
||||
LootTableIdCondition.builder(amethystCluster).build(),
|
||||
|
@ -62,7 +71,8 @@ public class HexLootModifiers extends GlobalLootModifierProvider {
|
|||
ItemPredicate.Builder.item().hasEnchantment(
|
||||
new EnchantmentPredicate(Enchantments.SILK_TOUCH, MinMaxBounds.Ints.ANY)))
|
||||
.invert().build(),
|
||||
BonusLevelTableCondition.bonusLevelFlatChance(Enchantments.BLOCK_FORTUNE, 0.5f, 0.8f, 0.9f, 1.0f).build()
|
||||
BonusLevelTableCondition.bonusLevelFlatChance(Enchantments.BLOCK_FORTUNE,
|
||||
0.25f, 0.35f, 0.5f, 0.75f, 1.0f).build()
|
||||
}));
|
||||
|
||||
|
||||
|
|
|
@ -52,6 +52,8 @@
|
|||
"block.hexcasting.slate.blank": "Blank Slate",
|
||||
"block.hexcasting.slate.written": "Patterned Slate",
|
||||
"block.hexcasting.empty_impetus": "Empty Impetus",
|
||||
"block.hexcasting.redstone_directrix": "Redstone Directrix",
|
||||
"block.hexcasting.empty_directrix": "Empty Directrix",
|
||||
"block.hexcasting.impetus_rightclick": "Toolsmith Impetus",
|
||||
"block.hexcasting.impetus_look": "Fletcher Impetus",
|
||||
"block.hexcasting.impetus_storedplayer": "Cleric Impetus",
|
||||
|
@ -650,7 +652,7 @@
|
|||
"hexcasting.page.blockworks.9": "Extinguish blocks in a large area. Costs about two $(item)Amethyst Crystal/$s.",
|
||||
|
||||
"hexcasting.entry.nadirs": "Nadirs",
|
||||
"hexcasting.page.nadirs.1": "This family of spells all impart a negative potion effect upon an entity. They all take an entity, the recipient, and one or two numbers, the first being the duration and the second, if present, being the potency (starting at 1).$(br2)Each one has a \"base cost;\" the actual cost is equal to that base cost, multiplied by the potency.",
|
||||
"hexcasting.page.nadirs.1": "This family of spells all impart a negative potion effect upon an entity. They all take an entity, the recipient, and one or two numbers, the first being the duration and the second, if present, being the potency (starting at 1).$(br2)Each one has a \"base cost;\" the actual cost is equal to that base cost, multiplied by the potency squared.",
|
||||
"hexcasting.page.nadirs.2": "According to certain legends, these spells and their sisters, the $(l:patterns/great_spells/zeniths)$(action)Zeniths/$, were \"[...] inspired by a world near to this one, where powerful wizards would gather magic from the land and hold duels to the death. Unfortunately, much was lost in translation...\"$(br2)Perhaps that is the reason for their peculiar names.",
|
||||
"hexcasting.page.nadirs.3": "Bestows weakness. Base cost is one $(item)Amethyst Dust/$ per 10 seconds.",
|
||||
"hexcasting.page.nadirs.4": "Bestows levitation. Base cost is one $(item)Amethyst Dust/$ per 5 seconds.",
|
||||
|
@ -665,8 +667,8 @@
|
|||
"hexcasting.page.hexcasting_spell.4": "Costs about ten $(item)Charged Amethyst/$s.",
|
||||
"hexcasting.page.hexcasting_spell.5": "Recharge a _media-containing item in my other hand. Costs about one $(item)Charged Amethyst/$.",
|
||||
"hexcasting.page.hexcasting_spell.6": "This spell is cast in a similar method to the crafting spells; an entity representing a dropped stack of $(item)Amethyst/$ is provided, and recharges the _media battery of the item in my other hand.$(br2)This spell $(italic)cannot/$ recharge the item farther than its original battery size.",
|
||||
"hexcasting.page.hexcasting_spell.7": "Erase a _Hex-containing item in my other hand. Costs about one $(item)Amethyst Dust/$.",
|
||||
"hexcasting.page.hexcasting_spell.8": "The spell will also void all the _media stored inside the item, releasing it back to Nature and returning the item to a perfectly clean slate.",
|
||||
"hexcasting.page.hexcasting_spell.7": "Clear a _Hex-containing item in my other hand. Costs about one $(item)Amethyst Dust/$.",
|
||||
"hexcasting.page.hexcasting_spell.8": "The spell will also void all the _media stored inside the item, releasing it back to Nature and returning the item to a perfectly clean slate. This way, I can re-use $(item)Trinket/$s I have put an erroneous spell into, for example.",
|
||||
|
||||
"hexcasting.entry.sentinels": "Sentinels",
|
||||
"hexcasting.page.sentinels.1": "$(italic)Hence, away! Now all is well,$(br)One aloof stand sentinel./$$(br2)A $(thing)Sentinel/$ is a mysterious force I can summon to assist in the casting of _Hexes, like a familiar or guardian spirit. It appears as a spinning geometric shape to my eyes, but is invisible to everyone else.",
|
||||
|
@ -693,7 +695,7 @@
|
|||
"hexcasting.page.teleport.2": "The entity will be teleported by the given vector, which is an offset from its given position. No matter the distance, it always seems to cost about ten $(item)Charged Crystal/$s.$(br2)The transference is not perfect, and it seems when teleporting something as complex as a player, their inventory doesn't $(italic)quite/$ stay attached, and tends to splatter everywhere at the destination.",
|
||||
|
||||
"hexcasting.entry.zeniths": "Zeniths",
|
||||
"hexcasting.page.zeniths.1": "This family of spells all impart a positive potion effect upon an entity.$(br2)See the $(l:patterns/spells/nadirs)$(action)Nadirs/$ for more information.",
|
||||
"hexcasting.page.zeniths.1": "This family of spells all impart a positive potion effect upon an entity, similar to the $(l:patterns/spells/nadirs)$(action)Nadirs/$. However, these have their _media costs increase with the $(italic)cube/$ of the potency.",
|
||||
"hexcasting.page.zeniths.2": "Bestows regeneration. Base cost is one $(item)Amethyst Dust/$ per second.",
|
||||
"hexcasting.page.zeniths.3": "Bestows night vision. Base cost is one $(item)Amethyst Dust/$ per 5 seconds.",
|
||||
"hexcasting.page.zeniths.4": "Bestows absorption. Base cost is one $(item)Amethyst Dust/$ per second.",
|
||||
|
|
After Width: | Height: | Size: 421 B |
After Width: | Height: | Size: 500 B |
After Width: | Height: | Size: 486 B |
After Width: | Height: | Size: 585 B |
After Width: | Height: | Size: 474 B |
After Width: | Height: | Size: 572 B |
After Width: | Height: | Size: 458 B |
After Width: | Height: | Size: 459 B |
After Width: | Height: | Size: 616 B |
After Width: | Height: | Size: 606 B |
After Width: | Height: | Size: 609 B |
After Width: | Height: | Size: 607 B |
After Width: | Height: | Size: 491 B |
After Width: | Height: | Size: 497 B |
After Width: | Height: | Size: 624 B |
After Width: | Height: | Size: 616 B |
After Width: | Height: | Size: 619 B |
After Width: | Height: | Size: 615 B |
After Width: | Height: | Size: 626 B |
After Width: | Height: | Size: 628 B |
After Width: | Height: | Size: 628 B |
After Width: | Height: | Size: 629 B |
After Width: | Height: | Size: 644 B |
After Width: | Height: | Size: 613 B |
After Width: | Height: | Size: 639 B |
After Width: | Height: | Size: 613 B |
Before Width: | Height: | Size: 457 B After Width: | Height: | Size: 497 B |
Before Width: | Height: | Size: 476 B After Width: | Height: | Size: 575 B |
Before Width: | Height: | Size: 422 B After Width: | Height: | Size: 521 B |
Before Width: | Height: | Size: 525 B After Width: | Height: | Size: 591 B |
Before Width: | Height: | Size: 479 B After Width: | Height: | Size: 580 B |
After Width: | Height: | Size: 521 B |
Before Width: | Height: | Size: 482 B After Width: | Height: | Size: 557 B |