Compare commits

...

12 commits

Author SHA1 Message Date
Mrbysco
fd92ee8514 Setup the Firework box UI 2024-03-10 01:52:32 +01:00
Flanks255
9bc38d2a27 Bumped for FC release. 2024-03-09 16:16:25 -06:00
Flanks255
36be4b9a9f Merge remote-tracking branch 'origin/1.20.4' into 1.20.4 2024-03-09 16:16:01 -06:00
Mrbysco
a65bd989d5 Remove unused imports 2024-03-09 23:14:52 +01:00
Mrbysco
a678b3e049 Remove unused classes that have replacements
`DrillAugmentItem` `ActuallyItem` have been replaced by `ItemDrillUpgrade` and `ItemBase`
`IActuallyItem` was an empty interface never really used
2024-03-09 23:14:34 +01:00
Flanks255
0632253a3b Added JEI plugin for canola press recipes. 2024-03-09 16:08:34 -06:00
Flanks255
7ae6231a38 Merge remote-tracking branch 'origin/1.20.4' into 1.20.4 2024-03-09 16:07:53 -06:00
Mrbysco
e8df077d70 Add missing Black Quartz block recipes 2024-03-09 22:59:45 +01:00
Mrbysco
1d581fc120 Add block/item tags for the crops/ores 2024-03-09 22:54:41 +01:00
Flanks255
713568d7e2 Fixed reconstructor crash 2024-03-09 15:35:28 -06:00
Flanks255
4876677161 Fixed item models. 2024-03-09 15:16:34 -06:00
Mrbysco
e6c8af19af Add crops to villages 2024-03-09 22:15:49 +01:00
112 changed files with 647 additions and 353 deletions

View file

@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
# Actually Additions
mod_version=1.2.0
mod_version=1.2.2
# Forge
game_version=1.20.4

View file

@ -1,6 +1,10 @@
// 1.20.4 2024-03-04T22:51:31.6144307 Block Tags
// 1.20.4 2024-03-09T22:53:12.5570618 Block Tags
8665de82dd3d3a1351ce58f78108214f359104b0 data/actuallyadditions/tags/blocks/mineable/aio.json
f7dc293929a2176bc6e428c765f6bf49fbeccdb5 data/actuallyadditions/tags/blocks/mineable/drill.json
19d96265c7adc1657153cf5faea40911854ac8ed data/forge/tags/blocks/ores.json
2bcfae7c119b0b64170989e7d41b352a8d55ea43 data/forge/tags/blocks/ores/black_quartz.json
2bcfae7c119b0b64170989e7d41b352a8d55ea43 data/forge/tags/blocks/ores_in_ground/stone.json
6c9a3c952d8fad5bfd8a5ab0b76aeb0b930d1db9 data/forge/tags/blocks/storage_blocks/black_quartz.json
8dbaf9b7bd6774bc7c01a47a72b8a7fdaee51f87 data/minecraft/tags/blocks/mineable/axe.json
58c611cbaae2a0a5dd6f82f183b7d0f5dc2d09e6 data/minecraft/tags/blocks/mineable/pickaxe.json
fab721a4fe7ece1d0e019ce36c4d2862f70ee53b data/minecraft/tags/blocks/needs_stone_tool.json

View file

@ -1,6 +1,21 @@
// 1.20.4 2024-03-08T17:03:47.6380549 Tags for minecraft:item mod id actuallyadditions
// 1.20.4 2024-03-09T22:54:38.6848812 Tags for minecraft:item mod id actuallyadditions
87327118c2f16da245b76de4fdcaab149456d9b8 data/actuallyadditions/tags/items/coffee_beans.json
f3ee78cd8c9563bd1828de2b4b336735f289f9f2 data/actuallyadditions/tags/items/crystals.json
7e6e49c3eb5302af147a2d6ba439e83bd4831cbc data/actuallyadditions/tags/items/drills.json
ae55da193b94fd6375c05d5aa46cafdda9d335cd data/actuallyadditions/tags/items/tiny_coals.json
31cd008db3c44a9c3f643f296e1c7688ca45e2e5 data/forge/tags/items/crops.json
aaf3c8c818cc015e9c693e0bbf8f86da81f78285 data/forge/tags/items/crops/canola.json
87327118c2f16da245b76de4fdcaab149456d9b8 data/forge/tags/items/crops/coffee.json
4be6e9ebd0f4ea040587e7ff05c78270990889b8 data/forge/tags/items/crops/flax.json
b37abd458a4812414db5038303af41c5f2632527 data/forge/tags/items/crops/rice.json
4a4e3f4f78d79b28ad1a47e12d2903faec63fd91 data/forge/tags/items/gems/black_quartz.json
19d96265c7adc1657153cf5faea40911854ac8ed data/forge/tags/items/ores.json
2bcfae7c119b0b64170989e7d41b352a8d55ea43 data/forge/tags/items/ores/black_quartz.json
2bcfae7c119b0b64170989e7d41b352a8d55ea43 data/forge/tags/items/ores_in_ground/stone.json
6a088986a6186d2313ea52a8379232048fa98743 data/forge/tags/items/seeds.json
f29e7ca84f30d7b2d4b19ad10b62f56fc422378a data/forge/tags/items/seeds/canola.json
87327118c2f16da245b76de4fdcaab149456d9b8 data/forge/tags/items/seeds/coffee.json
4be6e9ebd0f4ea040587e7ff05c78270990889b8 data/forge/tags/items/seeds/flax.json
27f7953be7073bc266bdf5a245658268d11a4252 data/forge/tags/items/seeds/rice.json
da125442e98e78f6dac7e0c8f35a51503f5bb79d data/forge/tags/items/slimeballs.json
6c9a3c952d8fad5bfd8a5ab0b76aeb0b930d1db9 data/forge/tags/items/storage_blocks/black_quartz.json

View file

@ -1,9 +1,11 @@
// 1.20.4 2024-03-09T11:39:13.7182875 Recipes
// 1.20.4 2024-03-09T22:59:24.7798372 Recipes
4d3128b37a7153882a9324cda49b5069207561c5 data/actuallyadditions/recipes/atomic_reconstructor.json
b0367f5012651764931e8b8fd0c5bcca4e8614c0 data/actuallyadditions/recipes/battery_box.json
7e05cd54092b998dfdbd2221235dd52576ec79eb data/actuallyadditions/recipes/black_quartz_block.json
fe704716268e01ca8aeeb92196d9f660b9e08640 data/actuallyadditions/recipes/black_quartz_brick_slab.json
9780dfc94589fc5c804c0df86eddbb9db3f61c08 data/actuallyadditions/recipes/black_quartz_brick_stair.json
46e271d87a58b8a987f7fe6925dbdc32488c6e5e data/actuallyadditions/recipes/black_quartz_brick_wall.json
6f92d08292fb042bd11870b6d3aeeab93f5ce42f data/actuallyadditions/recipes/black_quartz_pillar_block.json
9be8bfd94ecfc3d6c5736cc6c0851eb96f6882c7 data/actuallyadditions/recipes/black_quartz_pillar_slab.json
94fbc239756c5f31bab123c4c61ef3eb71696ff5 data/actuallyadditions/recipes/black_quartz_pillar_stair.json
74181133544cfbdbef31494f415a80b1f8fc0079 data/actuallyadditions/recipes/black_quartz_pillar_wall.json
@ -12,6 +14,7 @@ db1978ab59369dd3c10e719073b7035acf33885c data/actuallyadditions/recipes/black_qu
45d174f07588603735ed38fe2eb162e160f91e56 data/actuallyadditions/recipes/black_quartz_wall.json
0049339d1c0c795190caa365564119bc0bc987e1 data/actuallyadditions/recipes/breaker.json
81f8a64300319fc07323ab81d1cc4f66cd6c9a45 data/actuallyadditions/recipes/canola_press.json
8802daf35cdc912a840e10081551de164f745b46 data/actuallyadditions/recipes/chiseled_black_quartz_block.json
86b8c5e857cf1b00e154b5f798a3e837e6a05333 data/actuallyadditions/recipes/chiseled_black_quartz_slab.json
506d2ad2f3109a6640a35ef1a2143b16793414ba data/actuallyadditions/recipes/chiseled_black_quartz_stair.json
2e9233449531a074984b443ceef0ad782f82eaed data/actuallyadditions/recipes/chiseled_black_quartz_wall.json

View file

@ -1,12 +1,12 @@
// 1.20.4 2024-03-06T18:25:03.3664612 Item Models: actuallyadditions
1966de13838437bc6035f3649976a44797cf5144 assets/actuallyadditions/models/item/advanced_coil.json
// 1.20.4 2024-03-09T15:15:51.411672 Item Models: actuallyadditions
34463d3d2ae3fafaaea338e7ffc03cd139d3cfeb assets/actuallyadditions/models/item/advanced_coil.json
24594fc68e66011dc2d7b79b92c94b387e710318 assets/actuallyadditions/models/item/advanced_leaf_blower.json
ba2d814e269cdef72e1045f200b3c20ed6961517 assets/actuallyadditions/models/item/atomic_reconstructor.json
1190a64abe6cf6343cb1e88dfdfc7a1a21c36782 assets/actuallyadditions/models/item/basic_coil.json
e2fe5d1b097cd539015027cb0affa11710295478 assets/actuallyadditions/models/item/bats_wing.json
78b81d459280fce5b554931fab46e216423d9dbc assets/actuallyadditions/models/item/basic_coil.json
54a76f76a049874b89b3d2b8b79e73fc9ee7ba0a assets/actuallyadditions/models/item/bats_wing.json
7e87d33f54fa5aaa0f57f30a16038d9290f9ae99 assets/actuallyadditions/models/item/battery_box.json
4898aa83002493eef70df16d4a5f7a9fa1584dee assets/actuallyadditions/models/item/bio_reactor.json
14e4bf7491b745af1502ed6faf5a8c055e64b039 assets/actuallyadditions/models/item/black_quartz.json
a9526b51513a0c73a611c8e64f06f2b319fa4387 assets/actuallyadditions/models/item/black_quartz.json
81d6647c902bced925a4311ada26e18db0d5826a assets/actuallyadditions/models/item/black_quartz_block.json
0f826350c1a3dd7172476ef27d059bce95a2a434 assets/actuallyadditions/models/item/black_quartz_brick_block.json
e4f0168005ef994fbcd66f87cc7b7a82dbce99aa assets/actuallyadditions/models/item/black_quartz_brick_slab.json
@ -22,35 +22,35 @@ c8974657e959db31495382cf6a86a3367df5d8c9 assets/actuallyadditions/models/item/bl
7e8476e561bd4854b54ce79cb798fd9b2915efb4 assets/actuallyadditions/models/item/black_quartz_wall.json
a921bf283b5864b283ffff0737d8c3c89487dd08 assets/actuallyadditions/models/item/booklet.json
8f1232a569a12d54b1053fae05dc85d23b28ed42 assets/actuallyadditions/models/item/breaker.json
d376ad8923f1f63c1ed4429288b479cfbb235d44 assets/actuallyadditions/models/item/canola.json
a311a3b7ad53f4b3e248939aecb41edbc5539a64 assets/actuallyadditions/models/item/canola.json
fa77f5b54168ff7c11c5ce9fbe342eb7298a9ec8 assets/actuallyadditions/models/item/canola_oil_bucket.json
73ff7de0094bcc2b89106282f99ef1e2384a05c5 assets/actuallyadditions/models/item/canola_press.json
b365258e10f1f99b66f01d78c49039701e6093fb assets/actuallyadditions/models/item/canola_seeds.json
23a5a96f1ed000d86ed4a51ff06b25fea909f9b4 assets/actuallyadditions/models/item/canola_seeds.json
290bc294c4475cc55b0ed30a9039ab01c7c25e1a assets/actuallyadditions/models/item/chiseled_black_quartz_block.json
c73981382d646e4a0186b26fcfad817d39252055 assets/actuallyadditions/models/item/chiseled_black_quartz_slab.json
2da8ce13d0dff36eb41cdd5304a5f12e3a2c3b05 assets/actuallyadditions/models/item/chiseled_black_quartz_stair.json
7d4d97ae9522f6948c87038688e6127656585011 assets/actuallyadditions/models/item/chiseled_black_quartz_wall.json
5552f28e9045f34bcd21185104328e63ffea4482 assets/actuallyadditions/models/item/coal_generator.json
53e89635c6330cc40b83a1ec1b0a1b97111e1301 assets/actuallyadditions/models/item/coffee_beans.json
2f943a7dfad9dee932b0c943c52a1490a625fdb9 assets/actuallyadditions/models/item/coffee_cup.json
5aded8cc17941f3019c742359b40d97a2314bac3 assets/actuallyadditions/models/item/coffee_beans.json
074b1d09d638b991a090d3fe1336a33b6d63f8a3 assets/actuallyadditions/models/item/coffee_cup.json
a67f1795e1ad1d6ed19f2a35f176f39e00dbb9c3 assets/actuallyadditions/models/item/coffee_machine.json
523148eac33929fb0d2892856a5ddcb784043bb5 assets/actuallyadditions/models/item/crafter_on_a_stick.json
89cc79420e3a7c2952ce729537b7503a517bb9de assets/actuallyadditions/models/item/crate_keeper.json
9bc734dadf9d5b85b8cc5685b673a1d074cf3d6d assets/actuallyadditions/models/item/crusher.json
4b7ef5dd15d930d4b0b5507cd08c27cb5ee1498a assets/actuallyadditions/models/item/crusher_double.json
a38461a8a2056640674708a32548701b9c77bac3 assets/actuallyadditions/models/item/crystallized_canola_seed.json
91e18e2c5ae8f657b977865312e8cd7ee348d8f1 assets/actuallyadditions/models/item/crystallized_canola_seed.json
5f0125cbbd70bf0061f97a2ef224d64e17880f42 assets/actuallyadditions/models/item/crystallized_oil_bucket.json
c118f704bbf138e4a81b2acdb5e776a422559358 assets/actuallyadditions/models/item/diamatine_crystal.json
327bb93357d04e9158b024278e7dc0533872870e assets/actuallyadditions/models/item/diamatine_crystal.json
41096b470637e0ef8fd4db2376d26fe61daf8384 assets/actuallyadditions/models/item/diamatine_crystal_block.json
6559ba1ebc7abc0e75693e085f3e85624a17b79f assets/actuallyadditions/models/item/diamatine_crystal_cluster.json
e669eeb5832e40fd782df0f3ba89a27d3cadb9d3 assets/actuallyadditions/models/item/diamatine_crystal_shard.json
7e7fc4f0260f1fef2a3281280f4006c47f1bba35 assets/actuallyadditions/models/item/diamatine_crystal_shard.json
3318c3bb118ee0bb1008a936c72ec80dcaf59b8c assets/actuallyadditions/models/item/diamond_aiot.json
11e4961bde9e6900dc90a833108060a774783df6 assets/actuallyadditions/models/item/display_stand.json
2ed3d6a7d3b292d765616e09ca0fe03810ad80eb assets/actuallyadditions/models/item/double_battery.json
2669dbeb32101f50763c9cd7f71f5b401461dc18 assets/actuallyadditions/models/item/drill_black.json
1b836004c51c7730cb9e2b21f6e6deb036d2274e assets/actuallyadditions/models/item/drill_blue.json
aa33fb2f609dfd580a0170bf59472b42430aec44 assets/actuallyadditions/models/item/drill_brown.json
c3e846a9b5d20893947b654f13da81bb1a8370bd assets/actuallyadditions/models/item/drill_core.json
9f381b99a07d86f593ad23f21b69953ea440bb68 assets/actuallyadditions/models/item/drill_core.json
80ac2161c43623c7e0cc4a9cf456229d3b3adba3 assets/actuallyadditions/models/item/drill_cyan.json
ec5271390d19a8f654a039ce484c687f23a67ef5 assets/actuallyadditions/models/item/drill_gray.json
19c8303f3d33482f543a4e4346948962ba8b4503 assets/actuallyadditions/models/item/drill_green.json
@ -62,48 +62,48 @@ c5be173ce3f3c5fdc376eacbefb2e3d913a2ecc4 assets/actuallyadditions/models/item/dr
26a3683600670d1733f0e0be80528e1b01d1c94a assets/actuallyadditions/models/item/drill_pink.json
086647e21977dff542f6cb09c4b0f3f826f874c5 assets/actuallyadditions/models/item/drill_purple.json
a1dae4b66cce762b355ef2b5bbf399693f09b141 assets/actuallyadditions/models/item/drill_red.json
2b0cb027a0b20f1bd60bb67e40efa6de22c42cb1 assets/actuallyadditions/models/item/drill_upgrade_block_placing.json
08d4499548fcccd74a6180efd1f057cba89c2b1a assets/actuallyadditions/models/item/drill_upgrade_five_by_five.json
0cd04516791a0ee270caa739d9f819db25829878 assets/actuallyadditions/models/item/drill_upgrade_fortune.json
d115acaf444990d488350e41ef23348749027ac3 assets/actuallyadditions/models/item/drill_upgrade_fortune_ii.json
e478ede0635caf397241d7ce1e25076def0d7fbd assets/actuallyadditions/models/item/drill_upgrade_silk_touch.json
9894ba07aabe2737ec2e0248171fca599d210caf assets/actuallyadditions/models/item/drill_upgrade_speed.json
e7b8dc084673ed90c13fe0e97cae25421b4548da assets/actuallyadditions/models/item/drill_upgrade_speed_ii.json
dcaf08676b9a5fd061ba16773f459ffa00c3b725 assets/actuallyadditions/models/item/drill_upgrade_speed_iii.json
8f8a0099f2c3b9c4ed69efed617091831db0f905 assets/actuallyadditions/models/item/drill_upgrade_three_by_three.json
8ef73b41977224209334cabf7e1045837aa929d4 assets/actuallyadditions/models/item/drill_upgrade_block_placing.json
127e2a8dfc5ee71302e2d257abfd175d3f5f9d64 assets/actuallyadditions/models/item/drill_upgrade_five_by_five.json
5bf43366c38cd5ef070898a11b82a2b233b96fad assets/actuallyadditions/models/item/drill_upgrade_fortune.json
5b97eb31cd76fefebe769b9c457ea7266972f913 assets/actuallyadditions/models/item/drill_upgrade_fortune_ii.json
b88def6178c09deb38ed716785e75567d1c2da75 assets/actuallyadditions/models/item/drill_upgrade_silk_touch.json
ab8cf32dd091701b325eb35e847c40b4ee91b5bd assets/actuallyadditions/models/item/drill_upgrade_speed.json
42fe05ad3d60a9c7181b4edef17991724051d9a4 assets/actuallyadditions/models/item/drill_upgrade_speed_ii.json
f7a3f382e4527c76256bc0dbc588041f8820fa61 assets/actuallyadditions/models/item/drill_upgrade_speed_iii.json
55b3c697cd0ad1b831d773d3fdce2bf791e7a23c assets/actuallyadditions/models/item/drill_upgrade_three_by_three.json
b23de462f3fd72a64945ee497ac10b2663579ce8 assets/actuallyadditions/models/item/drill_white.json
3b770ac5928a24cbb7a9632eed889c771b6d7af4 assets/actuallyadditions/models/item/drill_yellow.json
184e0b97cf0ba0fdded5f60154e452bae9d8cfec assets/actuallyadditions/models/item/dropper.json
b9b0ed6bd949a45680304dbfa61ddbb57a21d9bf assets/actuallyadditions/models/item/emeradic_crystal.json
5b8ab7834e0be223235b769f8125a6ce975fff09 assets/actuallyadditions/models/item/emeradic_crystal.json
c27e8b54522ff17d84f01a6d3a0303a4b3c1a1eb assets/actuallyadditions/models/item/emeradic_crystal_block.json
41ad224d53871c009b459e939cac046248f95d88 assets/actuallyadditions/models/item/emeradic_crystal_cluster.json
36fe21488381452005c843accaac78484aea50a0 assets/actuallyadditions/models/item/emeradic_crystal_shard.json
ac22746fa100230791503f36e2ff4814c40e8b57 assets/actuallyadditions/models/item/empowered_canola_seed.json
50e4de32fcf4387f6b7a053c0fa183b837f77699 assets/actuallyadditions/models/item/empowered_diamatine_crystal.json
d289c83c74218afb6ffdd4ce21782e0304263192 assets/actuallyadditions/models/item/emeradic_crystal_shard.json
090128925b5d4fe7bac12554cf810c251930a8e2 assets/actuallyadditions/models/item/empowered_canola_seed.json
f3161e3fa263281b2754a91ba15a98a09ebfae50 assets/actuallyadditions/models/item/empowered_diamatine_crystal.json
db59980eb72833c10b2831415f2ee03dd89cf760 assets/actuallyadditions/models/item/empowered_diamatine_crystal_block.json
4554dd917554f5fc2d171ca9d5b0cd9f3c6c861a assets/actuallyadditions/models/item/empowered_emeradic_crystal.json
aa5de8e474f33cb97dc1ba2950f8abe67026e30b assets/actuallyadditions/models/item/empowered_emeradic_crystal.json
383cd73169c029abcb2241761350f74a20f561f5 assets/actuallyadditions/models/item/empowered_emeradic_crystal_block.json
6799e9cffe078fca3ba2ecbd3ddeb33d1f029969 assets/actuallyadditions/models/item/empowered_enori_crystal.json
208a00e1a0cca596991bdb9e02724b31d964be48 assets/actuallyadditions/models/item/empowered_enori_crystal.json
ddb1c951b2ed6c366f1e3eb2e70397e07507298b assets/actuallyadditions/models/item/empowered_enori_crystal_block.json
a6c902a5cea0d9ef4019224d472a305af5f8d641 assets/actuallyadditions/models/item/empowered_oil_bucket.json
2e0ae0f720e942fe912e894c70bd22390e7ae2ec assets/actuallyadditions/models/item/empowered_palis_crystal.json
bea490e8cc6ce5b077a84dd3eeeae6b1d2921e2a assets/actuallyadditions/models/item/empowered_palis_crystal.json
8ec9b589485c06f0222ba62e987ca9ffeaebddcb assets/actuallyadditions/models/item/empowered_palis_crystal_block.json
eac6b151e494ca2e4c6254af9d77da18a8369980 assets/actuallyadditions/models/item/empowered_restonia_crystal.json
d89cb0fb4e15b0200c8e1f3efa8029472ed93dae assets/actuallyadditions/models/item/empowered_restonia_crystal.json
dcf453d18ae115ea027798c509ab0097d3638460 assets/actuallyadditions/models/item/empowered_restonia_crystal_block.json
02f3ad988327fcb9c0f919e9c1b43476c17f0f3f assets/actuallyadditions/models/item/empowered_void_crystal.json
fa5ad56054d3d1fa2cae577c490520184682990a assets/actuallyadditions/models/item/empowered_void_crystal.json
d126b338cdc9ea161afaa8cf238c2e6432210ab2 assets/actuallyadditions/models/item/empowered_void_crystal_block.json
1da3311ae660be5c5802f7f1593d340ed785f7a1 assets/actuallyadditions/models/item/empowerer.json
29e1c910cd026a3d07dc5a626cddacceeeb7c33d assets/actuallyadditions/models/item/empty_cup.json
1bc676ebb828e539e49d34bcdbf8de8808788b29 assets/actuallyadditions/models/item/empty_cup.json
44120a0c34c1e7d180761db7db790d2d42f4421b assets/actuallyadditions/models/item/ender_casing.json
cd900e73feab240739ae6eac436b77e97b71c77b assets/actuallyadditions/models/item/ender_star.json
a7605af0a7b033b2eb9872f49e6ab7967160ab1a assets/actuallyadditions/models/item/ender_star.json
4f30d8d31f0657644876c0ce45218ca052c76f6d assets/actuallyadditions/models/item/energizer.json
2ea6d1faeeb6996538dda7abf14a62817ffc0058 assets/actuallyadditions/models/item/enervator.json
3f58028673cfa1d8390b392f610b369e0c002bbc assets/actuallyadditions/models/item/engineers_goggles.json
ce726f1d661e57e2cd690cb809027b3467ed4e64 assets/actuallyadditions/models/item/engineers_goggles_advanced.json
7908f379c130467f565e8ed1a671e81691328e29 assets/actuallyadditions/models/item/enori_crystal.json
24d77d6a424136a9d860dc544529bbc12be6ca9d assets/actuallyadditions/models/item/engineers_goggles.json
c3d29a96c9b8c0d105f363939a7c76c355a4e834 assets/actuallyadditions/models/item/engineers_goggles_advanced.json
a89dc6aaf8cf583c733b5be1f385e0ef88421d2a assets/actuallyadditions/models/item/enori_crystal.json
e69c4c1c9d155f3e14320584800bb723e31f4c3f assets/actuallyadditions/models/item/enori_crystal_block.json
402c503501ac74e7505db48d4271df30baafbd74 assets/actuallyadditions/models/item/enori_crystal_cluster.json
678e9037e2f28d11dc33c2559ce4be936be6abfb assets/actuallyadditions/models/item/enori_crystal_shard.json
552392ba9cc24b7dd9b160b866da794de3466a78 assets/actuallyadditions/models/item/enori_crystal_shard.json
5105aae5fc7416276770b15e8f709c2b9aa37661 assets/actuallyadditions/models/item/ethetic_green_block.json
461c0ce7e29062bd746edd6f1489c3c56fc9fba7 assets/actuallyadditions/models/item/ethetic_green_slab.json
bb6f5392796c0adb55fe8c05d241e100a582216b assets/actuallyadditions/models/item/ethetic_green_stairs.json
@ -115,9 +115,9 @@ f280eb6cd443cc9ad0373bcea0e32bfd9612ce32 assets/actuallyadditions/models/item/et
cb75ec3d4e570f7b7e15148b4deda9d4c248e22a assets/actuallyadditions/models/item/farmer.json
180b9bac03a2b7e6e0765f2911ca12ba66f9ffe1 assets/actuallyadditions/models/item/feeder.json
fa6ecbf0d5de9c36ca72da31becf2dff0dbea2af assets/actuallyadditions/models/item/fermenting_barrel.json
f888bf0b0b8eb3091cca1f6dd2a8e246880cd471 assets/actuallyadditions/models/item/filter.json
2d2e82c58b990cf9b7b721e484bb3e9a7135ae21 assets/actuallyadditions/models/item/filter.json
bea6d0047a8f59a3612752e09f17bed9cb247394 assets/actuallyadditions/models/item/firework_box.json
74e708e32c0405201448efbe3415a932e8ed86d3 assets/actuallyadditions/models/item/flax_seeds.json
81e4bc2a89ce62ef657b1fe46955fc8d15a6cb5b assets/actuallyadditions/models/item/flax_seeds.json
7139a6ac99026c6e9577aacdb2d3d1259bd1f138 assets/actuallyadditions/models/item/fluid_collector.json
b47cfe22bd714502624e39b3d8e825616152b4c7 assets/actuallyadditions/models/item/fluid_placer.json
6d914cb6ef8083ccb4835ccb275b4ee43d4e4f5f assets/actuallyadditions/models/item/gold_aiot.json
@ -151,27 +151,27 @@ b7ca5de0aa839ed3ef4f81392666a639a3ad9dba assets/actuallyadditions/models/item/la
675bfd2749745ecd2fb7d5cac73d5534bb446ab1 assets/actuallyadditions/models/item/laser_relay_fluids.json
f930964ba83e5dbc8f2080659704f0917b51a823 assets/actuallyadditions/models/item/laser_relay_item.json
b35a25719115ddb587b6172c2ba9769ecf29ad4d assets/actuallyadditions/models/item/laser_relay_item_advanced.json
bc092585f6dd338af880a49748e5d35adf36963f assets/actuallyadditions/models/item/laser_upgrade_invisibility.json
7bc26132432f8b33516929f34d6f3e12a4e32a1f assets/actuallyadditions/models/item/laser_upgrade_range.json
a20fa6e1df0a18526f8cac045b6e0f4fcb4bf30c assets/actuallyadditions/models/item/laser_upgrade_invisibility.json
3158f761dde7a7d54464d510e56238f135300a94 assets/actuallyadditions/models/item/laser_upgrade_range.json
9872092852b1fe5f338e71d726111d713d652b3a assets/actuallyadditions/models/item/laser_wrench.json
05e3583ade09c7d90ddb536c5be6d3df1ce786c7 assets/actuallyadditions/models/item/lava_factory_casing.json
34573ebef541f5d9f7d62ba95205f81e1de234b4 assets/actuallyadditions/models/item/lava_factory_controller.json
df17f763590bf5c883eec492e4ab4d8dc4bdeb97 assets/actuallyadditions/models/item/leaf_blower.json
4a349378c423823c42c3075e145ca6e5b31631ad assets/actuallyadditions/models/item/leaf_generator.json
8fc79c0e276a95869288300bcc940d9d268d75db assets/actuallyadditions/models/item/lens.json
120beb881f92b6f07f94832d73a9ec93c80258e9 assets/actuallyadditions/models/item/lens_of_certain_death.json
cf5417e23f9eab2ce0560c4fd4c6b53940ba01b1 assets/actuallyadditions/models/item/lens_of_color.json
1a1f4b045d1600202a790285a9e68406c4fb2a10 assets/actuallyadditions/models/item/lens_of_detonation.json
0fdd61872facfdc102e7fcb0343c21f42f7f0e3f assets/actuallyadditions/models/item/lens_of_disenchanting.json
57474e37be369718adcb564a4e32264c8f0f9be1 assets/actuallyadditions/models/item/lens_of_the_killer.json
519f44cb73f95dbd0f27d4ae8ca27f0c0c1a85a8 assets/actuallyadditions/models/item/lens_of_the_miner.json
c86d9a24e157d61bd56b0c4dd847e93c21f9406a assets/actuallyadditions/models/item/lens.json
e3504dd0c16703f516932406b6ac26fdac7f30b1 assets/actuallyadditions/models/item/lens_of_certain_death.json
2e4e43cce27b360d81a776811bb9b194a195a98d assets/actuallyadditions/models/item/lens_of_color.json
ac8af809a857f6b099b1141a4b3f302f24a41c87 assets/actuallyadditions/models/item/lens_of_detonation.json
a263a311f5111b5c5a115db9a44883d4c966c7ac assets/actuallyadditions/models/item/lens_of_disenchanting.json
fb524bde62c59b985c38549240bd30a4cd58101d assets/actuallyadditions/models/item/lens_of_the_killer.json
195a38d18111b07d2b2eec3bde56a12cf7bb31d7 assets/actuallyadditions/models/item/lens_of_the_miner.json
2052ba8678a2cb0784b0a87b77b8724e24fb2d03 assets/actuallyadditions/models/item/long_range_breaker.json
36acda859585d2953c8c557c56fbcccd43196de6 assets/actuallyadditions/models/item/netherite_aiot.json
1770c8bcbbdcdcb00b7b8dbb0345f824802a40fa assets/actuallyadditions/models/item/oil_generator.json
872b7d881417cb152b7c54ed7f52dfde09246ee6 assets/actuallyadditions/models/item/palis_crystal.json
8ad287a4487215e18834ceac21f0bc5bde71cff9 assets/actuallyadditions/models/item/palis_crystal.json
1a4ec0f6ed3b9b741438be7d4388676c92d0d3c1 assets/actuallyadditions/models/item/palis_crystal_block.json
df692efd0af52a6b3eef1332cb2e6b5469e47dbf assets/actuallyadditions/models/item/palis_crystal_cluster.json
046fa6e050fdaeadca8da1335be501705fa84723 assets/actuallyadditions/models/item/palis_crystal_shard.json
d5b8eb39b032ae228c12c6bcea09179e36788035 assets/actuallyadditions/models/item/palis_crystal_shard.json
158760d91cbb130b57b457e673e4b936b337ffc1 assets/actuallyadditions/models/item/phantom_booster.json
b393ea03ae008aca117e8f7aa5a2d69ef36b827b assets/actuallyadditions/models/item/phantom_breaker.json
2e3aa5aed20b31941e10b8ae868153f25aeadde4 assets/actuallyadditions/models/item/phantom_connector.json
@ -188,15 +188,15 @@ bc0ddfda095c4b5ee092c5a3e4d0b6ba920c2d63 assets/actuallyadditions/models/item/pl
491c3aae5c73fe127773af252a5c7b3ec7f80a74 assets/actuallyadditions/models/item/quintuple_battery.json
ccc770adced6451c185235528211a9e88b613ab3 assets/actuallyadditions/models/item/ranged_collector.json
59648134ac462b14d92448690be3a627a8cb30ae assets/actuallyadditions/models/item/refined_canola_oil_bucket.json
baa9586d2336cf25ff6718c25f02759c35e074a0 assets/actuallyadditions/models/item/restonia_crystal.json
df03ad8a142229fc6ca1b74c636d11348904d218 assets/actuallyadditions/models/item/restonia_crystal.json
3bb9ebbc33d28dc27715dab6d8326ff20414a1c4 assets/actuallyadditions/models/item/restonia_crystal_block.json
e87ad7ddf4132057650bd86861b9530fba03afed assets/actuallyadditions/models/item/restonia_crystal_cluster.json
47b4a8eb6ace3cb1559c0dbd373c2eb972fbc398 assets/actuallyadditions/models/item/restonia_crystal_shard.json
2b1468f3008de7b2bf1b014ffc82d53d654a47e9 assets/actuallyadditions/models/item/rice.json
e72dc8e8f02bb4aa81e75481457774ed2f5e43d1 assets/actuallyadditions/models/item/rice_dough.json
617bb511cbf99795b1f8969124c5828f1c5c311b assets/actuallyadditions/models/item/rice_seeds.json
eab7d9d6dd842031a70acf73fae798c3f6a0359d assets/actuallyadditions/models/item/rice_slimeball.json
723202dc7d439ea6479632b10699dee4a4845ba9 assets/actuallyadditions/models/item/ring.json
f6c0f1caa393cbc3f0da64e563fd8a69802e1bf3 assets/actuallyadditions/models/item/restonia_crystal_shard.json
c081c23f7b55df0ccaf8207c86f4057e2a06fb35 assets/actuallyadditions/models/item/rice.json
6cda14a5ec7b8cbd3e37391955f1884cfe4a4b3e assets/actuallyadditions/models/item/rice_dough.json
591fbae514c7794337254eb9ad3d21ecb5136c4f assets/actuallyadditions/models/item/rice_seeds.json
98a100f95da50c2b2160095671c191cf0387ca9c assets/actuallyadditions/models/item/rice_slimeball.json
809eddf9a181b2e6c4c3099f8f81ed464267e5a4 assets/actuallyadditions/models/item/ring.json
a74394b664fc2787f2635b1981c3c7b1abad0172 assets/actuallyadditions/models/item/ring_of_growth.json
4e2da52440b5284413a50abe6b04b61154149c8d assets/actuallyadditions/models/item/ring_of_magnetizing.json
9d4bfba1a6fdd2f24e84ad6d06db1550d0d5afaa assets/actuallyadditions/models/item/shock_suppressor.json
@ -206,19 +206,19 @@ b4e1e094bca9bcaf35f617aa9a8be6e73ff60ebe assets/actuallyadditions/models/item/sm
a7ad3c2505d68d88cc72d440596ade6f9b1ca46b assets/actuallyadditions/models/item/smooth_black_quartz_stair.json
f0f6f38089487a184603f8aebed7b6fe0e660ca0 assets/actuallyadditions/models/item/smooth_black_quartz_wall.json
c1023d8b9b8bcfd41a95d24601096681d799e67a assets/actuallyadditions/models/item/snail.json
42f55269cdf8a3ba4e7a3c41b67c49ded053ff44 assets/actuallyadditions/models/item/solidified_experience.json
14f2152c42b42f92769c9584a4d8baea7707e3b2 assets/actuallyadditions/models/item/solidified_experience.json
f4f238229a72372ad2d6fd862a5f2b7789196f01 assets/actuallyadditions/models/item/stone_aiot.json
0f91c0cf92a346bccd1142ac7b6ab37bee7822e5 assets/actuallyadditions/models/item/teleport_staff.json
86863a1c74a9bebd1ea7524e0ad3435f4e83cafb assets/actuallyadditions/models/item/tiny_charcoal.json
3b23a8a33dbe5fd8f965a8d76dbd181e7a52ca78 assets/actuallyadditions/models/item/tiny_coal.json
3a1975bc538af53751dfa8b736088e5f8c8f3277 assets/actuallyadditions/models/item/tiny_charcoal.json
7e61347e2f6cb36aab1e0b92d84521f3a9281961 assets/actuallyadditions/models/item/tiny_coal.json
cf9fefdbd60278e5c0eb3858789c1305037f517d assets/actuallyadditions/models/item/tiny_torch.json
37c33ee537ada74f1ba2bfe2b53ae42677be1dc9 assets/actuallyadditions/models/item/travelers_sack.json
3ac4b97ae2690d645087d6872d39d7f35070b947 assets/actuallyadditions/models/item/triple_battery.json
a2d656d1974443483eb69de4d8a738a6d02ea32a assets/actuallyadditions/models/item/vertical_digger.json
23ff6913a871df43d2eb91fcebdce949082503ac assets/actuallyadditions/models/item/void_crystal.json
f32b1a5228624c0fdbbd4a62a34d1aaa6d863ce6 assets/actuallyadditions/models/item/void_crystal.json
424f9dc0fab6a071a8d96712293958d62223816f assets/actuallyadditions/models/item/void_crystal_block.json
60ded841dd22dd153d6e71ee5bdb4ae2bc26ee28 assets/actuallyadditions/models/item/void_crystal_cluster.json
9e060e1990e8228ba25f6ab31934e1a1335132df assets/actuallyadditions/models/item/void_crystal_shard.json
5c8e67420170aa273e67e11d54ca599494d08c55 assets/actuallyadditions/models/item/void_crystal_shard.json
033fee24fdc1f52b5257a3a72bf50cb5ab1d460e assets/actuallyadditions/models/item/void_sack.json
a9c047be2422aa5854bbc5d98065b628153de4c6 assets/actuallyadditions/models/item/water_bowl.json
fa67aa422701af36457ce6512e9975851298fc27 assets/actuallyadditions/models/item/wings_of_the_bats.json

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/advanced_coil"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/basic_coil"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/bats_wing"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/black_quartz"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/canola"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/canola_seeds"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/coffee_beans"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/coffee_cup"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/crystallized_canola_seed"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/diamatine_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/diamatine_crystal_shard"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_core"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_upgrade_block_placing"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_upgrade_five_by_five"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_upgrade_fortune"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_upgrade_fortune_ii"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_upgrade_silk_touch"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_upgrade_speed"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_upgrade_speed_ii"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_upgrade_speed_iii"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/drill_upgrade_three_by_three"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/emeradic_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/emeradic_crystal_shard"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/empowered_canola_seed"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/empowered_diamatine_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/empowered_emeradic_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/empowered_enori_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/empowered_palis_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/empowered_restonia_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/empowered_void_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/empty_cup"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/ender_star"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/engineers_goggles"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/engineers_goggles_advanced"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/enori_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/enori_crystal_shard"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/filter"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/flax_seeds"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/laser_upgrade_invisibility"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/laser_upgrade_range"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/lens"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/lens_of_certain_death"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/lens_of_color"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/lens_of_detonation"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/lens_of_disenchanting"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/lens_of_the_killer"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/lens_of_the_miner"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/palis_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/palis_crystal_shard"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/restonia_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/restonia_crystal_shard"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/rice"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/rice_dough"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/rice_seeds"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/rice_slimeball"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/ring"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/solidified_experience"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/tiny_charcoal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/tiny_coal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/void_crystal"
}

View file

@ -1,5 +1,5 @@
{
"parent": "minecraft:item/handheld",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "actuallyadditions:item/void_crystal_shard"
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"B": {
"item": "actuallyadditions:black_quartz"
}
},
"pattern": [
"BB",
"BB"
],
"result": {
"item": "actuallyadditions:black_quartz_block"
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"B": {
"item": "actuallyadditions:black_quartz"
}
},
"pattern": [
"B",
"B"
],
"result": {
"item": "actuallyadditions:black_quartz_pillar_block"
}
}

View file

@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"B": {
"item": "actuallyadditions:black_quartz_block"
}
},
"pattern": [
"B",
"B"
],
"result": {
"count": 2,
"item": "actuallyadditions:chiseled_black_quartz_block"
}
}

View file

@ -0,0 +1,5 @@
{
"values": [
"#forge:ores/black_quartz"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:black_quartz_ore"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:black_quartz_ore"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:black_quartz_block"
]
}

View file

@ -0,0 +1,8 @@
{
"values": [
"#forge:crops/rice",
"#forge:crops/coffee",
"#forge:crops/canola",
"#forge:crops/flax"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:canola"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:coffee_beans"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:flax_seeds"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:rice"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:black_quartz"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"#forge:ores/black_quartz"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:black_quartz_ore"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:black_quartz_ore"
]
}

View file

@ -0,0 +1,8 @@
{
"values": [
"#forge:seeds/rice",
"#forge:seeds/coffee",
"#forge:seeds/canola",
"#forge:seeds/flax"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:canola_seeds"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:coffee_beans"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:flax_seeds"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:rice_seeds"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"actuallyadditions:black_quartz_block"
]
}

View file

@ -3,6 +3,7 @@ package de.ellpeck.actuallyadditions.api;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.BlockTags;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.Item;
@ -23,6 +24,17 @@ public final class ActuallyTags {
public static final TagKey<Item> TINY_COALS = tag("tiny_coals");
public static final TagKey<Item> HOLDS_ITEMS = ItemTags.create(new ResourceLocation("forge", "holds_items"));
public static final TagKey<Item> CRYSTALS = tag("crystals");
public static final TagKey<Item> SEEDS_RICE = ItemTags.create(new ResourceLocation("forge", "seeds/rice"));
public static final TagKey<Item> SEEDS_COFFEE = ItemTags.create(new ResourceLocation("forge", "seeds/coffee"));
public static final TagKey<Item> SEEDS_CANOLA = ItemTags.create(new ResourceLocation("forge", "seeds/canola"));
public static final TagKey<Item> SEEDS_FLAX = ItemTags.create(new ResourceLocation("forge", "seeds/flax"));
public static final TagKey<Item> CROPS_RICE = ItemTags.create(new ResourceLocation("forge", "crops/rice"));
public static final TagKey<Item> CROPS_COFFEE = ItemTags.create(new ResourceLocation("forge", "crops/coffee"));
public static final TagKey<Item> CROPS_CANOLA = ItemTags.create(new ResourceLocation("forge", "crops/canola"));
public static final TagKey<Item> CROPS_FLAX = ItemTags.create(new ResourceLocation("forge", "crops/flax"));
public static final TagKey<Item> GEMS_BLACK_QUARTZ = ItemTags.create(new ResourceLocation("forge", "gems/black_quartz"));
public static final TagKey<Item> ORES_BLACK_QUARTZ = ItemTags.create(new ResourceLocation("forge", "ores/black_quartz"));
public static final TagKey<Item> STORAGE_BLOCKS_BLACK_QUARTZ = ItemTags.create(new ResourceLocation("forge", "storage_blocks/black_quartz"));
private static TagKey<Item> tag(String name) {
return TagKey.create(Registries.ITEM, new ResourceLocation(ActuallyAdditions.MODID, name));
@ -43,6 +55,9 @@ public final class ActuallyTags {
public static final TagKey<Block> NEEDS_VOID_TOOL = tag("needs_void_tool");
public static final TagKey<Block> NEEDS_EMERADIC_TOOL = tag("needs_emeradic_tool");
public static final TagKey<Block> NEEDS_ENORI_TOOL = tag("needs_enori_tool");
public static final TagKey<Block> ORES_BLACK_QUARTZ = BlockTags.create(new ResourceLocation("forge", "ores/black_quartz"));
public static final TagKey<Block> STORAGE_BLOCKS_BLACK_QUARTZ = BlockTags.create(new ResourceLocation("forge", "storage_blocks/black_quartz"));
private static TagKey<Block> tag(String name) {
return TagKey.create(Registries.BLOCK, new ResourceLocation(ActuallyAdditions.MODID, name));

View file

@ -321,6 +321,24 @@ public class BlockRecipeGenerator extends RecipeProvider {
.define('S', ItemTags.SAPLINGS)
.define('E', ActuallyItems.EMPOWERED_PALIS_CRYSTAL)
.save(recipeOutput);
// Block of Black Quartz
Recipe.shaped(ActuallyBlocks.BLACK_QUARTZ.getItem())
.pattern("BB", "BB")
.define('B', ActuallyItems.BLACK_QUARTZ)
.save(recipeOutput);
// Pillar of Black Quartz
Recipe.shaped(ActuallyBlocks.BLACK_QUARTZ_PILLAR.getItem())
.pattern("B", "B")
.define('B', ActuallyItems.BLACK_QUARTZ)
.save(recipeOutput);
// Chiseled Block of Black Quartz
Recipe.shaped(ActuallyBlocks.CHISELED_BLACK_QUARTZ.getItem(), 2)
.pattern("B", "B")
.define('B', ActuallyBlocks.BLACK_QUARTZ.getItem())
.save(recipeOutput);
}
public static class Recipe {

View file

@ -6,6 +6,7 @@ import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.tags.BlockTags;
import net.neoforged.neoforge.common.Tags;
import net.neoforged.neoforge.common.data.BlockTagsProvider;
import net.neoforged.neoforge.common.data.ExistingFileHelper;
@ -160,6 +161,11 @@ public class BlockTagsGenerator extends BlockTagsProvider {
BlockTags.MINEABLE_WITH_PICKAXE,
BlockTags.MINEABLE_WITH_SHOVEL
);
this.tag(ActuallyTags.Blocks.ORES_BLACK_QUARTZ).add(ActuallyBlocks.BLACK_QUARTZ_ORE.get());
this.tag(Tags.Blocks.ORES).addTags(ActuallyTags.Blocks.ORES_BLACK_QUARTZ);
this.tag(Tags.Blocks.ORES_IN_GROUND_STONE).add(ActuallyBlocks.BLACK_QUARTZ_ORE.get());
this.tag(ActuallyTags.Blocks.STORAGE_BLOCKS_BLACK_QUARTZ).add(ActuallyBlocks.BLACK_QUARTZ.get());
}
// /**

View file

@ -29,11 +29,12 @@ public class ItemModelGenerator extends ItemModelProvider {
@Override
protected void registerModels() {
// Items
simpleItem(ActuallyItems.ITEM_BOOKLET); // will require complex I think
simpleItem(ActuallyItems.CRATE_KEEPER);
simpleTool(ActuallyItems.ITEM_BOOKLET); // will require complex I think
simpleTool(ActuallyItems.CRATE_KEEPER);
// All items?
ActuallyItems.SIMPLE_ITEMS.forEach(this::simpleItem);
ActuallyItems.TOOLS.forEach(this::simpleTool);
// Toolsets
/* ActuallyItems.ALL_TOOL_SETS.stream()
@ -93,8 +94,12 @@ public class ItemModelGenerator extends ItemModelProvider {
getBuilder(path).parent(new ModelFile.UncheckedModelFile(modLoc("block/" + path)));
}
private void simpleItem(Supplier<? extends Item> item) {
private void simpleTool(Supplier<? extends Item> item) {
String path = BuiltInRegistries.ITEM.getKey(item.get()).getPath();
singleTexture(path, mcLoc("item/handheld"), "layer0", modLoc("item/" + path));
}
private void simpleItem(Supplier<? extends Item> item) {
String path = BuiltInRegistries.ITEM.getKey(item.get()).getPath();
singleTexture(path, mcLoc("item/generated"), "layer0", modLoc("item/" + path));
}
}

View file

@ -2,6 +2,7 @@ package de.ellpeck.actuallyadditions.data;
import de.ellpeck.actuallyadditions.api.ActuallyTags;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
@ -41,5 +42,23 @@ public class ItemTagsGenerator extends ItemTagsProvider {
tag(Tags.Items.SLIMEBALLS)
.add(ActuallyItems.RICE_SLIMEBALL.get());
tag(ActuallyTags.Items.CROPS_RICE).add(ActuallyItems.RICE.get());
tag(ActuallyTags.Items.CROPS_COFFEE).add(ActuallyItems.COFFEE_BEANS.get());
tag(ActuallyTags.Items.CROPS_CANOLA).add(ActuallyItems.CANOLA.get());
tag(ActuallyTags.Items.CROPS_FLAX).add(ActuallyItems.FLAX_SEEDS.get());
tag(Tags.Items.CROPS).addTags(ActuallyTags.Items.CROPS_RICE, ActuallyTags.Items.CROPS_COFFEE, ActuallyTags.Items.CROPS_CANOLA, ActuallyTags.Items.CROPS_FLAX);
tag(ActuallyTags.Items.SEEDS_RICE).add(ActuallyItems.RICE_SEEDS.get());
tag(ActuallyTags.Items.SEEDS_COFFEE).add(ActuallyItems.COFFEE_BEANS.get());
tag(ActuallyTags.Items.SEEDS_CANOLA).add(ActuallyItems.CANOLA_SEEDS.get());
tag(ActuallyTags.Items.SEEDS_FLAX).add(ActuallyItems.FLAX_SEEDS.get());
tag(Tags.Items.SEEDS).addTags(ActuallyTags.Items.SEEDS_RICE, ActuallyTags.Items.SEEDS_COFFEE, ActuallyTags.Items.SEEDS_CANOLA, ActuallyTags.Items.SEEDS_FLAX);
tag(ActuallyTags.Items.GEMS_BLACK_QUARTZ).add(ActuallyItems.BLACK_QUARTZ.get());
tag(ActuallyTags.Items.ORES_BLACK_QUARTZ).add(ActuallyBlocks.BLACK_QUARTZ_ORE.getItem());
tag(Tags.Items.ORES).addTags(ActuallyTags.Items.ORES_BLACK_QUARTZ);
tag(Tags.Items.ORES_IN_GROUND_STONE).add(ActuallyBlocks.BLACK_QUARTZ_ORE.getItem());
tag(ActuallyTags.Items.STORAGE_BLOCKS_BLACK_QUARTZ).add(ActuallyBlocks.BLACK_QUARTZ.getItem());
}
}

View file

@ -26,6 +26,7 @@ import de.ellpeck.actuallyadditions.mod.entity.EntityWorm;
import de.ellpeck.actuallyadditions.mod.entity.InitEntities;
import de.ellpeck.actuallyadditions.mod.event.CommonEvents;
import de.ellpeck.actuallyadditions.mod.fluids.InitFluids;
import de.ellpeck.actuallyadditions.mod.gen.ActuallyVillageCrops;
import de.ellpeck.actuallyadditions.mod.gen.modifier.BoolConfigFeatureBiomeModifier;
import de.ellpeck.actuallyadditions.mod.inventory.ActuallyContainers;
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
@ -124,6 +125,7 @@ public class ActuallyAdditions {
// NeoForge.EVENT_BUS.register(new DungeonLoot());
NeoForge.EVENT_BUS.addListener(ActuallyAdditions::reloadEvent);
NeoForge.EVENT_BUS.addListener(Worm::onHoe);
NeoForge.EVENT_BUS.addListener(ActuallyVillageCrops::addNewVillageCrop);
InitFluids.init(eventBus);
eventBus.addListener(PacketHandler::register);

View file

@ -65,7 +65,6 @@ import de.ellpeck.actuallyadditions.mod.tile.TileEntityXPSolidifier;
import de.ellpeck.actuallyadditions.registration.AABlockReg;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.SlabBlock;
import net.minecraft.world.level.block.SoundType;
@ -313,10 +312,10 @@ public final class ActuallyBlocks {
(b) -> new AABlockItem(b, defaultBlockItemProperties));
public static Supplier<Block> CANOLA = BLOCKS.register("canola", () -> new AACrops(defaultCropProps(), ActuallyItems.CANOLA_SEEDS));
public static Supplier<Block> RICE = BLOCKS.register("rice", () -> new AACrops(defaultCropProps(), ActuallyItems.RICE_SEEDS));
public static Supplier<Block> FLAX = BLOCKS.register("flax", () -> new AACrops(defaultCropProps(), ActuallyItems.FLAX_SEEDS));
public static Supplier<Block> COFFEE = BLOCKS.register("coffee", () -> new AACrops(defaultCropProps(), ActuallyItems.COFFEE_BEANS));
public static Supplier<AACrops> CANOLA = BLOCKS.register("canola", () -> new AACrops(defaultCropProps(), ActuallyItems.CANOLA_SEEDS));
public static Supplier<AACrops> RICE = BLOCKS.register("rice", () -> new AACrops(defaultCropProps(), ActuallyItems.RICE_SEEDS));
public static Supplier<AACrops> FLAX = BLOCKS.register("flax", () -> new AACrops(defaultCropProps(), ActuallyItems.FLAX_SEEDS));
public static Supplier<AACrops> COFFEE = BLOCKS.register("coffee", () -> new AACrops(defaultCropProps(), ActuallyItems.COFFEE_BEANS));
public static final AABlockReg<BlockGreenhouseGlass, AABlockItem, ?> GREENHOUSE_GLASS = new AABlockReg<>("greenhouse_glass", BlockGreenhouseGlass::new,
(b) -> new AABlockItem(b, defaultBlockItemProperties));

View file

@ -13,6 +13,7 @@ package de.ellpeck.actuallyadditions.mod.blocks.render;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Axis;
import de.ellpeck.actuallyadditions.api.lens.ILensItem;
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityAtomicReconstructor;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import net.minecraft.client.renderer.LevelRenderer;
@ -34,6 +35,8 @@ public class ReconstructorRenderer implements BlockEntityRenderer<TileEntityAtom
@Override
public void render(TileEntityAtomicReconstructor tile, float partialTicks, @Nonnull PoseStack matrices, @Nonnull MultiBufferSource buffer, int combinedLight, int combinedOverlay) {
if(!tile.getLevel().getBlockState(tile.getBlockPos()).is(ActuallyBlocks.ATOMIC_RECONSTRUCTOR.get()))
return; //TODO crash bandage
ItemStack stack = tile.inv.getStackInSlot(0);
//default color 0x1b6dff
int color = tile.getBeamColor();

View file

@ -36,6 +36,10 @@ public class PressingRecipe implements Recipe<Container> {
return true;
}
public Ingredient getInput() {
return this.input;
}
@Override
public ItemStack assemble(Container pInv, RegistryAccess pRegistryAccess) {
return ItemStack.EMPTY;

View file

@ -0,0 +1,56 @@
package de.ellpeck.actuallyadditions.mod.gen;
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.levelgen.structure.templatesystem.AlwaysTrueTest;
import net.minecraft.world.level.levelgen.structure.templatesystem.ProcessorRule;
import net.minecraft.world.level.levelgen.structure.templatesystem.RandomBlockMatchTest;
import net.minecraft.world.level.levelgen.structure.templatesystem.RuleProcessor;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessor;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorList;
import net.neoforged.neoforge.event.server.ServerAboutToStartEvent;
import java.util.ArrayList;
import java.util.List;
public class ActuallyVillageCrops {
public static void addNewVillageCrop(final ServerAboutToStartEvent event) {
Registry<StructureProcessorList> processorListRegistry = event.getServer().registryAccess().registry(Registries.PROCESSOR_LIST).orElseThrow();
StructureProcessor cropProcessor = new RuleProcessor(List.of(
new ProcessorRule(new RandomBlockMatchTest(Blocks.WHEAT, 0.30F), AlwaysTrueTest.INSTANCE, ActuallyBlocks.RICE.get().defaultBlockState()),
new ProcessorRule(new RandomBlockMatchTest(Blocks.WHEAT, 0.25F), AlwaysTrueTest.INSTANCE, ActuallyBlocks.COFFEE.get().defaultBlockState()),
new ProcessorRule(new RandomBlockMatchTest(Blocks.WHEAT, 0.10F), AlwaysTrueTest.INSTANCE, ActuallyBlocks.CANOLA.get().defaultBlockState()),
new ProcessorRule(new RandomBlockMatchTest(Blocks.WHEAT, 0.05F), AlwaysTrueTest.INSTANCE, ActuallyBlocks.FLAX.get().defaultBlockState())
));
addNewRuleToProcessorList(new ResourceLocation("minecraft:farm_plains"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("minecraft:farm_savanna"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("minecraft:farm_snowy"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("minecraft:farm_taiga"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("minecraft:farm_desert"), cropProcessor, processorListRegistry);
// Can target other mod's processor lists
addNewRuleToProcessorList(new ResourceLocation("repurposed_structures:villages/badlands/crop_replacement"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("repurposed_structures:villages/birch/crop_randomizer"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("repurposed_structures:villages/dark_forest/crop_randomizer"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("repurposed_structures:villages/giant_taiga/crop_randomizer"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("repurposed_structures:villages/jungle/crop_randomizer"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("repurposed_structures:villages/mountains/crop_randomizer"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("repurposed_structures:villages/oak/crop_randomizer"), cropProcessor, processorListRegistry);
addNewRuleToProcessorList(new ResourceLocation("repurposed_structures:villages/swamp/crop_randomizer"), cropProcessor, processorListRegistry);
}
private static void addNewRuleToProcessorList(ResourceLocation targetProcessorList, StructureProcessor processorToAdd, Registry<StructureProcessorList> processorListRegistry) {
processorListRegistry.getOptional(targetProcessorList)
.ifPresent(processorList -> {
List<StructureProcessor> newSafeList = new ArrayList<>(processorList.list());
newSafeList.add(processorToAdd);
processorList.list = newSafeList; //Have to use an AT to be able to modify the list (or Accessor Mixin)
});
}
}

View file

@ -10,20 +10,26 @@
package de.ellpeck.actuallyadditions.mod.inventory;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFireworkBox;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.item.ItemStack;
import java.util.Objects;
public class ContainerFireworkBox extends AbstractContainerMenu {
public final TileEntityFireworkBox fireworkbox;
public static ContainerFireworkBox fromNetwork(int windowId, Inventory inv, FriendlyByteBuf data) {
return new ContainerFireworkBox(windowId, inv);
return new ContainerFireworkBox(windowId, inv, (TileEntityFireworkBox) Objects.requireNonNull(inv.player.level().getBlockEntity(data.readBlockPos())));
}
public ContainerFireworkBox(int windowId, Inventory inventory) {
public ContainerFireworkBox(int windowId, Inventory inventory, TileEntityFireworkBox tile) {
super(ActuallyContainers.FIREWORK_BOX_CONTAINER.get(), windowId);
this.fireworkbox = tile;
}
@Override

View file

@ -10,24 +10,32 @@
package de.ellpeck.actuallyadditions.mod.inventory.gui;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.inventory.ContainerFireworkBox;
import de.ellpeck.actuallyadditions.mod.network.PacketHandlerHelper;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFireworkBox;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.AbstractSliderButton;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.client.resources.language.I18n;
import net.minecraft.network.chat.Component;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Inventory;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
// TODO: FIX ME
import java.text.DecimalFormat;
import java.text.NumberFormat;
@OnlyIn(Dist.CLIENT)
public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox> {
// private final TileEntityFireworkBox tile;
protected final TileEntityFireworkBox tile;
public GuiFireworkBox(ContainerFireworkBox screenContainer, Inventory inv, Component titleIn) {
super(screenContainer, inv, titleIn);
// this.tile = tile.;
this.tile = screenContainer.fireworkbox;
this.imageWidth = 300;
this.imageHeight = 120;
}
@ -35,21 +43,27 @@ public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox
@Override
public void init() {
super.init();
//
// this.addButton(new CustomSlider(this.guiLeft, this.guiTop, "Value Play", 0F, 5F, this.tile.intValuePlay, IntFormatter.INSTANCE));
// this.addButton(new CustomSlider(this.guiLeft, this.guiTop + 20, "Average Charge Amount", 1F, 4F, this.tile.chargeAmount, IntFormatter.INSTANCE));
// this.addButton(new CustomSlider(this.guiLeft, this.guiTop + 40, "Average Flight Time", 1F, 3F, this.tile.flightTime, IntFormatter.INSTANCE));
// this.addButton(new CustomSlider(this.guiLeft, this.guiTop + 60, "Effect Chance", 0F, 1F, this.tile.trailOrFlickerChance, null));
// this.addButton(new CustomSlider(this.guiLeft, this.guiTop + 80, "Flicker/Trail Ratio", 0F, 1F, this.tile.flickerChance, null));
// this.addButton(new CustomSlider(this.guiLeft, this.guiTop + 100, "Color Amount", 1, 6, this.tile.colorAmount, IntFormatter.INSTANCE));
//
// this.addButton(new CustomSlider(this.guiLeft + 150, this.guiTop, "Small Ball", 0F, 1F, this.tile.typeChance0, null));
// this.addButton(new CustomSlider(this.guiLeft + 150, this.guiTop + 20, "Large Ball", 0F, 1F, this.tile.typeChance1, null));
// this.addButton(new CustomSlider(this.guiLeft + 150, this.guiTop + 40, "Star Shape", 0F, 1F, this.tile.typeChance2, null));
// this.addButton(new CustomSlider(this.guiLeft + 150, this.guiTop + 60, "Creeper Shape", 0F, 1F, this.tile.typeChance3, null));
// this.addButton(new CustomSlider(this.guiLeft + 150, this.guiTop + 80, "Burst", 0F, 1F, this.tile.typeChance4, null));
//
// this.addButton(new CustomSlider(this, 11, this.guiLeft + 150, this.guiTop + 100, "Area of Effect", 0, 4, this.tile.areaOfEffect, IntFormatter.INSTANCE));
DecimalFormat intFormatter = new DecimalFormat("0");
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop(), Component.literal("Value Play"), 0F, 5F, this.tile.intValuePlay, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 0)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 20, Component.literal("Average Charge Amount"), 1F, 4F, this.tile.chargeAmount, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 1)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 40, Component.literal("Average Flight Time"), 1F, 3F, this.tile.flightTime, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 2)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 60, Component.literal("Effect Chance"), 0F, 1F, this.tile.trailOrFlickerChance, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 3)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 80, Component.literal("Flicker/Trail Ratio"), 0F, 1F, this.tile.flickerChance, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 4)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 100, Component.literal("Color Amount"), 1, 6, this.tile.colorAmount, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 5)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop(), Component.literal("Small Ball"), 0F, 1F, this.tile.typeChance0, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 6)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 20, Component.literal("Large Ball"), 0F, 1F, this.tile.typeChance1, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 7)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 40, Component.literal("Star Shape"), 0F, 1F, this.tile.typeChance2, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 8)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 60, Component.literal("Creeper Shape"), 0F, 1F, this.tile.typeChance3, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 9)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 80, Component.literal("Burst"), 0F, 1F, this.tile.typeChance4, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 10)));
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 100, Component.literal("Area of Effect"), 0, 4, this.tile.areaOfEffect, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 11)));
}
@Override
protected void renderLabels(GuiGraphics guiGraphics, int pMouseX, int pMouseY) {
AssetUtil.displayNameString(guiGraphics, this.font, this.getXSize(), -10, I18n.get("container." + ActuallyAdditions.MODID + ".fireworkBox"));
}
@Override
@ -57,76 +71,104 @@ public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox
}
// TODO: FIX;
// @Override
// public void setEntryValue(int id, float value) {
// Button button = this.buttonList.get(id);
// if (button instanceof GuiSlider) {
// if (!((GuiSlider) button).isMouseDown) {
// System.out.println("SETTING VALUE FOR " + id + "!!");
// PacketHandlerHelper.sendNumberPacket(this.tile, value, id);
// }
// }
// }
@Override
public boolean mouseDragged(double pMouseX, double pMouseY, int pButton, double pDragX, double pDragY) {
if (this.getFocused() != null && this.isDragging() && pButton == 0) {
return this.getFocused().mouseDragged(pMouseX, pMouseY, pButton, pDragX, pDragY);
}
return super.mouseDragged(pMouseX, pMouseY, pButton, pDragX, pDragY);
}
// @Override
// protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
//
// }
//
// @Override
// public void drawGuiContainerForegroundLayer(int x, int y) {
// AssetUtil.displayNameString(this.font, this.xSize, -10, this.tile);
// }
//
// @Override
// public void setEntryValue(int id, boolean value) {
//}
// @Override
// public void setEntryValue(int id, String value) {
//
// }
// TODO: FIX
private static class CustomSlider extends AbstractSliderButton {
public CustomSlider(int x, int y, int width, int height, Component message, double defaultValue) {
super(x, y, width, height, message, defaultValue);
private final double min;
private final double max;
private final DecimalFormat format;
private final Component sliderName;
private final NumberFormat defaultFormat = new DecimalFormat("0.00000000");
protected final CustomSlider.OnApply onApply;
private final double stepSize = 0;
public CustomSlider(int x, int y, Component message, double min, double max, double defaultValue, DecimalFormat format, CustomSlider.OnApply onApply) {
super(x, y, 150, 20, message, defaultValue);
this.sliderName = message;
this.min = min;
this.max = max;
this.format = format;
this.value = (Mth.clamp((float) value, min, max) - min) / (max - min);
this.onApply = onApply;
this.updateMessage();
}
@Override
protected void onDrag(double mouseX, double mouseY, double dragX, double dragY) {
super.onDrag(mouseX, mouseY, dragX, dragY);
this.setValueFromMouse(mouseX);
}
private void setValueFromMouse(double mouseX) {
this.setSliderValue((mouseX - (this.getX() + 4)) / (this.width - 8));
}
public double getValue() {
return this.value * (max - min) + min;
}
private void setSliderValue(double value) {
double oldValue = this.value;
this.value = this.snapToNearest(value);
if (!Mth.equal(oldValue, this.value))
this.applyValue();
this.updateMessage();
}
private double snapToNearest(double value) {
if (stepSize <= 0D)
return Mth.clamp(value, 0D, 1D);
value = Mth.lerp(Mth.clamp(value, 0D, 1D), this.min, this.max);
value = (stepSize * Math.round(value / stepSize));
if (this.min > this.max) {
value = Mth.clamp(value, this.max, this.min);
} else {
value = Mth.clamp(value, this.min, this.max);
}
return Mth.map(value, this.min, this.max, 0D, 1D);
}
// private final GuiResponder responder;
//
// public CustomSlider(GuiResponder guiResponder, int idIn, int x, int y, String name, float min, float max, float defaultValue, FormatHelper formatter) {
// super(guiResponder, idIn, x, y, name, min, max, defaultValue, formatter);
// this.responder = guiResponder;
// }
// @Override
public void mouseReleased(int mouseX, int mouseY) {
// super.mouseReleased(mouseX, mouseY);
// this.responder.setEntryValue(this.id, this.getSliderValue());
public String getValueString() {
if (this.format == null) {
if(getValue() == (int) getValue()) {
return String.valueOf((double)((int) getValue()));
} else {
return this.defaultFormat.format(this.getValue());
}
} else {
return this.format.format(this.getValue());
}
}
@Override
protected void updateMessage() {
this.setMessage(sliderName.copy().append(": ").append(this.getValueString()));
}
@Override
public boolean mouseReleased(double pMouseX, double pMouseY, int pButton) {
return super.mouseReleased(pMouseX, pMouseY, pButton);
}
@Override
protected void applyValue() {
this.onApply.onApply(this);
}
public interface OnApply {
void onApply(CustomSlider slider);
}
}
//private static class IntFormatter implements GuiSlider.FormatHelper {
//
// public static final IntFormatter INSTANCE = new IntFormatter();
//
// @Override
// public String getText(int id, String name, float value) {
// return name + ": " + (int) value;
// }
//}
}

Some files were not shown because too many files have changed in this diff Show more