diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 0208a7ecc..1ee9d27fe 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -5,7 +5,7 @@ f0d6baaabda94151134f569246d61a6e710c35a9 assets/create/blockstates/acacia_window 79c50afcea3a360783a5b3c73de9823511e9aed9 assets/create/blockstates/adjustable_pulse_repeater.json 1d730df54c9eae94063e37396d224fb3c87517e0 assets/create/blockstates/adjustable_repeater.json 9dd79bf5430f674e7d3e3fc7d59edee3d66e241e assets/create/blockstates/analog_lever.json -0a172dea0746027be3676e87271615f1307245a6 assets/create/blockstates/andesite_belt_funnel.json +dd468657a73fc2ad6e1ac08ace2996b6997d33e0 assets/create/blockstates/andesite_belt_funnel.json 585481e97c5066af63ea12fa5dd658798844d64c assets/create/blockstates/andesite_bricks.json 4e8d61aa2c8490301317ef747f67f0169ebfc2ed assets/create/blockstates/andesite_bricks_slab.json da63a8be3191d6d72afef6c79e3aea3f607631f9 assets/create/blockstates/andesite_bricks_stairs.json @@ -29,7 +29,7 @@ a71ddf3291bd13d7877f2fe32c42f50407f99afb assets/create/blockstates/black_valve_h ec2ab87734acc209e6be3bc4898b1199f819bfd3 assets/create/blockstates/blue_sail.json 4854d1ef52130a7887aecc60bcaffbd66f0871a8 assets/create/blockstates/blue_seat.json 9d7341a5cae5d47788c595167946dfb6441cebd1 assets/create/blockstates/blue_valve_handle.json -fba967b1f6e44b34a9d9662e2fedfc13aad7f36c assets/create/blockstates/brass_belt_funnel.json +ee1299a15fca849eb42bf81507f85a54c167bbfe assets/create/blockstates/brass_belt_funnel.json 8b1dd00adcc7e74c5a9feed069e2610b15a338cb assets/create/blockstates/brass_block.json b8dd6e505943e06706d0718ece620ab3cf943650 assets/create/blockstates/brass_casing.json 3057e1121117c0cd651c288cd8e2d46bdf64afb1 assets/create/blockstates/brass_funnel.json @@ -137,7 +137,7 @@ de8a40b7daf1497d5aecee47a43b3e0b1d030b00 assets/create/blockstates/fancy_scoria_ fc9ac0a7e7191b93516719455a17177fa6524ecc assets/create/blockstates/fancy_weathered_limestone_bricks_slab.json b2a7c321b1795f20e7433f81a55ce4683de081b8 assets/create/blockstates/fancy_weathered_limestone_bricks_stairs.json 6372fe02ba0065acb0758121c45a15a1a8fdc5de assets/create/blockstates/fancy_weathered_limestone_bricks_wall.json -ddf31e35edba4572e4b916e654794c2fc9355c76 assets/create/blockstates/fluid_pipe.json +fe9169716dd21a81a3710a89f0a9b7ea4dcd4d51 assets/create/blockstates/fluid_pipe.json f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json 5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json @@ -329,7 +329,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json 61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json -100eedce1711b9eea00a4540ebef8a19e834df3a assets/create/blockstates/radial_chassis.json +8d7e653bfd9846e684a0d3725595714a19201017 assets/create/blockstates/radial_chassis.json 45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json 722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json @@ -392,16 +392,16 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json be82e2e68c74c572e72979a6d4a5ec5e571931e2 assets/create/lang/en_ud.json -b953a264ec3044b955431fb988c0bafcb9b57388 assets/create/lang/en_us.json -97fe71d544f1bc7552e6c9d1f328ae02cb1a1947 assets/create/lang/unfinished/de_de.json -052819c4d2177bfc5cee9675300866d724f4b63f assets/create/lang/unfinished/fr_fr.json -67d67f305c83e021e2ae37e03b9bf4aa2661bc87 assets/create/lang/unfinished/it_it.json -b0e3fc5a71b5127b832e38daece78ca9db9ce303 assets/create/lang/unfinished/ja_jp.json -610f399864dfa9d7fd258570853f7d577c5aee31 assets/create/lang/unfinished/ko_kr.json -12215221adcb015c5c74dbfe5affa920cd570580 assets/create/lang/unfinished/nl_nl.json -ead7216188692e96fb060b35213f1ef6b0682e87 assets/create/lang/unfinished/pt_br.json -e9d95034f9b33eb8e41792740ed2d8c488af6676 assets/create/lang/unfinished/ru_ru.json -32a2c4af9a5247f3bc7a5c2f502376e1e580d8bc assets/create/lang/unfinished/zh_cn.json +640c617ea3827d1ec40ab634da05f0c5af800f25 assets/create/lang/en_us.json +57bbb98446e72a74cb0735b424e9811b61af0c74 assets/create/lang/unfinished/de_de.json +4a0592f11dba8b26765e7abab386e46a2366afb8 assets/create/lang/unfinished/fr_fr.json +9bb92001a7e88fedff2a2868d2e80243a9306880 assets/create/lang/unfinished/it_it.json +c12f58d8ca37c34148a9e8358846e6911870210c assets/create/lang/unfinished/ja_jp.json +7cf5988ec697add8deac90791ca0c30c57321ee0 assets/create/lang/unfinished/ko_kr.json +1b41fd6a902cf5e845d9eb6aa60c066080a3d20e assets/create/lang/unfinished/nl_nl.json +362fb090bbf8a66b874ffa2a550f32b7c6ee2d7d assets/create/lang/unfinished/pt_br.json +0764d4f607734ed33299629ea7aceb6c3e67ba0f assets/create/lang/unfinished/ru_ru.json +23b2b6f091083dbb505e10febebfa4cab06c1db2 assets/create/lang/unfinished/zh_cn.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -424,14 +424,14 @@ cda6f9761431c5b8538f746db2dc55e5fb57bf01 assets/create/models/block/adjustable_p ce5e0cd1598cf2228bb77a68c304dd210f3848f8 assets/create/models/block/adjustable_repeater_powered.json c82a31943f5adb4a64c6db4c48c94cbce5d95bc4 assets/create/models/block/adjustable_repeater_powered_powering.json 51cf61f8bc25cf62b0e0c0705c75512809358ff0 assets/create/models/block/adjustable_repeater_powering.json -4b8c1db868de612ae6a49d9133db700ac6a3d688 assets/create/models/block/andesite_belt_funnel_pull_extended.json -eb7f1bfcd856bf302cb24dda09994ceef280fca2 assets/create/models/block/andesite_belt_funnel_pull_powered_extended.json -d5d7c62b16aa3cfb279b4e3100f910c1782b5846 assets/create/models/block/andesite_belt_funnel_pull_powered_retracted.json -2d228eae550d573f4cad06ed6f6d51e4975fdde6 assets/create/models/block/andesite_belt_funnel_pull_retracted.json -2a3b929e3c24f70a0842b9ce56c175c4383e2598 assets/create/models/block/andesite_belt_funnel_push_extended.json -56a4d2e099fb285fd04ef095ced3bd7046835711 assets/create/models/block/andesite_belt_funnel_push_powered_extended.json -8a73d43517d64f873896631fbe7fccd085e1603a assets/create/models/block/andesite_belt_funnel_push_powered_retracted.json -aff112cb4ca73f3b1f71e98ccd984ee286da2930 assets/create/models/block/andesite_belt_funnel_push_retracted.json +bcbe466da8b2172aa0f6e5c846b2e261632ceb6b assets/create/models/block/andesite_belt_funnel__extended.json +9218b0a053911071dbde66fdc97de7485a08c54e assets/create/models/block/andesite_belt_funnel__powered_extended.json +433daa4b4cb4b6bc12918b2e78c2141d941e78d8 assets/create/models/block/andesite_belt_funnel__powered_pulling.json +a3581f92b80a7adf2f933cfbeda43f88db7d8615 assets/create/models/block/andesite_belt_funnel__powered_pushing.json +14b6689a3c67bfb4fddbd062e9bdb0957e228a8c assets/create/models/block/andesite_belt_funnel__powered_retracted.json +657f22838ee3e8719fa33e1f85034043c4907310 assets/create/models/block/andesite_belt_funnel__pulling.json +59016d8f76df2920437168368cfba47bbf19d214 assets/create/models/block/andesite_belt_funnel__pushing.json +997495a40f20d13a6b7f6083bb8f519ff107ca28 assets/create/models/block/andesite_belt_funnel__retracted.json 4d412de3eb98dfee548a0dcdbae5d0168ac67123 assets/create/models/block/andesite_bricks.json 054ef3fff7f146dbf8adc92dc2b6d169c2bdb7a5 assets/create/models/block/andesite_bricks_slab.json 8784414839f6a5786bf43d6a7dff6c27bdf7fe46 assets/create/models/block/andesite_bricks_slab_top.json @@ -481,14 +481,14 @@ c86a455b8e85ef190261718726b344cf15ba1e4f assets/create/models/block/bracket/shaf 8fa9ce896412af894d7c431a50104445d91b1d4d assets/create/models/block/bracket/shaft/ground_wooden.json 3956168840aca9425d3bf240650406c1dbc8ea66 assets/create/models/block/bracket/shaft/wall_metal.json 7aaa2fbdb618e8aab7e0da19a5393e1eaa608623 assets/create/models/block/bracket/shaft/wall_wooden.json -24dff9a8d22c9a88286d2b7d08384ac9f281a512 assets/create/models/block/brass_belt_funnel_pull_extended.json -c9c5f53c9d4f6cf6f509452e91cab1ba5b57f807 assets/create/models/block/brass_belt_funnel_pull_powered_extended.json -addcf821a2348c0985bf9a72229355cfab818069 assets/create/models/block/brass_belt_funnel_pull_powered_retracted.json -332c7b8bf2feb635290b05788b61ead0b2cc813a assets/create/models/block/brass_belt_funnel_pull_retracted.json -094a5aedd53295aaa9b78deedf7899f9875dc5d8 assets/create/models/block/brass_belt_funnel_push_extended.json -44d2cf63398e5e4c39f43412a00d7f0213d8703c assets/create/models/block/brass_belt_funnel_push_powered_extended.json -07eb19291e5c6108e9e25f57f512747bc48352dd assets/create/models/block/brass_belt_funnel_push_powered_retracted.json -6ff63956c71363f198588aca3fd849ad4e0c8863 assets/create/models/block/brass_belt_funnel_push_retracted.json +3fac6b1da6a81fc44a1ffe1e13dc6cfe37c3b738 assets/create/models/block/brass_belt_funnel__extended.json +2d10825bfd94419d5dbb4e60187127c4a1ce1526 assets/create/models/block/brass_belt_funnel__powered_extended.json +5ff7e01c5b65eb210a054556068d75426b547d9b assets/create/models/block/brass_belt_funnel__powered_pulling.json +e981727fd71e32ea2ecb8e057dfe123f1b940101 assets/create/models/block/brass_belt_funnel__powered_pushing.json +bc23a91f300e46761bb14c597fad39c3d414e84d assets/create/models/block/brass_belt_funnel__powered_retracted.json +dfc6250e28e12ff193a45891978ec50c406fc0c2 assets/create/models/block/brass_belt_funnel__pulling.json +5409325494780afe32e6e30377314e2992ca4aa5 assets/create/models/block/brass_belt_funnel__pushing.json +97410a12b7c1461f88fb633f26ff566a0636b627 assets/create/models/block/brass_belt_funnel__retracted.json 0934933df6bfbb19a1b14cd0e3cab2c18d5a3ebc assets/create/models/block/brass_block.json 166a5c053a81e6aadc24509ed24dc144a7255969 assets/create/models/block/brass_casing.json 838e7ab4c0c9d89eacfa078daf64995e505db896 assets/create/models/block/brass_funnel.json @@ -2148,12 +2148,12 @@ d0ba402852cea164f6d279a9b37cc38ac3958574 data/create/loot_tables/blocks/adjustab 0d139e302f4a11438b0acd664c0df15b41040f69 data/create/loot_tables/blocks/analog_lever.json d3202a337c15c8b8ec41fa5879bb94327bb75057 data/create/loot_tables/blocks/andesite_belt_funnel.json 1d04146c468ce4bf898b596c171b3ba3146d7d66 data/create/loot_tables/blocks/andesite_bricks.json -406e04981bee322d5e6ad1c58bc6c9036e8fd218 data/create/loot_tables/blocks/andesite_bricks_slab.json +b67ea51eaed1e847317829636cbf5967522e73d1 data/create/loot_tables/blocks/andesite_bricks_slab.json 0ba4528089294c5229e1904dc3191f604138cf8e data/create/loot_tables/blocks/andesite_bricks_stairs.json db2d27969cb53d9489e7c7e4bf60864fa89b29f4 data/create/loot_tables/blocks/andesite_bricks_wall.json cb36b039a511aca643fe674a63de8d6ad8478256 data/create/loot_tables/blocks/andesite_casing.json 906155b0d00438e695d34dd14b374d94e691460d data/create/loot_tables/blocks/andesite_cobblestone.json -a438bc69030589264e1d736bbd08662bdd123be3 data/create/loot_tables/blocks/andesite_cobblestone_slab.json +6d2f1bd619b131803d5bc9e393a2c67e03c39ff6 data/create/loot_tables/blocks/andesite_cobblestone_slab.json 6b5393dab7d443da6d54debccbc8b060c6c9bdc7 data/create/loot_tables/blocks/andesite_cobblestone_stairs.json 36d38c085d8e522fe15f0ef9bc64363e163f3de7 data/create/loot_tables/blocks/andesite_cobblestone_wall.json d3202a337c15c8b8ec41fa5879bb94327bb75057 data/create/loot_tables/blocks/andesite_funnel.json @@ -2209,32 +2209,32 @@ fd309e1d39dcbcb25c3361edecd8c9afa0f847d0 data/create/loot_tables/blocks/dark_oak 58e6307ba0efa65a0715662a391fe7dc6fba0c68 data/create/loot_tables/blocks/dark_oak_window_pane.json 7a40002e4c05f6456b52558b9ee9607cfc868a69 data/create/loot_tables/blocks/dark_scoria.json 502160551afd210c68582a1dfd41a2df720f53a1 data/create/loot_tables/blocks/dark_scoria_bricks.json -d37adba01cd1220e265dbdc025b3f8d01b992289 data/create/loot_tables/blocks/dark_scoria_bricks_slab.json +5bce6b714e1131ccc11a670f57fa627cbb0f4409 data/create/loot_tables/blocks/dark_scoria_bricks_slab.json 265bb133af68497d9b4ba4bd418a198506caa45b data/create/loot_tables/blocks/dark_scoria_bricks_stairs.json 43fd6e4e2e140416245f7e7e4a680e347a446fc5 data/create/loot_tables/blocks/dark_scoria_bricks_wall.json ef1beeb856cb30d381fd4f1cb4d2bf62fc444e52 data/create/loot_tables/blocks/dark_scoria_cobblestone.json -b479f01037bc74f56f8d7b047afc8fa0ff79b0b8 data/create/loot_tables/blocks/dark_scoria_cobblestone_slab.json +3dc33d264a78b21915ee4dcaef9fc8a989a90ae2 data/create/loot_tables/blocks/dark_scoria_cobblestone_slab.json 7b55b57140f7f04e39c951958cd4b62e17621761 data/create/loot_tables/blocks/dark_scoria_cobblestone_stairs.json 76457f3ec7c2d3874866ce8eb894f7bd9cfd59ee data/create/loot_tables/blocks/dark_scoria_cobblestone_wall.json be851f6643d151ed464e4164bc2b7ca145e5ff82 data/create/loot_tables/blocks/dark_scoria_pillar.json cf9be747e10a98f3f3aabb95c9753f39d806f73b data/create/loot_tables/blocks/deployer.json 5b46f6003bfe393b43ea0447fffcf7ae3bf969b1 data/create/loot_tables/blocks/depot.json 5c8ca846c3fb348fea628035e1670208e386516b data/create/loot_tables/blocks/diorite_bricks.json -b889b5b9d33ef36fe5ce8b59e0922a22ba2a8e91 data/create/loot_tables/blocks/diorite_bricks_slab.json +427fea1465652db87a2c192934511b972ecfcedf data/create/loot_tables/blocks/diorite_bricks_slab.json bdaba62199f7a65e1149b742aaaf0c23a1e149b0 data/create/loot_tables/blocks/diorite_bricks_stairs.json 17c768f01d476fc263ac4c3d2b588412f3c1198e data/create/loot_tables/blocks/diorite_bricks_wall.json 634c0fbb429c8f8350a790fbaf44338a7d3e299e data/create/loot_tables/blocks/diorite_cobblestone.json -529a6ddf7d57a12f4b4ee7e9b2890b789e79b327 data/create/loot_tables/blocks/diorite_cobblestone_slab.json +1b07173a3b2e57a036fbec2ffac7f4522ad5f1c8 data/create/loot_tables/blocks/diorite_cobblestone_slab.json 5141eec8eebed0feec906618dd3474ea402fbf28 data/create/loot_tables/blocks/diorite_cobblestone_stairs.json f3c963cfd51069876140373f410e868706744e9b data/create/loot_tables/blocks/diorite_cobblestone_wall.json fdcf47cddebca81730ac122925b01daeddf9233d data/create/loot_tables/blocks/diorite_pillar.json 7aa075c7fbe97447422bfcb95afb3bbe3b26301c data/create/loot_tables/blocks/dolomite.json 7ecdbfa3ebfc6865833bafed06ed7cd6eef58345 data/create/loot_tables/blocks/dolomite_bricks.json -ecc855c3ce298855038eb7b53137cab519bca55a data/create/loot_tables/blocks/dolomite_bricks_slab.json +61d2020cb26b67467711d6dd4f2381c0518acdd9 data/create/loot_tables/blocks/dolomite_bricks_slab.json 699815e110c76bcb793efdfedcb8ac3a5b9b7131 data/create/loot_tables/blocks/dolomite_bricks_stairs.json fea6a8aa0997360e2713c159b19cb89858ab5982 data/create/loot_tables/blocks/dolomite_bricks_wall.json cfa4afad6cba1706474ee878b0043aa6cb2c1075 data/create/loot_tables/blocks/dolomite_cobblestone.json -c75e9574f5ba34335598e6b1f1e957de9dea4a6b data/create/loot_tables/blocks/dolomite_cobblestone_slab.json +f1d9565dd7e9d57832581a3774084f9390cf23b6 data/create/loot_tables/blocks/dolomite_cobblestone_slab.json 59ff2dc7c0663b0a041a8b4dc66af3a17e117aa4 data/create/loot_tables/blocks/dolomite_cobblestone_stairs.json d5fc5b3dc612cd748117e9d8b0ecda76e73f4514 data/create/loot_tables/blocks/dolomite_cobblestone_wall.json 6121c99e6e037dda9022af3a414aee444467ac1b data/create/loot_tables/blocks/dolomite_pillar.json @@ -2243,39 +2243,39 @@ d5fc5b3dc612cd748117e9d8b0ecda76e73f4514 data/create/loot_tables/blocks/dolomite c8aa9bbed8fd703eb1853de0b7c9e04dffb7a511 data/create/loot_tables/blocks/encased_fluid_pipe.json b127cb6920e6d7d9c8b2402cb186402a9a8dd3fc data/create/loot_tables/blocks/encased_shaft.json ddfc4764a6039d771e03af815ac4493da80d2e6b data/create/loot_tables/blocks/fancy_andesite_bricks.json -6de29951b4129dfd5c7fd6960e7dd8b8d371b451 data/create/loot_tables/blocks/fancy_andesite_bricks_slab.json +31f2e6932505c68b28e92221a37144f69161c376 data/create/loot_tables/blocks/fancy_andesite_bricks_slab.json 413c8bb80954679796cd9d18f808c28a7bdbe681 data/create/loot_tables/blocks/fancy_andesite_bricks_stairs.json b51e0f9df7297f6d98d7fc24202c01c8437b613a data/create/loot_tables/blocks/fancy_andesite_bricks_wall.json 1e0f7ab66554911b37ffeeceef4d13ad3c12c7cf data/create/loot_tables/blocks/fancy_dark_scoria_bricks.json -13c74ed5609dc8758cf550c68a7d115a42ee5f15 data/create/loot_tables/blocks/fancy_dark_scoria_bricks_slab.json +65c7ec7034462ccf9bf4237f3d7a5a07ea613170 data/create/loot_tables/blocks/fancy_dark_scoria_bricks_slab.json 692b7aab0fa9a1610cc87b469172baccd6f206bb data/create/loot_tables/blocks/fancy_dark_scoria_bricks_stairs.json 5600f9afd4271045383332799cae926cae03691e data/create/loot_tables/blocks/fancy_dark_scoria_bricks_wall.json b272bdf3a70adb5477e73f1a6db112dadf83e750 data/create/loot_tables/blocks/fancy_diorite_bricks.json -80a87576fe18768dac2f13b238e9f731074c07a0 data/create/loot_tables/blocks/fancy_diorite_bricks_slab.json +b5f76570503a5f77062e529263a9a4cbe0d7bfa6 data/create/loot_tables/blocks/fancy_diorite_bricks_slab.json 686cf8fe6950fd336755ed6a65cd41f611a8cba7 data/create/loot_tables/blocks/fancy_diorite_bricks_stairs.json a76222e64356951c6038c4b26a28465a1c51f609 data/create/loot_tables/blocks/fancy_diorite_bricks_wall.json f21cc226848e6d65b1c1167acf6a84be97e22b8a data/create/loot_tables/blocks/fancy_dolomite_bricks.json -e47bd7a391a163dabe29763b77975dc38db41201 data/create/loot_tables/blocks/fancy_dolomite_bricks_slab.json +fa3123cd6b14bbb4090e2b1cd15d48a8f9c1ff95 data/create/loot_tables/blocks/fancy_dolomite_bricks_slab.json b1cb60875d96d403734793c848cb48d1af003ebe data/create/loot_tables/blocks/fancy_dolomite_bricks_stairs.json 35ea72b6aa72d027be3f565ffa8315b99d3f55d9 data/create/loot_tables/blocks/fancy_dolomite_bricks_wall.json 6d7ebe8708748780865a8c5c9acd1ea338734951 data/create/loot_tables/blocks/fancy_gabbro_bricks.json -c32966d3315e81c21d1cb116fb801dfc73865e2a data/create/loot_tables/blocks/fancy_gabbro_bricks_slab.json +99893d8bd3dac544d447c3023d858f497cb97556 data/create/loot_tables/blocks/fancy_gabbro_bricks_slab.json dc70fcfb5bd4baf5418b630f5e3a8724e0bdad25 data/create/loot_tables/blocks/fancy_gabbro_bricks_stairs.json 030b562f049fbd403efbc84b88efcb6988e9ed74 data/create/loot_tables/blocks/fancy_gabbro_bricks_wall.json c9f185553e94cd941a4058ab2194c279919c7778 data/create/loot_tables/blocks/fancy_granite_bricks.json -9748bdfc8350085d0baabc791bf7a39dc05a8e82 data/create/loot_tables/blocks/fancy_granite_bricks_slab.json +f15c6758244806514329ab21fb46a763b6785110 data/create/loot_tables/blocks/fancy_granite_bricks_slab.json 70266c8f9d1b150da78c40f3fd5ef51cd9e11090 data/create/loot_tables/blocks/fancy_granite_bricks_stairs.json 04fc099dc4f0e7e1e03a4e162c1c9f8e1443817f data/create/loot_tables/blocks/fancy_granite_bricks_wall.json a919a7333a2309392ba6908cd2330d014c0b44da data/create/loot_tables/blocks/fancy_limestone_bricks.json -9774bbcd18fb216bcbc32e26fc4dd23072ed58ba data/create/loot_tables/blocks/fancy_limestone_bricks_slab.json +5227c512cf9e75f36eb8a89c2aca8139392d6e7e data/create/loot_tables/blocks/fancy_limestone_bricks_slab.json 01d9d1a53ee36a84b689ea9018ed97b396dadf52 data/create/loot_tables/blocks/fancy_limestone_bricks_stairs.json 7d27790caf8d617c178f7b13cc6424813fad4f1f data/create/loot_tables/blocks/fancy_limestone_bricks_wall.json 03eaefe79ab0b61ad0bd0109db995059ed036d60 data/create/loot_tables/blocks/fancy_scoria_bricks.json -6105aaaed7ab75a6d4a9681bc0dc7556da375a76 data/create/loot_tables/blocks/fancy_scoria_bricks_slab.json +557e9825375f8486f61185bd8ed2433c63f6f845 data/create/loot_tables/blocks/fancy_scoria_bricks_slab.json 5f8f0283601f6abc1e0ee19861fc4eb8dfcd2914 data/create/loot_tables/blocks/fancy_scoria_bricks_stairs.json 664b145ec54ad8e2a26fac4ba64de9dc7c9d92e3 data/create/loot_tables/blocks/fancy_scoria_bricks_wall.json 7580387fd66509a5a265f1a332666b96f9ca2355 data/create/loot_tables/blocks/fancy_weathered_limestone_bricks.json -1864ecdcba9588e17004a55415ab993937117b68 data/create/loot_tables/blocks/fancy_weathered_limestone_bricks_slab.json +e4d0fe35d3441a5815bd4e1357329b284e63ecd8 data/create/loot_tables/blocks/fancy_weathered_limestone_bricks_slab.json 1be3aae5c0aa8b3c3750db79699e9350adb12231 data/create/loot_tables/blocks/fancy_weathered_limestone_bricks_stairs.json 6bb505bad78cbb01a5cb5a069435bf4ed0e62adf data/create/loot_tables/blocks/fancy_weathered_limestone_bricks_wall.json c8aa9bbed8fd703eb1853de0b7c9e04dffb7a511 data/create/loot_tables/blocks/fluid_pipe.json @@ -2287,11 +2287,11 @@ ce0bb978b11935bc2d1218445f8ab18099af6b8a data/create/loot_tables/blocks/framed_g 4063880eda871fe63a4eb549a19daecabce849e5 data/create/loot_tables/blocks/furnace_engine.json 1070cba1c0f46cf7ebe31089f35333f5eadda6e4 data/create/loot_tables/blocks/gabbro.json 0356e003d8890d31b89d0ad98e32aae892da71f9 data/create/loot_tables/blocks/gabbro_bricks.json -bd93e42ebca985b8aeeaf0ea5fb736d496183615 data/create/loot_tables/blocks/gabbro_bricks_slab.json +dfecc18b03f1037bde2cbf02bc85c5d176b29828 data/create/loot_tables/blocks/gabbro_bricks_slab.json e51893e1601c470da466b35b17251238e15d0361 data/create/loot_tables/blocks/gabbro_bricks_stairs.json 7064a46c81963ad06e14c1ed2f5a885a8895c459 data/create/loot_tables/blocks/gabbro_bricks_wall.json 54fb8b5b8ab3a22197e3c1b5b04767b898377da8 data/create/loot_tables/blocks/gabbro_cobblestone.json -8bb96e5257b0b6c09ce60bfe6c8b43a9d13dee95 data/create/loot_tables/blocks/gabbro_cobblestone_slab.json +986300390270e170b96db152017f5939c0e0653c data/create/loot_tables/blocks/gabbro_cobblestone_slab.json 54879fe6ca3b7271fbb94ec26bef1c3031942d4d data/create/loot_tables/blocks/gabbro_cobblestone_stairs.json ae19749df10663efc51b8b27af310164f250ed38 data/create/loot_tables/blocks/gabbro_cobblestone_wall.json e8d09c919e3b8125d7da0f38383c01bcfc61c7a8 data/create/loot_tables/blocks/gabbro_pillar.json @@ -2299,11 +2299,11 @@ b0109b4a4f0f738cbbe6b5911e8c3c0310b76f99 data/create/loot_tables/blocks/gearbox. 5f39461c5c9d3ad8d84195b06b9468fe2b0fb269 data/create/loot_tables/blocks/gearshift.json c8aa9bbed8fd703eb1853de0b7c9e04dffb7a511 data/create/loot_tables/blocks/glass_fluid_pipe.json 74371bc2b516ad9742ca081d82dc1b7f642e25b4 data/create/loot_tables/blocks/granite_bricks.json -f341c87b9d67f3281a4ca3fac99fccfb6ef81003 data/create/loot_tables/blocks/granite_bricks_slab.json +29f2cbc04f898bb8ff48055a7e43ded85e635bf9 data/create/loot_tables/blocks/granite_bricks_slab.json 6b2c74992f261df4f539ff65919e2f4a58b146ec data/create/loot_tables/blocks/granite_bricks_stairs.json 8916645260d99be1e13421d343980d863a14a695 data/create/loot_tables/blocks/granite_bricks_wall.json fa0ddf45d108f55550164113cb5cfd002586a9d4 data/create/loot_tables/blocks/granite_cobblestone.json -3495c41fbb9f93c957c957d03b220a2537680538 data/create/loot_tables/blocks/granite_cobblestone_slab.json +1889a94c41a2d6bcc24cc7b9546a2d75bd297fbd data/create/loot_tables/blocks/granite_cobblestone_slab.json feca8a1f62e0e13fcb2252d5f782d74938b84431 data/create/loot_tables/blocks/granite_cobblestone_stairs.json 1d225a68b09d6f389aa7ed48aa05979bdaa482a9 data/create/loot_tables/blocks/granite_cobblestone_wall.json 87a4ac3db5ec80613b940abccc72fc4b37cee0ba data/create/loot_tables/blocks/granite_pillar.json @@ -2342,11 +2342,11 @@ cae6d16c8967164698efbce3b91018a8e79a81e9 data/create/loot_tables/blocks/lime_val 7dfd638cc6f0d22bbc8fcbdb7212a3bfc8c85223 data/create/loot_tables/blocks/limesand.json 9d585f677a32a2336df5f17b5b389cdee867939f data/create/loot_tables/blocks/limestone.json 57134f7d3d32fc1c48f2a20c4be84388587092bc data/create/loot_tables/blocks/limestone_bricks.json -1b59a36aa1a889c42d4b8b939f5eeee2967222d0 data/create/loot_tables/blocks/limestone_bricks_slab.json +cb315814960850b5080598b89ee94c833b5048f7 data/create/loot_tables/blocks/limestone_bricks_slab.json 41ed1d0750e8ddd7e7e75fd7e4cafde6346d1afe data/create/loot_tables/blocks/limestone_bricks_stairs.json 0b8b29ef8b5da9527fb56e676de210f7f5b4c1b4 data/create/loot_tables/blocks/limestone_bricks_wall.json 9fa612159a498b2475489f984ce4fee18f971568 data/create/loot_tables/blocks/limestone_cobblestone.json -ebb8f7a60d6d9debc53a1f16749d61b980dd1d18 data/create/loot_tables/blocks/limestone_cobblestone_slab.json +837129095bd84142e00c18ed03be39ad178627a9 data/create/loot_tables/blocks/limestone_cobblestone_slab.json 8db1e3f0dac48b91a4839206a7d5a88cef415fdc data/create/loot_tables/blocks/limestone_cobblestone_stairs.json 92fb16606f289ad33860270d098fad2522b24e09 data/create/loot_tables/blocks/limestone_cobblestone_wall.json 371115e5ceb08c07a9ab2371509960c31e0baa8a data/create/loot_tables/blocks/limestone_pillar.json @@ -2399,39 +2399,39 @@ bab9f6fb35f2ba4aa45fd726a8e94f90ef155bfb data/create/loot_tables/blocks/overgrow e0fc59a8645dae8f87e62b34c08014077e14de66 data/create/loot_tables/blocks/overgrown_scoria.json 8af10a6b2d07ed1b84ce617502ad68044262e701 data/create/loot_tables/blocks/overgrown_weathered_limestone.json fc529ec8d55abf361ba1b8c38875839530b082c6 data/create/loot_tables/blocks/paved_andesite.json -d2b507115f64319f26785ce909eb0141a9f9d6d7 data/create/loot_tables/blocks/paved_andesite_slab.json +3658337cb8a5a6cdd7dd19dd8ac399b1397350d5 data/create/loot_tables/blocks/paved_andesite_slab.json 4dbc7c7537e680e4e7c8a5ba4e4ed394d788b10d data/create/loot_tables/blocks/paved_andesite_stairs.json 550795c90bce7ee25d12611ac04333dc2f04c727 data/create/loot_tables/blocks/paved_andesite_wall.json 6e2abd4ccd9f1835237a074ee897306049faeeaf data/create/loot_tables/blocks/paved_dark_scoria.json -d9642c4ef3e7efa3479627e9ee0ddda93baeeaec data/create/loot_tables/blocks/paved_dark_scoria_slab.json +d1f6830634cc426761a998bbc13d12be23b35fbc data/create/loot_tables/blocks/paved_dark_scoria_slab.json c6b0ff8dc016dd42b22c408c3419f6711f1b3080 data/create/loot_tables/blocks/paved_dark_scoria_stairs.json 974783eeb365799e9a506d304ef2933695f28fd4 data/create/loot_tables/blocks/paved_dark_scoria_wall.json ffbf1aa8e79c473a3c9e23b1b5b47b5b5028d3d1 data/create/loot_tables/blocks/paved_diorite.json -077ec4b8e967de13f467dd5577c299353cf0c8b5 data/create/loot_tables/blocks/paved_diorite_slab.json +f5ef960992b47a951a711fa106c48f7b8a5b96d4 data/create/loot_tables/blocks/paved_diorite_slab.json bb07e230483cf3bee30b9d9f6eb4976dabac02d7 data/create/loot_tables/blocks/paved_diorite_stairs.json a32cc9641d0a5ddc1d0e3203c8b5f889f8c8dfc4 data/create/loot_tables/blocks/paved_diorite_wall.json 3ba353c436a3ff7af9174f103453fb5828c09294 data/create/loot_tables/blocks/paved_dolomite.json -df5ef5fa0ae95765435f518cedc63df27df03c60 data/create/loot_tables/blocks/paved_dolomite_slab.json +cd25811c174f143b06a37175bfbdd768a2831204 data/create/loot_tables/blocks/paved_dolomite_slab.json 4ae91089463b12b3cd83504b9479f8bf12131523 data/create/loot_tables/blocks/paved_dolomite_stairs.json 54f2b73b5bc1cdfb9967cc8739fdb5964e0823b3 data/create/loot_tables/blocks/paved_dolomite_wall.json 22845a058f1ce2e998bbb9934bd042b3bd6e6b81 data/create/loot_tables/blocks/paved_gabbro.json -c61e86f4f82340072b63a2eccf1e944f85990d94 data/create/loot_tables/blocks/paved_gabbro_slab.json +592b138171f9a54fa7208269503c9cf42d82b3e1 data/create/loot_tables/blocks/paved_gabbro_slab.json 9bf714ac05d6ab5d2eb64af9b42333180eac3483 data/create/loot_tables/blocks/paved_gabbro_stairs.json 49faaf2df21b468bb033fafc406753c2303e3410 data/create/loot_tables/blocks/paved_gabbro_wall.json 6ce5f4468d05e4458a38ec916b42e45cf1478ae6 data/create/loot_tables/blocks/paved_granite.json -1c656ae7dc434094419b3f906acacfbfdd3716f0 data/create/loot_tables/blocks/paved_granite_slab.json +dcad2650b29ef4ebda66a4c8f3af25e8e634e56a data/create/loot_tables/blocks/paved_granite_slab.json 598924af51d35e3a1115896c161a31a72d5f0905 data/create/loot_tables/blocks/paved_granite_stairs.json 8c4a5acdf69eb5d1fa50453592f07dc28e4da813 data/create/loot_tables/blocks/paved_granite_wall.json 32a8d96e95cb0b784656b36078905c72ad51ee70 data/create/loot_tables/blocks/paved_limestone.json -e44f9e93023232a240905a2ca4ef0ec71b9ec35a data/create/loot_tables/blocks/paved_limestone_slab.json +d59bf5bece914869ce3277090ce199881a812bfc data/create/loot_tables/blocks/paved_limestone_slab.json a16ba0798803221478012d37db8555bb36e0a9ac data/create/loot_tables/blocks/paved_limestone_stairs.json fde4316b1469c689370264fcdca37ac4929906c4 data/create/loot_tables/blocks/paved_limestone_wall.json 6d832782d9e73ff9f94920aaa0335d7e86aa65e9 data/create/loot_tables/blocks/paved_scoria.json -eb87b6c339efa712dec346f84189e0a519f3bfa9 data/create/loot_tables/blocks/paved_scoria_slab.json +a0777a7b1d9a25f25d65d8093948c890fed4baec data/create/loot_tables/blocks/paved_scoria_slab.json 3a72097f8e8ff3df80c540f5e8b54435e319c479 data/create/loot_tables/blocks/paved_scoria_stairs.json 7b717c3176a2a55d728f2102c6f9d82cc6305fb2 data/create/loot_tables/blocks/paved_scoria_wall.json dfeba5c6de20e9ec0252e43b7c4046f017284d3d data/create/loot_tables/blocks/paved_weathered_limestone.json -09789862582b5409cd446f734cd53b6f807342cf data/create/loot_tables/blocks/paved_weathered_limestone_slab.json +32eed137f13c25a7b9db2fb457901e0c03cabb16 data/create/loot_tables/blocks/paved_weathered_limestone_slab.json 67b9227237ed2a8c09c4183c0f2ab1b3bd07084b data/create/loot_tables/blocks/paved_weathered_limestone_stairs.json d3e4ab984aef19ee21a1c5b868eb3fde96c05afd data/create/loot_tables/blocks/paved_weathered_limestone_wall.json 28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/pink_sail.json @@ -2439,27 +2439,27 @@ d3e4ab984aef19ee21a1c5b868eb3fde96c05afd data/create/loot_tables/blocks/paved_we d85b09659f08a73513c57b1b2e5ec7fc4b6f340a data/create/loot_tables/blocks/pink_valve_handle.json 1087b6c6d88dc7c71ed81e1d3e180fe065e6d098 data/create/loot_tables/blocks/piston_extension_pole.json 05302657546d8d410e367e84d4d5e01f01523236 data/create/loot_tables/blocks/polished_dark_scoria.json -d3e0339ae3f25eca37279dc22676e07c1d80a9bb data/create/loot_tables/blocks/polished_dark_scoria_slab.json +1b323a883816428ff851462f61d00eaee7255e33 data/create/loot_tables/blocks/polished_dark_scoria_slab.json a105d9992122370d80d190fcabcadcf167f71bd3 data/create/loot_tables/blocks/polished_dark_scoria_stairs.json 3298bdd51f488399459e9be88610296c8fdbf880 data/create/loot_tables/blocks/polished_dark_scoria_wall.json 9faa9435b97de565947686a8d5ecb29fff5aca8c data/create/loot_tables/blocks/polished_dolomite.json -7bb70c7613df2accfbe81164a3c73fb5d27bf0fb data/create/loot_tables/blocks/polished_dolomite_slab.json +5d85866fab9c553dd387b2c147d2b8c5f4617c11 data/create/loot_tables/blocks/polished_dolomite_slab.json 25d03f9ad84709dc86ef660b78384c5e6b4a566c data/create/loot_tables/blocks/polished_dolomite_stairs.json 73b2aae50efbef2f69177dfdb55a4fe60c377f71 data/create/loot_tables/blocks/polished_dolomite_wall.json 3963878203d8383de9190ea08bafb85a83f7c6bb data/create/loot_tables/blocks/polished_gabbro.json -bb41b7dd97fe6114ca45319868d98d75bb3d824e data/create/loot_tables/blocks/polished_gabbro_slab.json +1af13e327c6ef6de64d9e220ef8c8960774170d0 data/create/loot_tables/blocks/polished_gabbro_slab.json d7af796369513af346c7325866433f7e0fea0ab7 data/create/loot_tables/blocks/polished_gabbro_stairs.json f54e5452a659d452e936424f35e4fdf7b2817843 data/create/loot_tables/blocks/polished_gabbro_wall.json 9f9c0531d0a6fd6041a24390126531c8d8fd5b2e data/create/loot_tables/blocks/polished_limestone.json -6b5343b5f1b59ca30dc9cff6f40b6d0fc37f0057 data/create/loot_tables/blocks/polished_limestone_slab.json +cd507b7b5990ec15793c187105359c4b37205757 data/create/loot_tables/blocks/polished_limestone_slab.json ddad935d589d85c2b2c4666caf4215771fb7dfbc data/create/loot_tables/blocks/polished_limestone_stairs.json 142148b74e61ae778f45465fc1df0aaae59e8fef data/create/loot_tables/blocks/polished_limestone_wall.json 51cbf4f5df6382161121f8b3b773d04cea36636b data/create/loot_tables/blocks/polished_scoria.json -9fd9b4a384ea06b3f8522b8397a5e1a997a0a6ca data/create/loot_tables/blocks/polished_scoria_slab.json +27745995383c4e4d67acd9a55666f3c89a168b5d data/create/loot_tables/blocks/polished_scoria_slab.json 125e1fa323de8b565e17b1eedf1ca779bb2fddf7 data/create/loot_tables/blocks/polished_scoria_stairs.json c7029af40b6f5dd2cd8f2ae7dfb89b37074624e6 data/create/loot_tables/blocks/polished_scoria_wall.json 6da8efd3289ceeb187f7037397329dcece287683 data/create/loot_tables/blocks/polished_weathered_limestone.json -93f7be402a8088d33a94954572e111bcd71f11c8 data/create/loot_tables/blocks/polished_weathered_limestone_slab.json +812be8e20c86013b9336939ecd78a9579ef75a1a data/create/loot_tables/blocks/polished_weathered_limestone_slab.json 6ef650c723d409c7a678ffac45212e22e37581c0 data/create/loot_tables/blocks/polished_weathered_limestone_stairs.json 58715bc033e4740dbb754f91c93a22b9d06828e6 data/create/loot_tables/blocks/polished_weathered_limestone_wall.json fbe98efcb1a5970b6795fdbbb671fee704c0945f data/create/loot_tables/blocks/portable_storage_interface.json @@ -2486,11 +2486,11 @@ aa6af37356d65105efab2503ffe75f778cfe873b data/create/loot_tables/blocks/rotation c4a89145334addfd0dd1fedf7fa75ba07a7d3490 data/create/loot_tables/blocks/schematicannon.json af1bbbb8236b4ab05a6a8edc6db960bc758cbdf3 data/create/loot_tables/blocks/scoria.json bb670ac5dd2fa4c743bc268cd0547926eb6cdb68 data/create/loot_tables/blocks/scoria_bricks.json -a7217ea301a282d0ef52f2d8c06dd8683398408d data/create/loot_tables/blocks/scoria_bricks_slab.json +93c5165b6d1655f99eb45d708080ae54b1a3a118 data/create/loot_tables/blocks/scoria_bricks_slab.json 58a188f3ebfeb3d19323c3f8dfa3e020a7f6cdc4 data/create/loot_tables/blocks/scoria_bricks_stairs.json 81dae28911c6ff8d8330a597fc1e4eab1e77942d data/create/loot_tables/blocks/scoria_bricks_wall.json c55969dc0f736f770e3c27d9f2609d20d379fed1 data/create/loot_tables/blocks/scoria_cobblestone.json -4e9284ff133bc53ef5a55788c2e80079bb3c6817 data/create/loot_tables/blocks/scoria_cobblestone_slab.json +18637fc6cd83ed43fed0cda3a9538ca77f3c96e1 data/create/loot_tables/blocks/scoria_cobblestone_slab.json 3205ea5dd97df68f733f54aa3ab3f98a5ce20942 data/create/loot_tables/blocks/scoria_cobblestone_stairs.json d2139e9daa55c09cd262b15c980d65c554347e45 data/create/loot_tables/blocks/scoria_cobblestone_wall.json 82fb40738f53892571ad83789ff45315e887c811 data/create/loot_tables/blocks/scoria_pillar.json @@ -2514,11 +2514,11 @@ d0156602dd5f4a274c293df67e19374820c72890 data/create/loot_tables/blocks/vertical 2883c63ceb1273009dbf91cb0693756cadf79a1a data/create/loot_tables/blocks/water_wheel.json 611d6195db52c074de484ec52d7ac9eb96b4ff10 data/create/loot_tables/blocks/weathered_limestone.json c1f379baad36a20fc767be094db10480a0378184 data/create/loot_tables/blocks/weathered_limestone_bricks.json -43be7e49b9a8a75077066aa824a0f784aa741683 data/create/loot_tables/blocks/weathered_limestone_bricks_slab.json +d9ab81fb9e2bb348e5bcc0ef2c2adf767493da4d data/create/loot_tables/blocks/weathered_limestone_bricks_slab.json c2a62f12680d04ed4f586c501bb026e367243dd2 data/create/loot_tables/blocks/weathered_limestone_bricks_stairs.json 1b1016be0cc0bdf599f3e6b84c6663436e8d5835 data/create/loot_tables/blocks/weathered_limestone_bricks_wall.json 2500dc22c1f8793053d223958a5763a0f9554874 data/create/loot_tables/blocks/weathered_limestone_cobblestone.json -8b5e676938d5b356054d336e1716944178d35a42 data/create/loot_tables/blocks/weathered_limestone_cobblestone_slab.json +8e3f79fe8a06b1b55f347d80f028e040c85c19ab data/create/loot_tables/blocks/weathered_limestone_cobblestone_slab.json a89f425c47c3831071b556697169a3124370aed7 data/create/loot_tables/blocks/weathered_limestone_cobblestone_stairs.json e8f3af61d9a2fd1ff5b32c9bb474ed005e6d70c4 data/create/loot_tables/blocks/weathered_limestone_cobblestone_wall.json 54358a64639957cc66ffa5296ff45723f7adf00e data/create/loot_tables/blocks/weathered_limestone_pillar.json @@ -2566,7 +2566,7 @@ d9021504be855cd2d4d91503a82b84233052adb0 data/create/recipes/blasting/gold_ingot c323b106e88b7de77fea71ff12494abdbb818d15 data/create/recipes/chiseled_limestone_from_limestone_stonecutting.json da9a919b476954c1de34826aa7706bf6056a8f12 data/create/recipes/chiseled_scoria_from_scoria_stonecutting.json 09faa4ddcf9f3907dcdb3ab3e8b68c1deb2486e5 data/create/recipes/chiseled_weathered_limestone_from_weathered_limestone_stonecutting.json -eec156ec99d323dbc187f07e67d4449934c3e3e1 data/create/recipes/compacting/blaze_cake.json +370a536cc75b58cb0a07552665297669a763747a data/create/recipes/compacting/blaze_cake.json 19526da3a59fc136654ff1bc93c0251581f397a9 data/create/recipes/crafting/appliances/dough.json 7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json b159ba84428eee6ef6e23df1766f2a18f2c8a63e data/create/recipes/crafting/appliances/tree_fertilizer.json @@ -2744,43 +2744,43 @@ fe95f8f5f15edb0a5ff8da5a4757c9f8910b51bd data/create/recipes/crafting/palettes/d 1a810338ea15ab5ac2f37e87579c56f72b2b371b data/create/recipes/crafting/schematics/schematicannon.json 3da7a3cdb84f44e259b5399a94ddfbf94ebebd37 data/create/recipes/crushing/blaze_rod.json 5878767e89be5a522b8f28d6a2d7b2f8566cf0dd data/create/recipes/crushing/brass_block.json -b83ef0af844ca068e0353330b8273bace5b6a8c3 data/create/recipes/crushing/coal_ore.json +b21b77e313728add68ed7daeb6bda1d12c06fc90 data/create/recipes/crushing/coal_ore.json da4ed79975391ec9f263869936b84474f1f727d3 data/create/recipes/crushing/copper_block.json -d49472887067c871943de1b80887b169682eeca9 data/create/recipes/crushing/copper_ore.json -4c482db5575b74b4111800602d7fce22b2e6d32a data/create/recipes/crushing/diamond_horse_armor.json -e1bb927c62c59f5bf5063bd110da9231de378a1f data/create/recipes/crushing/emerald_ore.json -b26b1f0dccf2ffb194ce12173890a83e93369b39 data/create/recipes/crushing/glowstone.json -50e75cdde6996c47b5dc25f27b84367040249107 data/create/recipes/crushing/gold_ore.json +2962c8c1cb899591a474ee675d8ee699de265f15 data/create/recipes/crushing/copper_ore.json +0c96aa34d8dbf5fdc122361b6f2b090db94dc886 data/create/recipes/crushing/diamond_horse_armor.json +47a6eacac7ea031fd65b6ee9d2a9163a0099af6b data/create/recipes/crushing/emerald_ore.json +5e3bd12462c94835f2707a683e68a9731fd7225d data/create/recipes/crushing/glowstone.json +9984f8c4279540cd930331a9606ed9ae92a19b9a data/create/recipes/crushing/gold_ore.json 55c0656723bd5a87089965651fe268b2d2956771 data/create/recipes/crushing/golden_horse_armor.json -7ce0637578ab3198de54ac74111b6d458eaf08bd data/create/recipes/crushing/gravel.json -a7c97582bae243ab04ff5ff9914b24af25d40d59 data/create/recipes/crushing/iron_horse_armor.json -15d2e42423fd9fbf37864de4a6dffc2f53a307a9 data/create/recipes/crushing/iron_ore.json -5be5d90f862da95d9fd15663b71bff126fd04441 data/create/recipes/crushing/lapis_ore.json +49e96d7d2ff8e61f9d92dc9ccd92993fed839c7b data/create/recipes/crushing/gravel.json +060bb54f70c6551af1266aac99befe97ca7d6504 data/create/recipes/crushing/iron_horse_armor.json +bcd7e6c6c0ca248a034023bf8ab33bd461e2db17 data/create/recipes/crushing/iron_ore.json +21566e25e5d06bdb2634acc422457e63e458d041 data/create/recipes/crushing/lapis_ore.json e870d049abc5cd5f389f70414c67e76ddc14060d data/create/recipes/crushing/leather_horse_armor.json -2bc66f89a751a440c93de5f1d28d54f9b5a0da77 data/create/recipes/crushing/nether_quartz_ore.json +d73a0ed13112e001dad61d6ea66fd729c86e7b62 data/create/recipes/crushing/nether_quartz_ore.json 2b9b8e1ab81f47c4f7fb79a007aef214af12a342 data/create/recipes/crushing/nether_wart_block_no_quark.json 70116a5a9d1f93ae377e1526ca99582190cf2e3e data/create/recipes/crushing/nether_wart_block_quark.json -8003e7db3ee11066b365c251f04f84028820de94 data/create/recipes/crushing/netherrack.json -dd4b9e88a723f6c3f2456f36ef2354cd86d85433 data/create/recipes/crushing/obsidian.json -88d7ab3d6407010876e328f5f20a4ed9ddda7e3e data/create/recipes/crushing/prismarine_crystals.json -03874de476273de5aab8758f23d1ae638847843b data/create/recipes/crushing/redstone_ore.json -2f48a98a44f01a014d4dd59030dc38afa234f3fc data/create/recipes/crushing/sand.json -b6b97f139ee0a06a4ec1ed9f43e1f845b3c502d3 data/create/recipes/crushing/wool.json +0dfe5092af96fbaeddaace6d3b1c45fa6f4cf7fe data/create/recipes/crushing/netherrack.json +71397f0ae2e175181195b8b2894d108e0cdc3da7 data/create/recipes/crushing/obsidian.json +0185e8d17cc17b0ac822169f4b2968d95468b4a2 data/create/recipes/crushing/prismarine_crystals.json +42299b3a0596c7743404496205854ac2324aedd7 data/create/recipes/crushing/redstone_ore.json +94589aa3171fcfda8eed76000d53a36ea6fd7e53 data/create/recipes/crushing/sand.json +dc4cf8b759f5eeee0ccfa6aaad204fbeea487b7f data/create/recipes/crushing/wool.json 967bea8eabac8fab8de547ddd6670230f400c111 data/create/recipes/crushing/zinc_block.json -e4683ed7e28fbf502ca176513c43ee719a016d13 data/create/recipes/crushing/zinc_ore.json -86b1e391fe567ad1ca9f27c963e16c2f6e6b3bc9 data/create/recipes/cutting/acacia_log.json -3601e7100d6de215a524a12c641b5111c95d314c data/create/recipes/cutting/acacia_wood.json +fec666f3d9d40214411b3e13df957c430f748b38 data/create/recipes/crushing/zinc_ore.json +a6fcae05c9483516c0b05553dc9dc58aa24bcb3d data/create/recipes/cutting/acacia_log.json +dc45636779c05e3be6b9ab6348618c5bf4b6a935 data/create/recipes/cutting/acacia_wood.json 68687da80b9dc7ea69729b0e16d3e75efed8679a data/create/recipes/cutting/andesite_alloy.json -08e2da1149421b9edffdd227f40f6023d7e8ff0e data/create/recipes/cutting/birch_log.json -f3e6a435ccdfac3da0482e0eee825f75485370dd data/create/recipes/cutting/birch_wood.json -8d71bb2524538a0d8fd044427cf7134bc2b31d8b data/create/recipes/cutting/dark_oak_log.json -bb4c6b1ef57e5aceeaf8c1840e880e671788256f data/create/recipes/cutting/dark_oak_wood.json -f0eb32c6d9f7a5a78f08ee6ac3b97f70747c89f9 data/create/recipes/cutting/jungle_log.json -f218210af2282903968f84df77b16cac7a9d244e data/create/recipes/cutting/jungle_wood.json -fd565e84aff897968be805c03623757c11ea57ed data/create/recipes/cutting/oak_log.json -2bf4234c994073addb7341fa1ef8b721572dde37 data/create/recipes/cutting/oak_wood.json -2cd588872f6bbf63686a92a12735aa65d1960fe3 data/create/recipes/cutting/spruce_log.json -5ae29d81388c3d0d7966e703b6e9463ea58221ef data/create/recipes/cutting/spruce_wood.json +96128e5538ce36172271aeb5f13b9a96b23622e8 data/create/recipes/cutting/birch_log.json +3314272b66d99d64c6454a798d58a87cd7ce18bb data/create/recipes/cutting/birch_wood.json +a0c8189a002a80e3d68ed658b9adf69e98609458 data/create/recipes/cutting/dark_oak_log.json +f5ed40088993dd5ef09db74d154d02db0fefe772 data/create/recipes/cutting/dark_oak_wood.json +a695868ac8943924bcd375089995f909ef95d0a8 data/create/recipes/cutting/jungle_log.json +8de2bec42f36c8ed87b9eac957b09eb302f84b63 data/create/recipes/cutting/jungle_wood.json +7946211bb119a9ccdc192c72d57f7d732e9cac13 data/create/recipes/cutting/oak_log.json +f39da018c21b0b99b41cd25ecbadc75ee9d552c7 data/create/recipes/cutting/oak_wood.json +6abbe6463bb4da2fff1cabaefa92e043fdefdf88 data/create/recipes/cutting/spruce_log.json +cb5343fdcab4ab27335deef2988db7dc0c9ff7f2 data/create/recipes/cutting/spruce_wood.json 9f14b915695407155fdf806b1e5ecf91e0860c5b data/create/recipes/cutting/stripped_acacia_log.json c7f0e3b7a46676ede1ed775ec8aa8b969e1fe598 data/create/recipes/cutting/stripped_acacia_wood.json 4c657d8ff753789853c8d705fb5ae01caeef5cc1 data/create/recipes/cutting/stripped_birch_log.json @@ -2976,58 +2976,58 @@ e491fd8a8873308270f9dc2a57ac8f2c70431dcc data/create/recipes/mechanical_crafting ce17f8ab6e051f45a12e55f1642ad1b8a0f8510f data/create/recipes/mechanical_crafting/integrated_circuit.json fc380bc241f3233700e91fe2947e1a5d6c70e7db data/create/recipes/mechanical_crafting/mechanical_arm.json 23bd72789e7be894c4ee8927a171c721afcc2084 data/create/recipes/mechanical_crafting/nixie_tube.json -98f877bf8f3f8a686fc6cf7479a0fba5744248ce data/create/recipes/milling/allium.json -bcff4d30ae09a0729bce8b2dbde4ddd6719a998b data/create/recipes/milling/andesite.json +9d637c3c552840bd79ccfac57b1508e21146de49 data/create/recipes/milling/allium.json +7823440a3707ab2ea41d8dae214b11364a53e290 data/create/recipes/milling/andesite.json ac3f1c92115a113a1ea7e5543c1e061e3d2a0b36 data/create/recipes/milling/azure_bluet.json -95d673bb272d273c2ad25bf01723dd978642faed data/create/recipes/milling/blue_orchid.json -25d008621c461a1f6fef0e45913dc8654c645ea3 data/create/recipes/milling/bone.json -8c09dc48b3e3c3c6bfdc4ed7683bdee860802172 data/create/recipes/milling/bone_meal.json -c152f6ae0c5bdcd4eaf3e714864a318f462b64a0 data/create/recipes/milling/cactus.json -b8eff5bcc773a7ce75146423e5997ee24f69a92c data/create/recipes/milling/charcoal.json -e34c20506e9054da0e3b22fb27a093222eeb9a9c data/create/recipes/milling/clay.json -ccce7e6d1ab703d6567046b9c99c254e8baa88f7 data/create/recipes/milling/coal.json -851e4f3b84f431003264bc902a3351b6d769c897 data/create/recipes/milling/cobblestone.json -929d5c69bfd4eefc33766954e1ed7cbc284180b6 data/create/recipes/milling/cocoa_beans.json -08f453ce32e4ea28e4ca3ac3e446fa8019e2bc58 data/create/recipes/milling/copper_ore.json +3f38c1025e0a1553e756fc494b03a39cff2a6b81 data/create/recipes/milling/blue_orchid.json +9386c7e1f9d69826965402af8cc7609d8285f0c8 data/create/recipes/milling/bone.json +72676ef5267d005b52b6d138cf68b5428da25b85 data/create/recipes/milling/bone_meal.json +1209f70f8f09af5a4cce67eb8e090c63981d675e data/create/recipes/milling/cactus.json +335f32092c32238daec5ab5914836e1a50baed36 data/create/recipes/milling/charcoal.json +b9b8d7a0ed2121ac4202b1cd23fc9a18da9f89fa data/create/recipes/milling/clay.json +915d00bb4518e9dd5bb35f5ccc41a974548f5e6a data/create/recipes/milling/coal.json +f585d39316e016a559b72e53770ff7ff9375e292 data/create/recipes/milling/cobblestone.json +d6d024c8fccd18a47a1b22962a20877d8f74dc94 data/create/recipes/milling/cocoa_beans.json +6e9e700b353471e9d5d4bf3ab2ae504c54f84cf7 data/create/recipes/milling/copper_ore.json 31da5a1a6cc6f6cf90bf091d968d8b6f8555b292 data/create/recipes/milling/cornflower.json -623c1a134f8ce6b7d52476b6da8e8d210dba7bb1 data/create/recipes/milling/dandelion.json -62652b87e4f6435be9900afd4725e7a5782bc9d1 data/create/recipes/milling/diorite.json -28bad3c34cf0f5e20c48486c15130f6c552a93ec data/create/recipes/milling/fern.json -639469b734d0fed1583e963b461b01cbf04ec417 data/create/recipes/milling/gold_ore.json -51d692a94c69e10e3b77542f9cd98500104d5a42 data/create/recipes/milling/granite.json -6f9d6891b2bc2e6f1dc24a7802f9a0f7982e9d20 data/create/recipes/milling/grass.json -407a82fb6ca49d8e6159b0e900f856021b1dd771 data/create/recipes/milling/gravel.json -7932570ab897c0afe71ca368372f7628cb2c9b31 data/create/recipes/milling/ink_sac.json -ad9857c18bbeaf838f389bbc69e2d33418245285 data/create/recipes/milling/iron_ore.json -b2e80b5752eec591f4110f6a5fc5e052aeecab78 data/create/recipes/milling/lapis_lazuli.json -1720439fd1c8eb808d1a1d29510b71860afbdec2 data/create/recipes/milling/large_fern.json -3c8a3b3d8c91e107c2ff64b2115f5cf94197fc91 data/create/recipes/milling/lilac.json -f2a7518eeef43052785dff6c3bf305c8c74c4789 data/create/recipes/milling/lily_of_the_valley.json -5ba9cd55d4a551350b64ecbbff6bfd32e130c00c data/create/recipes/milling/orange_tulip.json -e5f121e244cd0afa2fe3d76a1e15ca9974bee96b data/create/recipes/milling/oxeye_daisy.json -077edce210beb2cbe5e37062b0518be473784dc7 data/create/recipes/milling/peony.json -00c67bfbfc780b0d0343c9d31fda9f477341bc88 data/create/recipes/milling/pink_tulip.json -47fabce9ae3fbc2cc888697b11e6d48748631ef5 data/create/recipes/milling/poppy.json -ea6fb7e30fa22cd87ff4760288e11f909b78ac86 data/create/recipes/milling/red_tulip.json +d8f48766699d10fe948f993c44e5f290354e6a03 data/create/recipes/milling/dandelion.json +4e486a45118b45d01a1aa277b56e05f600ae7524 data/create/recipes/milling/diorite.json +d6cb91af193f88f0861813094cd4dc2d9111b304 data/create/recipes/milling/fern.json +e4533cf74cf1a9422ecb50820dd9a393a7f327b8 data/create/recipes/milling/gold_ore.json +5b31ee99e30e920162e8fdabc4608ca828bf992d data/create/recipes/milling/granite.json +5fa9947eb9c423c19d824ab83700ced4fc80f7a3 data/create/recipes/milling/grass.json +d39af13f1110fbf80ac6d4ed6770153153e647b9 data/create/recipes/milling/gravel.json +fcac9030cdc13052d8cd006d27cf420fc2879375 data/create/recipes/milling/ink_sac.json +33aea07b98a40a5e122b407252cc1a85d7176626 data/create/recipes/milling/iron_ore.json +c6d91bc1b90d9baa022abf4eb15d3934a1dd298e data/create/recipes/milling/lapis_lazuli.json +121073a5d934ad220de8286185a398575ddbb5b1 data/create/recipes/milling/large_fern.json +83d11b3743864ecd59cdc1e6626a3118e5dc5cfc data/create/recipes/milling/lilac.json +efe625cb321255c3d7d2db626ff239722f774623 data/create/recipes/milling/lily_of_the_valley.json +e1218d6bf8f80461887de609f478b99facb1c5a2 data/create/recipes/milling/orange_tulip.json +b88646f1b4599b36920e0bff5829c372fddfa2b4 data/create/recipes/milling/oxeye_daisy.json +a600f9048060ef635fb84eea3facdb1918fbad73 data/create/recipes/milling/peony.json +e0be5c3c2d8bae1031de9291ee8434ef8f2608b0 data/create/recipes/milling/pink_tulip.json +e54acf873ebea2d97294ed8f609070e7395b463a data/create/recipes/milling/poppy.json +c8f76e426ff2d3df3c0ebe2f6c354ea5cfeb7b89 data/create/recipes/milling/red_tulip.json bda581c2039f41f7d55527814a46903f10da7e05 data/create/recipes/milling/rose_bush.json 54be62a1bf098a370d315f79068ec326e4f4d6c2 data/create/recipes/milling/saddle.json -8bc6124293f4efb5f2d0fa4a3166c6d00a88a14c data/create/recipes/milling/sand.json -1e14bd30032aab6dfaff5bca50c791332ffc1aaa data/create/recipes/milling/sugar_cane.json -af2beca9f934601ad029f34bad08be3cee07f6b4 data/create/recipes/milling/sunflower.json -949c7aa8f5172c07b0b5ea178d8046ffaac9f527 data/create/recipes/milling/tall_grass.json -542ffcedc9b1467ec41c6f4e162453e76fa1ead1 data/create/recipes/milling/terracotta.json -4f61f0efbd980407d4e0fa1067dd320f01496c6c data/create/recipes/milling/wheat.json -0a598bfc39ad473856887703d7971ba3a70339f8 data/create/recipes/milling/white_tulip.json -19a16516ce26afddef5604b118899a50671a9a9a data/create/recipes/milling/wither_rose.json -eec880075efd6008b604a4b8064d782752b4bad6 data/create/recipes/milling/wool.json -9f105242e06994f541236f669931a6bb983afadc data/create/recipes/milling/zinc_ore.json -b3cc5e61bab40ca6135dc1f706f3ab447e9f78bf data/create/recipes/mixing/andesite_alloy.json -ce9dc7dacb85cb23a7187c19a115b40e597ad36b data/create/recipes/mixing/andesite_alloy_from_zinc.json +90cc7b8a945fb019cddb8fbfea1564f46614d69a data/create/recipes/milling/sand.json +b44e771a42b0630cd01b31cf4b9cf337e3e21041 data/create/recipes/milling/sugar_cane.json +ec53cd589fb96d126cbd85f7540fbb685310355a data/create/recipes/milling/sunflower.json +11cf0d26f667ac8749818fa3a5accbdb726a6356 data/create/recipes/milling/tall_grass.json +79797c0658f5dce82ee50a612627f47df33ce09e data/create/recipes/milling/terracotta.json +06703af2619170b21a2acd89e755826ad4bb2e5b data/create/recipes/milling/wheat.json +3f4e1adbbbdc1327e2f83d648918b4959a8cff2e data/create/recipes/milling/white_tulip.json +ca72436410265c33b1d8a2d9b634767df73efa6e data/create/recipes/milling/wither_rose.json +0137a135731a41d1d33e0c264decb03ee1582c4f data/create/recipes/milling/wool.json +28f37178b75fc4d63c4495c721fe2f0f011756cf data/create/recipes/milling/zinc_ore.json +8975bb125e09b68cc539c7b368fd7c6853657fd6 data/create/recipes/mixing/andesite_alloy.json +e7bfaa806d57573d060fac0a5e7a84f345b8bb85 data/create/recipes/mixing/andesite_alloy_from_zinc.json 3417f9399ce0fb32fc4bce94c772b40d780c9006 data/create/recipes/mixing/brass_ingot.json -0e29b4ce13750aab5a60ae54cbec8776569b35e0 data/create/recipes/mixing/chromatic_compound.json +76939e4d3e5b615ae21d14c0ff7b917a622bcf80 data/create/recipes/mixing/chromatic_compound.json d9a3dff1288d675ab812eef1eb73cb27dcc71bd2 data/create/recipes/mixing/crushed_brass.json 00b165ea38d834c7955440e87062004a8182c3f8 data/create/recipes/mixing/gunpowder.json -3279bd1a34217a19bc9992a2ad87629390dd003f data/create/recipes/mixing/temp_cobble.json +cf2a741be46fd2069f242afe74eb7c11f3139c46 data/create/recipes/mixing/temp_cobble.json 3295a2195707f952a83deb3bed10b43570b215e5 data/create/recipes/mixing/temp_lava.json 1998c6f84f871d6da58ec29d729401d18f8f1aa1 data/create/recipes/mossy_andesite_from_andesite_stonecutting.json 89929d9cb11b5c589b2ecfa821c61add1ef7b62b data/create/recipes/mossy_dark_scoria_from_dark_scoria_stonecutting.json @@ -3162,13 +3162,13 @@ d51106184083761635fa902c09c45436c414ddab data/create/recipes/polished_weathered_ 9d4382462376e85c2627b8150b09acd3b063e347 data/create/recipes/polished_weathered_limestone_stairs_from_polished_weathered_limestone_stonecutting.json 7dd58714cf8fc4614ae2e1c2981471da3a52f06c data/create/recipes/polished_weathered_limestone_wall.json eae06580a0a5f486cde35426716d50fcb3ba5bb3 data/create/recipes/polished_weathered_limestone_wall_from_polished_weathered_limestone_stonecutting.json -9c8b3ec11152820acd5ee99971fd22c1484c8815 data/create/recipes/pressing/brass_ingot.json -4a51cb6066e87613c13bdc6d3427929080ef1def data/create/recipes/pressing/copper_ingot.json -0fa8386648398724f6fd373178b706c6b11ddefc data/create/recipes/pressing/gold_ingot.json -a104ef6eb8872a40ea7b2ef67ae54cec943162f0 data/create/recipes/pressing/iron_ingot.json -7f9e72ec02a9926656744a95066f8aa304514565 data/create/recipes/pressing/lapis_block.json -bd57ccc8eb4357b4a5af021db7b806b514cd2558 data/create/recipes/pressing/sugar_cane.json -141173778757d87e7f2e9466bdab6ff1263c8e98 data/create/recipes/sandpaper_polishing/rose_quartz.json +228d2002ec3da06f940d004b1f3c74fc33413fb6 data/create/recipes/pressing/brass_ingot.json +a07323c42c78815ebc756372a30bb8295abaf9a0 data/create/recipes/pressing/copper_ingot.json +b107b827c888a8349a937aebeed575b40e9cee9a data/create/recipes/pressing/gold_ingot.json +c2fd8639ed37034eabc821842d48385cb0918c3b data/create/recipes/pressing/iron_ingot.json +05b620a5cb6cf0a7ebe5e6183a061067fcccc191 data/create/recipes/pressing/lapis_block.json +91d12d892c2660f962b26b9dde020a5570c2c6e7 data/create/recipes/pressing/sugar_cane.json +9ebd1cc7dac1874c49a75e7709c3fea79853c087 data/create/recipes/sandpaper_polishing/rose_quartz.json d59c68621c78ff5d2c51be4440dea603480efed8 data/create/recipes/scoria_bricks_from_scoria_stonecutting.json a7a28cf77955c2b4ed3687205dd24162e461aa30 data/create/recipes/scoria_bricks_slab.json 0577ffde98e7a027b21c430cd71cdafdd3cee3a3 data/create/recipes/scoria_bricks_slab_from_scoria_bricks_stonecutting.json @@ -3206,38 +3206,38 @@ bf0e5df5a88e583e39a4e14b006cbf33b99611e1 data/create/recipes/smelting/limestone. a5d23be4cc959eb47d84b210190abaafcf41f022 data/create/recipes/smelting/zinc_ingot_from_crushed.json 2d8e448bbe841871c5d9a022149c5f34fd5c0df1 data/create/recipes/smelting/zinc_ingot_from_ore.json ce7c3c6e1da9d6684c9537d1a558423925d89f33 data/create/recipes/smoking/bread.json -6b1d2483fe717657f7188f6490eab2da715609e8 data/create/recipes/splashing/black_concrete_powder.json -1aedfde11712827604bbef34e992c411c0b02876 data/create/recipes/splashing/blue_concrete_powder.json -6e11d592dc9b19c4cd9bf2df2aa46b7ec4d9a331 data/create/recipes/splashing/brown_concrete_powder.json +60ee56b41a279124ff59724794c80da7e8cc81e4 data/create/recipes/splashing/black_concrete_powder.json +59ce20e3f4193a6e28cde2d46c008afe5d53c67f data/create/recipes/splashing/blue_concrete_powder.json +6d69b04151846675b5b9d1de3374f0168bcdc20b data/create/recipes/splashing/brown_concrete_powder.json c22dc50b7c8dea74dae9018506989fa14a340796 data/create/recipes/splashing/crushed_brass.json d43ec1edc4743dc5a3483c327dc010a12d81dbf5 data/create/recipes/splashing/crushed_copper_ore.json a1112c785f4571c0a9900288081eb216c729a17b data/create/recipes/splashing/crushed_gold_ore.json f3b03dd4532086a785d6bbc9de081ab8adf58146 data/create/recipes/splashing/crushed_iron_ore.json d2d6137fd7a3155263cfffef45f760b99f26f26b data/create/recipes/splashing/crushed_zinc_ore.json -42cee25fabf4f0f9fb4815a98134eaf38ae197d0 data/create/recipes/splashing/cyan_concrete_powder.json -c4d680eed98791fe45fa93aeeae9e8dbd508d6f5 data/create/recipes/splashing/gravel.json -7af4d9ae50af13da0d4fc814687f9586ff872798 data/create/recipes/splashing/gray_concrete_powder.json -23fb61c0e4bcca58fa7241db9cbef07bf4bd9a9b data/create/recipes/splashing/green_concrete_powder.json -0a15fffe26190b78d2177c8302c92fc2232ce398 data/create/recipes/splashing/ice.json -601e460575d3d1f45dca3e259f5a7c2701f45888 data/create/recipes/splashing/light_blue_concrete_powder.json -11792305bc949f08e7c1199ead8430f20848fa54 data/create/recipes/splashing/light_gray_concrete_powder.json -a43d7c9a6369a48ef7d1396f2c11dc1f3704a61e data/create/recipes/splashing/lime_concrete_powder.json -67d97de29a9075a7ba8edb6e47c997b02600557e data/create/recipes/splashing/limestone.json -862f7b68bb107d7c4ecc82ddd10c788eb0a07b03 data/create/recipes/splashing/magenta_concrete_powder.json -004e05fed3684de8603905d9c9381cbbd789a882 data/create/recipes/splashing/magma_block.json -625c2d68ad722209523925375bc4f7494667feb2 data/create/recipes/splashing/orange_concrete_powder.json -fb0c5fb2da0ac1fd236b19823747b9c15b536b02 data/create/recipes/splashing/pink_concrete_powder.json -2599fcd240eacdf4ace0dffe64f026d0bb4919d9 data/create/recipes/splashing/purple_concrete_powder.json -9c10bfdd047fb9ac17d51ebdd38bc8be0883d970 data/create/recipes/splashing/red_concrete_powder.json -87ddb764bcff88c12686d171540cea4cc6edaf16 data/create/recipes/splashing/red_sand.json -3a5dea804e0aec6fa8711eb07b006d8b1de098ff data/create/recipes/splashing/sand.json -cf0dcdb8ec3f3e75b315faa377eccef662dea71f data/create/recipes/splashing/soul_sand.json -ba660fe5786c95a359a6ddfdeb73d7109cbebe5d data/create/recipes/splashing/stained_glass.json -c7a51fd1b730d48991cf6b4f1b56da4144537f1d data/create/recipes/splashing/stained_glass_pane.json -39bd2780c1d3066e6b5b8d3b029f058f5ea63165 data/create/recipes/splashing/wheat_flour.json -24cedf74a5a118fa03c7e91a3fdaae3e41f6ec40 data/create/recipes/splashing/white_concrete_powder.json -4ad9a4699a6e28c4406ab2aa453bbe50fcb34abc data/create/recipes/splashing/wool.json -e2c1774577aeb0756fb1d092245d9d77e40ba5f8 data/create/recipes/splashing/yellow_concrete_powder.json +25796b0f832249cd3ffc8493daff534d783ec850 data/create/recipes/splashing/cyan_concrete_powder.json +0c0e987bb771868b34d04759f672cd4e1cd83c60 data/create/recipes/splashing/gravel.json +756857a8a3f931ba55056239664530849680b9a5 data/create/recipes/splashing/gray_concrete_powder.json +ab1a3e111e00ce7d6e6cf55a110eb843be040b17 data/create/recipes/splashing/green_concrete_powder.json +319c0423276eec8b5bdd2b3d7596b86eff113986 data/create/recipes/splashing/ice.json +fe3c9a2343a796c5e08e9d607b978563b9d9320a data/create/recipes/splashing/light_blue_concrete_powder.json +26f43d0f3d8381fd89c1d97b530aa56145bc5df5 data/create/recipes/splashing/light_gray_concrete_powder.json +11cd9b3d32db881c8ab435bb7f3fe0bf8233038b data/create/recipes/splashing/lime_concrete_powder.json +040e5de4d06e47c59a9cdbaf574ac51320201f2a data/create/recipes/splashing/limestone.json +b4a42622cd9363951984140e0afdb68e40efda3c data/create/recipes/splashing/magenta_concrete_powder.json +77a5ac46d93a6031d6c3827818d6e7baf11e155f data/create/recipes/splashing/magma_block.json +bd715561deaeac2afb11e5394679fc3b8b30eb7f data/create/recipes/splashing/orange_concrete_powder.json +dd7457da2124a93e8bdc4f68380378f945df12d9 data/create/recipes/splashing/pink_concrete_powder.json +f031372403ea35d5bc63b18a82ce84ff2d69f206 data/create/recipes/splashing/purple_concrete_powder.json +e7ff4602fd5444a2e3c8ddc20be9569d64e1746e data/create/recipes/splashing/red_concrete_powder.json +d0c652c4382e9213bb7d61380162a8d6c55d9d39 data/create/recipes/splashing/red_sand.json +43fe8ba65a79909e4b9ea985dea2861cba1e680b data/create/recipes/splashing/sand.json +e802591c68932b24f027c99281a51d8f13393bf8 data/create/recipes/splashing/soul_sand.json +4773a92dea2e3ba6cb529e097948d881b4d0988b data/create/recipes/splashing/stained_glass.json +1bc046f79c8e0660d11f7e6951b866cb74b9339b data/create/recipes/splashing/stained_glass_pane.json +a465629e286012f616ccf48305bbdd9e493b290a data/create/recipes/splashing/wheat_flour.json +8c995694c62035a84b6f993cf452811c577dc752 data/create/recipes/splashing/white_concrete_powder.json +53b0a123f52437842631ffdec05eebed8ba6c73a data/create/recipes/splashing/wool.json +224c91bcc2ff94054b62761f9fed3925d6b52cb7 data/create/recipes/splashing/yellow_concrete_powder.json 7a4e163767827fc8cef3646204c2f2bf0f8aac99 data/create/recipes/spruce_window.json 96d515ff0172dafa04d650ab69d68ed508e99e6f data/create/recipes/spruce_window_pane.json 1f689453146c7dd2d315e8b5fb5e7cdc0aaf0fa2 data/create/recipes/tiled_glass_from_glass_colorless_stonecutting.json @@ -3305,7 +3305,6 @@ fb9bfb4c84ed9cf2da8c4b2fbc4cd4d9f37d3016 data/forge/tags/items/plates/gold.json ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/items/storage_blocks/brass.json f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/items/storage_blocks/copper.json 7f71a774800111e50b42de0e6159ed2d2a807d32 data/forge/tags/items/storage_blocks/zinc.json -31424fe956db0354a9f24c61baf977a2961c8db6 data/minecraft/tags/blocks/impermeable.json 9dadc647e17b6262c13b6d8eda9139e30ce7e7d0 data/minecraft/tags/blocks/rails.json 29e6f7e3d4be9a9b0af1fca5d32fa55e29905ce2 data/minecraft/tags/blocks/slabs.json 0d188ad2c33d10ee8f0d455c4e63a4460a8302fb data/minecraft/tags/blocks/stairs.json diff --git a/src/generated/resources/assets/create/blockstates/andesite_belt_funnel.json b/src/generated/resources/assets/create/blockstates/andesite_belt_funnel.json index 369be6128..4bbd11c49 100644 --- a/src/generated/resources/assets/create/blockstates/andesite_belt_funnel.json +++ b/src/generated/resources/assets/create/blockstates/andesite_belt_funnel.json @@ -1,123 +1,123 @@ { "variants": { - "facing=north,powered=false,pushing=false,shape=retracted": { - "model": "create:block/andesite_belt_funnel_pull_retracted" + "facing=north,powered=false,shape=retracted": { + "model": "create:block/andesite_belt_funnel__retracted" }, - "facing=south,powered=false,pushing=false,shape=retracted": { - "model": "create:block/andesite_belt_funnel_pull_retracted", + "facing=south,powered=false,shape=retracted": { + "model": "create:block/andesite_belt_funnel__retracted", "y": 180 }, - "facing=west,powered=false,pushing=false,shape=retracted": { - "model": "create:block/andesite_belt_funnel_pull_retracted", + "facing=west,powered=false,shape=retracted": { + "model": "create:block/andesite_belt_funnel__retracted", "y": 270 }, - "facing=east,powered=false,pushing=false,shape=retracted": { - "model": "create:block/andesite_belt_funnel_pull_retracted", + "facing=east,powered=false,shape=retracted": { + "model": "create:block/andesite_belt_funnel__retracted", "y": 90 }, - "facing=north,powered=true,pushing=false,shape=retracted": { - "model": "create:block/andesite_belt_funnel_pull_powered_retracted" + "facing=north,powered=true,shape=retracted": { + "model": "create:block/andesite_belt_funnel__powered_retracted" }, - "facing=south,powered=true,pushing=false,shape=retracted": { - "model": "create:block/andesite_belt_funnel_pull_powered_retracted", + "facing=south,powered=true,shape=retracted": { + "model": "create:block/andesite_belt_funnel__powered_retracted", "y": 180 }, - "facing=west,powered=true,pushing=false,shape=retracted": { - "model": "create:block/andesite_belt_funnel_pull_powered_retracted", + "facing=west,powered=true,shape=retracted": { + "model": "create:block/andesite_belt_funnel__powered_retracted", "y": 270 }, - "facing=east,powered=true,pushing=false,shape=retracted": { - "model": "create:block/andesite_belt_funnel_pull_powered_retracted", + "facing=east,powered=true,shape=retracted": { + "model": "create:block/andesite_belt_funnel__powered_retracted", "y": 90 }, - "facing=north,powered=false,pushing=true,shape=retracted": { - "model": "create:block/andesite_belt_funnel_push_retracted" + "facing=north,powered=false,shape=extended": { + "model": "create:block/andesite_belt_funnel__extended" }, - "facing=south,powered=false,pushing=true,shape=retracted": { - "model": "create:block/andesite_belt_funnel_push_retracted", + "facing=south,powered=false,shape=extended": { + "model": "create:block/andesite_belt_funnel__extended", "y": 180 }, - "facing=west,powered=false,pushing=true,shape=retracted": { - "model": "create:block/andesite_belt_funnel_push_retracted", + "facing=west,powered=false,shape=extended": { + "model": "create:block/andesite_belt_funnel__extended", "y": 270 }, - "facing=east,powered=false,pushing=true,shape=retracted": { - "model": "create:block/andesite_belt_funnel_push_retracted", + "facing=east,powered=false,shape=extended": { + "model": "create:block/andesite_belt_funnel__extended", "y": 90 }, - "facing=north,powered=true,pushing=true,shape=retracted": { - "model": "create:block/andesite_belt_funnel_push_powered_retracted" + "facing=north,powered=true,shape=extended": { + "model": "create:block/andesite_belt_funnel__powered_extended" }, - "facing=south,powered=true,pushing=true,shape=retracted": { - "model": "create:block/andesite_belt_funnel_push_powered_retracted", + "facing=south,powered=true,shape=extended": { + "model": "create:block/andesite_belt_funnel__powered_extended", "y": 180 }, - "facing=west,powered=true,pushing=true,shape=retracted": { - "model": "create:block/andesite_belt_funnel_push_powered_retracted", + "facing=west,powered=true,shape=extended": { + "model": "create:block/andesite_belt_funnel__powered_extended", "y": 270 }, - "facing=east,powered=true,pushing=true,shape=retracted": { - "model": "create:block/andesite_belt_funnel_push_powered_retracted", + "facing=east,powered=true,shape=extended": { + "model": "create:block/andesite_belt_funnel__powered_extended", "y": 90 }, - "facing=north,powered=false,pushing=false,shape=extended": { - "model": "create:block/andesite_belt_funnel_pull_extended" + "facing=north,powered=false,shape=pushing": { + "model": "create:block/andesite_belt_funnel__pushing" }, - "facing=south,powered=false,pushing=false,shape=extended": { - "model": "create:block/andesite_belt_funnel_pull_extended", + "facing=south,powered=false,shape=pushing": { + "model": "create:block/andesite_belt_funnel__pushing", "y": 180 }, - "facing=west,powered=false,pushing=false,shape=extended": { - "model": "create:block/andesite_belt_funnel_pull_extended", + "facing=west,powered=false,shape=pushing": { + "model": "create:block/andesite_belt_funnel__pushing", "y": 270 }, - "facing=east,powered=false,pushing=false,shape=extended": { - "model": "create:block/andesite_belt_funnel_pull_extended", + "facing=east,powered=false,shape=pushing": { + "model": "create:block/andesite_belt_funnel__pushing", "y": 90 }, - "facing=north,powered=true,pushing=false,shape=extended": { - "model": "create:block/andesite_belt_funnel_pull_powered_extended" + "facing=north,powered=true,shape=pushing": { + "model": "create:block/andesite_belt_funnel__powered_pushing" }, - "facing=south,powered=true,pushing=false,shape=extended": { - "model": "create:block/andesite_belt_funnel_pull_powered_extended", + "facing=south,powered=true,shape=pushing": { + "model": "create:block/andesite_belt_funnel__powered_pushing", "y": 180 }, - "facing=west,powered=true,pushing=false,shape=extended": { - "model": "create:block/andesite_belt_funnel_pull_powered_extended", + "facing=west,powered=true,shape=pushing": { + "model": "create:block/andesite_belt_funnel__powered_pushing", "y": 270 }, - "facing=east,powered=true,pushing=false,shape=extended": { - "model": "create:block/andesite_belt_funnel_pull_powered_extended", + "facing=east,powered=true,shape=pushing": { + "model": "create:block/andesite_belt_funnel__powered_pushing", "y": 90 }, - "facing=north,powered=false,pushing=true,shape=extended": { - "model": "create:block/andesite_belt_funnel_push_extended" + "facing=north,powered=false,shape=pulling": { + "model": "create:block/andesite_belt_funnel__pulling" }, - "facing=south,powered=false,pushing=true,shape=extended": { - "model": "create:block/andesite_belt_funnel_push_extended", + "facing=south,powered=false,shape=pulling": { + "model": "create:block/andesite_belt_funnel__pulling", "y": 180 }, - "facing=west,powered=false,pushing=true,shape=extended": { - "model": "create:block/andesite_belt_funnel_push_extended", + "facing=west,powered=false,shape=pulling": { + "model": "create:block/andesite_belt_funnel__pulling", "y": 270 }, - "facing=east,powered=false,pushing=true,shape=extended": { - "model": "create:block/andesite_belt_funnel_push_extended", + "facing=east,powered=false,shape=pulling": { + "model": "create:block/andesite_belt_funnel__pulling", "y": 90 }, - "facing=north,powered=true,pushing=true,shape=extended": { - "model": "create:block/andesite_belt_funnel_push_powered_extended" + "facing=north,powered=true,shape=pulling": { + "model": "create:block/andesite_belt_funnel__powered_pulling" }, - "facing=south,powered=true,pushing=true,shape=extended": { - "model": "create:block/andesite_belt_funnel_push_powered_extended", + "facing=south,powered=true,shape=pulling": { + "model": "create:block/andesite_belt_funnel__powered_pulling", "y": 180 }, - "facing=west,powered=true,pushing=true,shape=extended": { - "model": "create:block/andesite_belt_funnel_push_powered_extended", + "facing=west,powered=true,shape=pulling": { + "model": "create:block/andesite_belt_funnel__powered_pulling", "y": 270 }, - "facing=east,powered=true,pushing=true,shape=extended": { - "model": "create:block/andesite_belt_funnel_push_powered_extended", + "facing=east,powered=true,shape=pulling": { + "model": "create:block/andesite_belt_funnel__powered_pulling", "y": 90 } } diff --git a/src/generated/resources/assets/create/blockstates/brass_belt_funnel.json b/src/generated/resources/assets/create/blockstates/brass_belt_funnel.json index 779a55e87..5f68caef4 100644 --- a/src/generated/resources/assets/create/blockstates/brass_belt_funnel.json +++ b/src/generated/resources/assets/create/blockstates/brass_belt_funnel.json @@ -1,123 +1,123 @@ { "variants": { - "facing=north,powered=false,pushing=false,shape=retracted": { - "model": "create:block/brass_belt_funnel_pull_retracted" + "facing=north,powered=false,shape=retracted": { + "model": "create:block/brass_belt_funnel__retracted" }, - "facing=south,powered=false,pushing=false,shape=retracted": { - "model": "create:block/brass_belt_funnel_pull_retracted", + "facing=south,powered=false,shape=retracted": { + "model": "create:block/brass_belt_funnel__retracted", "y": 180 }, - "facing=west,powered=false,pushing=false,shape=retracted": { - "model": "create:block/brass_belt_funnel_pull_retracted", + "facing=west,powered=false,shape=retracted": { + "model": "create:block/brass_belt_funnel__retracted", "y": 270 }, - "facing=east,powered=false,pushing=false,shape=retracted": { - "model": "create:block/brass_belt_funnel_pull_retracted", + "facing=east,powered=false,shape=retracted": { + "model": "create:block/brass_belt_funnel__retracted", "y": 90 }, - "facing=north,powered=true,pushing=false,shape=retracted": { - "model": "create:block/brass_belt_funnel_pull_powered_retracted" + "facing=north,powered=true,shape=retracted": { + "model": "create:block/brass_belt_funnel__powered_retracted" }, - "facing=south,powered=true,pushing=false,shape=retracted": { - "model": "create:block/brass_belt_funnel_pull_powered_retracted", + "facing=south,powered=true,shape=retracted": { + "model": "create:block/brass_belt_funnel__powered_retracted", "y": 180 }, - "facing=west,powered=true,pushing=false,shape=retracted": { - "model": "create:block/brass_belt_funnel_pull_powered_retracted", + "facing=west,powered=true,shape=retracted": { + "model": "create:block/brass_belt_funnel__powered_retracted", "y": 270 }, - "facing=east,powered=true,pushing=false,shape=retracted": { - "model": "create:block/brass_belt_funnel_pull_powered_retracted", + "facing=east,powered=true,shape=retracted": { + "model": "create:block/brass_belt_funnel__powered_retracted", "y": 90 }, - "facing=north,powered=false,pushing=true,shape=retracted": { - "model": "create:block/brass_belt_funnel_push_retracted" + "facing=north,powered=false,shape=extended": { + "model": "create:block/brass_belt_funnel__extended" }, - "facing=south,powered=false,pushing=true,shape=retracted": { - "model": "create:block/brass_belt_funnel_push_retracted", + "facing=south,powered=false,shape=extended": { + "model": "create:block/brass_belt_funnel__extended", "y": 180 }, - "facing=west,powered=false,pushing=true,shape=retracted": { - "model": "create:block/brass_belt_funnel_push_retracted", + "facing=west,powered=false,shape=extended": { + "model": "create:block/brass_belt_funnel__extended", "y": 270 }, - "facing=east,powered=false,pushing=true,shape=retracted": { - "model": "create:block/brass_belt_funnel_push_retracted", + "facing=east,powered=false,shape=extended": { + "model": "create:block/brass_belt_funnel__extended", "y": 90 }, - "facing=north,powered=true,pushing=true,shape=retracted": { - "model": "create:block/brass_belt_funnel_push_powered_retracted" + "facing=north,powered=true,shape=extended": { + "model": "create:block/brass_belt_funnel__powered_extended" }, - "facing=south,powered=true,pushing=true,shape=retracted": { - "model": "create:block/brass_belt_funnel_push_powered_retracted", + "facing=south,powered=true,shape=extended": { + "model": "create:block/brass_belt_funnel__powered_extended", "y": 180 }, - "facing=west,powered=true,pushing=true,shape=retracted": { - "model": "create:block/brass_belt_funnel_push_powered_retracted", + "facing=west,powered=true,shape=extended": { + "model": "create:block/brass_belt_funnel__powered_extended", "y": 270 }, - "facing=east,powered=true,pushing=true,shape=retracted": { - "model": "create:block/brass_belt_funnel_push_powered_retracted", + "facing=east,powered=true,shape=extended": { + "model": "create:block/brass_belt_funnel__powered_extended", "y": 90 }, - "facing=north,powered=false,pushing=false,shape=extended": { - "model": "create:block/brass_belt_funnel_pull_extended" + "facing=north,powered=false,shape=pushing": { + "model": "create:block/brass_belt_funnel__pushing" }, - "facing=south,powered=false,pushing=false,shape=extended": { - "model": "create:block/brass_belt_funnel_pull_extended", + "facing=south,powered=false,shape=pushing": { + "model": "create:block/brass_belt_funnel__pushing", "y": 180 }, - "facing=west,powered=false,pushing=false,shape=extended": { - "model": "create:block/brass_belt_funnel_pull_extended", + "facing=west,powered=false,shape=pushing": { + "model": "create:block/brass_belt_funnel__pushing", "y": 270 }, - "facing=east,powered=false,pushing=false,shape=extended": { - "model": "create:block/brass_belt_funnel_pull_extended", + "facing=east,powered=false,shape=pushing": { + "model": "create:block/brass_belt_funnel__pushing", "y": 90 }, - "facing=north,powered=true,pushing=false,shape=extended": { - "model": "create:block/brass_belt_funnel_pull_powered_extended" + "facing=north,powered=true,shape=pushing": { + "model": "create:block/brass_belt_funnel__powered_pushing" }, - "facing=south,powered=true,pushing=false,shape=extended": { - "model": "create:block/brass_belt_funnel_pull_powered_extended", + "facing=south,powered=true,shape=pushing": { + "model": "create:block/brass_belt_funnel__powered_pushing", "y": 180 }, - "facing=west,powered=true,pushing=false,shape=extended": { - "model": "create:block/brass_belt_funnel_pull_powered_extended", + "facing=west,powered=true,shape=pushing": { + "model": "create:block/brass_belt_funnel__powered_pushing", "y": 270 }, - "facing=east,powered=true,pushing=false,shape=extended": { - "model": "create:block/brass_belt_funnel_pull_powered_extended", + "facing=east,powered=true,shape=pushing": { + "model": "create:block/brass_belt_funnel__powered_pushing", "y": 90 }, - "facing=north,powered=false,pushing=true,shape=extended": { - "model": "create:block/brass_belt_funnel_push_extended" + "facing=north,powered=false,shape=pulling": { + "model": "create:block/brass_belt_funnel__pulling" }, - "facing=south,powered=false,pushing=true,shape=extended": { - "model": "create:block/brass_belt_funnel_push_extended", + "facing=south,powered=false,shape=pulling": { + "model": "create:block/brass_belt_funnel__pulling", "y": 180 }, - "facing=west,powered=false,pushing=true,shape=extended": { - "model": "create:block/brass_belt_funnel_push_extended", + "facing=west,powered=false,shape=pulling": { + "model": "create:block/brass_belt_funnel__pulling", "y": 270 }, - "facing=east,powered=false,pushing=true,shape=extended": { - "model": "create:block/brass_belt_funnel_push_extended", + "facing=east,powered=false,shape=pulling": { + "model": "create:block/brass_belt_funnel__pulling", "y": 90 }, - "facing=north,powered=true,pushing=true,shape=extended": { - "model": "create:block/brass_belt_funnel_push_powered_extended" + "facing=north,powered=true,shape=pulling": { + "model": "create:block/brass_belt_funnel__powered_pulling" }, - "facing=south,powered=true,pushing=true,shape=extended": { - "model": "create:block/brass_belt_funnel_push_powered_extended", + "facing=south,powered=true,shape=pulling": { + "model": "create:block/brass_belt_funnel__powered_pulling", "y": 180 }, - "facing=west,powered=true,pushing=true,shape=extended": { - "model": "create:block/brass_belt_funnel_push_powered_extended", + "facing=west,powered=true,shape=pulling": { + "model": "create:block/brass_belt_funnel__powered_pulling", "y": 270 }, - "facing=east,powered=true,pushing=true,shape=extended": { - "model": "create:block/brass_belt_funnel_push_powered_extended", + "facing=east,powered=true,shape=pulling": { + "model": "create:block/brass_belt_funnel__powered_pulling", "y": 90 } } diff --git a/src/generated/resources/assets/create/blockstates/fluid_pipe.json b/src/generated/resources/assets/create/blockstates/fluid_pipe.json index 27681190a..f6ea8ac45 100644 --- a/src/generated/resources/assets/create/blockstates/fluid_pipe.json +++ b/src/generated/resources/assets/create/blockstates/fluid_pipe.json @@ -62,8 +62,8 @@ "when": { "down": "false", "north": "true", - "south": "false", - "up": "true" + "up": "true", + "south": "false" }, "apply": { "model": "create:block/fluid_pipe/lu_x" @@ -73,8 +73,8 @@ "when": { "down": "false", "north": "false", - "south": "true", - "up": "true" + "up": "true", + "south": "true" }, "apply": { "model": "create:block/fluid_pipe/ru_x" @@ -84,8 +84,8 @@ "when": { "down": "true", "north": "true", - "south": "false", - "up": "false" + "up": "false", + "south": "false" }, "apply": { "model": "create:block/fluid_pipe/ld_x" @@ -95,8 +95,8 @@ "when": { "down": "true", "north": "false", - "south": "true", - "up": "false" + "up": "false", + "south": "true" }, "apply": { "model": "create:block/fluid_pipe/rd_x" @@ -106,8 +106,8 @@ "when": { "down": "true", "north": "false", - "south": "false", - "up": "true" + "up": "true", + "south": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -117,8 +117,8 @@ "when": { "down": "false", "north": "false", - "south": "false", - "up": "true" + "up": "true", + "south": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -128,8 +128,8 @@ "when": { "down": "true", "north": "false", - "south": "false", - "up": "false" + "up": "false", + "south": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -139,8 +139,8 @@ "when": { "down": "false", "north": "true", - "south": "true", - "up": "false" + "up": "false", + "south": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -150,8 +150,8 @@ "when": { "down": "false", "north": "true", - "south": "false", - "up": "false" + "up": "false", + "south": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -161,8 +161,8 @@ "when": { "down": "false", "north": "false", - "south": "true", - "up": "false" + "up": "false", + "south": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -172,8 +172,8 @@ "when": { "down": "false", "north": "false", - "south": "false", - "up": "false" + "up": "false", + "south": "false" }, "apply": { "model": "create:block/fluid_pipe/none_x" @@ -182,8 +182,8 @@ { "when": { "west": "true", - "north": "false", "east": "false", + "north": "false", "south": "true" }, "apply": { @@ -193,8 +193,8 @@ { "when": { "west": "false", - "north": "false", "east": "true", + "north": "false", "south": "true" }, "apply": { @@ -204,8 +204,8 @@ { "when": { "west": "true", - "north": "true", "east": "false", + "north": "true", "south": "false" }, "apply": { @@ -215,8 +215,8 @@ { "when": { "west": "false", - "north": "true", "east": "true", + "north": "true", "south": "false" }, "apply": { @@ -226,8 +226,8 @@ { "when": { "west": "false", - "north": "true", "east": "false", + "north": "true", "south": "true" }, "apply": { @@ -237,8 +237,8 @@ { "when": { "west": "false", - "north": "false", "east": "false", + "north": "false", "south": "true" }, "apply": { @@ -248,8 +248,8 @@ { "when": { "west": "false", - "north": "true", "east": "false", + "north": "true", "south": "false" }, "apply": { @@ -259,8 +259,8 @@ { "when": { "west": "true", - "north": "false", "east": "true", + "north": "false", "south": "false" }, "apply": { @@ -270,8 +270,8 @@ { "when": { "west": "true", - "north": "false", "east": "false", + "north": "false", "south": "false" }, "apply": { @@ -281,8 +281,8 @@ { "when": { "west": "false", - "north": "false", "east": "true", + "north": "false", "south": "false" }, "apply": { @@ -292,8 +292,8 @@ { "when": { "west": "false", - "north": "false", "east": "false", + "north": "false", "south": "false" }, "apply": { @@ -302,9 +302,9 @@ }, { "when": { - "down": "false", "west": "false", "east": "true", + "down": "false", "up": "true" }, "apply": { @@ -313,9 +313,9 @@ }, { "when": { - "down": "false", "west": "true", "east": "false", + "down": "false", "up": "true" }, "apply": { @@ -324,9 +324,9 @@ }, { "when": { - "down": "true", "west": "false", "east": "true", + "down": "true", "up": "false" }, "apply": { @@ -335,9 +335,9 @@ }, { "when": { - "down": "true", "west": "true", "east": "false", + "down": "true", "up": "false" }, "apply": { @@ -346,9 +346,9 @@ }, { "when": { - "down": "true", "west": "false", "east": "false", + "down": "true", "up": "true" }, "apply": { @@ -357,9 +357,9 @@ }, { "when": { - "down": "false", "west": "false", "east": "false", + "down": "false", "up": "true" }, "apply": { @@ -368,9 +368,9 @@ }, { "when": { - "down": "true", "west": "false", "east": "false", + "down": "true", "up": "false" }, "apply": { @@ -379,9 +379,9 @@ }, { "when": { - "down": "false", "west": "true", "east": "true", + "down": "false", "up": "false" }, "apply": { @@ -390,9 +390,9 @@ }, { "when": { - "down": "false", "west": "false", "east": "true", + "down": "false", "up": "false" }, "apply": { @@ -401,9 +401,9 @@ }, { "when": { - "down": "false", "west": "true", "east": "false", + "down": "false", "up": "false" }, "apply": { @@ -412,9 +412,9 @@ }, { "when": { - "down": "false", "west": "false", "east": "false", + "down": "false", "up": "false" }, "apply": { @@ -422,4 +422,4 @@ } } ] -} \ No newline at end of file +} diff --git a/src/generated/resources/assets/create/blockstates/radial_chassis.json b/src/generated/resources/assets/create/blockstates/radial_chassis.json index 9fdd50ee7..9d00ea8b1 100644 --- a/src/generated/resources/assets/create/blockstates/radial_chassis.json +++ b/src/generated/resources/assets/create/blockstates/radial_chassis.json @@ -89,8 +89,8 @@ }, { "when": { - "axis": "x", - "sticky_west": "true" + "sticky_west": "true", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -99,8 +99,8 @@ }, { "when": { - "axis": "y", - "sticky_west": "true" + "sticky_west": "true", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -109,8 +109,8 @@ }, { "when": { - "axis": "z", - "sticky_west": "true" + "sticky_west": "true", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky", @@ -119,8 +119,8 @@ }, { "when": { - "axis": "x", - "sticky_west": "false" + "sticky_west": "false", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -129,8 +129,8 @@ }, { "when": { - "axis": "y", - "sticky_west": "false" + "sticky_west": "false", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -139,8 +139,8 @@ }, { "when": { - "axis": "z", - "sticky_west": "false" + "sticky_west": "false", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index d5d409eae..a0d312f3e 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -709,6 +709,9 @@ "create.logistics.fluid_filter": "Fluid Filter", "create.logistics.firstFrequency": "Freq. #1", "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "Applied extraction count to filter.", "create.gui.goggles.generator_stats": "Generator Stats:", "create.gui.goggles.kinetic_stats": "Kinetic Stats:", @@ -749,7 +752,7 @@ "create.schematicAndQuill.noTarget": "Hold [Ctrl] to select Air blocks.", "create.schematicAndQuill.abort": "Removed selection.", "create.schematicAndQuill.title": "Schematic Name:", - "create.schematicAndQuill.convert": "Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "My Schematic", "create.schematicAndQuill.saved": "Saved as %1$s", @@ -949,6 +952,7 @@ "create.mechanical_arm.extract_from": "Take items from %1$s", "create.mechanical_arm.deposit_to": "Deposit items to %1$s", + "create.mechanical_arm.summary": "Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "%1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "When Multiple Outputs Available", @@ -965,6 +969,15 @@ "create.tunnel.selection_mode.randomize": "Randomize", "create.tunnel.selection_mode.synchronize": "Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "No Targets", + "create.hint.mechanical_arm_no_targets": "It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "Horizontal Funnels", + "create.hint.horizontal_funnel": "cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "Funnels facing upward", + "create.hint.upward_funnel": "can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "Update Bearing", + "create.hint.empty_bearing": "_Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "Hi :)", "create.gui.config.overlay2": "This is a sample overlay", "create.gui.config.overlay3": "Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index a23e4c29a..e1534a0c6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1026", + "_": "Missing Localizations: 1038", "_": "->------------------------] Game Elements [------------------------<-", @@ -710,6 +710,9 @@ "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", "create.logistics.firstFrequency": "Freq. #1", "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", "create.gui.goggles.generator_stats": "UNLOCALIZED: Generator Stats:", "create.gui.goggles.kinetic_stats": "UNLOCALIZED: Kinetic Stats:", @@ -750,7 +753,7 @@ "create.schematicAndQuill.noTarget": "Halte [Strg] zur Auswahl von Luft.", "create.schematicAndQuill.abort": "Auswahl zurückgesetzt.", "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "UNLOCALIZED: Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "Mein Bauplan", "create.schematicAndQuill.saved": "Gespeichert als %1$s", @@ -950,6 +953,7 @@ "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", + "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", @@ -966,6 +970,15 @@ "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", + "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "UNLOCALIZED: Horizontal Funnels", + "create.hint.horizontal_funnel": "UNLOCALIZED: cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "UNLOCALIZED: Funnels facing upward", + "create.hint.upward_funnel": "UNLOCALIZED: can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", + "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index a0ee15143..1a117cf05 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 655", + "_": "Missing Localizations: 667", "_": "->------------------------] Game Elements [------------------------<-", @@ -710,6 +710,9 @@ "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", "create.logistics.firstFrequency": "Freq. #1", "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", "create.gui.goggles.generator_stats": "Statistiques du générateur:", "create.gui.goggles.kinetic_stats": "Statistiques cinétiques:", @@ -750,7 +753,7 @@ "create.schematicAndQuill.noTarget": "Enfoncez [Ctrl] pour sélectionner les blocs d'air.", "create.schematicAndQuill.abort": "Sélection supprimée.", "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "UNLOCALIZED: Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "Mon schéma", "create.schematicAndQuill.saved": "Sauvegardé en tant que %1$s", @@ -950,6 +953,7 @@ "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", + "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", @@ -966,6 +970,15 @@ "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", + "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "UNLOCALIZED: Horizontal Funnels", + "create.hint.horizontal_funnel": "UNLOCALIZED: cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "UNLOCALIZED: Funnels facing upward", + "create.hint.upward_funnel": "UNLOCALIZED: can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", + "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index d188b68c1..0060f3e34 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 639", + "_": "Missing Localizations: 651", "_": "->------------------------] Game Elements [------------------------<-", @@ -710,6 +710,9 @@ "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", "create.logistics.firstFrequency": "Freq. #1", "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", "create.gui.goggles.generator_stats": "Statistiche del Generatore:", "create.gui.goggles.kinetic_stats": "Statistiche Cinetiche:", @@ -750,7 +753,7 @@ "create.schematicAndQuill.noTarget": "Premi [Ctrl] per selezionare il Blocco d'Aria.", "create.schematicAndQuill.abort": "Selezione rimossa.", "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "UNLOCALIZED: Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "La mia Schematica", "create.schematicAndQuill.saved": "Salvata come %1$s", @@ -950,6 +953,7 @@ "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", + "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", @@ -966,6 +970,15 @@ "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", + "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "UNLOCALIZED: Horizontal Funnels", + "create.hint.horizontal_funnel": "UNLOCALIZED: cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "UNLOCALIZED: Funnels facing upward", + "create.hint.upward_funnel": "UNLOCALIZED: can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", + "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 4e720b00c..cb238c3f1 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 638", + "_": "Missing Localizations: 650", "_": "->------------------------] Game Elements [------------------------<-", @@ -710,6 +710,9 @@ "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", "create.logistics.firstFrequency": "Freq. #1", "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", "create.gui.goggles.generator_stats": "ジェネレータの統計:", "create.gui.goggles.kinetic_stats": "動力の統計:", @@ -750,7 +753,7 @@ "create.schematicAndQuill.noTarget": "[Ctrl] を押したままで空気ブロックを選択します", "create.schematicAndQuill.abort": "選択を削除しました。", "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "UNLOCALIZED: Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "My Schematic", "create.schematicAndQuill.saved": "%1$s として保存しました", @@ -950,6 +953,7 @@ "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", + "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", @@ -966,6 +970,15 @@ "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", + "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "UNLOCALIZED: Horizontal Funnels", + "create.hint.horizontal_funnel": "UNLOCALIZED: cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "UNLOCALIZED: Funnels facing upward", + "create.hint.upward_funnel": "UNLOCALIZED: can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", + "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 9729d9e81..f0e1433f1 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 639", + "_": "Missing Localizations: 651", "_": "->------------------------] Game Elements [------------------------<-", @@ -710,6 +710,9 @@ "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", "create.logistics.firstFrequency": "주파수. #1", "create.logistics.secondFrequency": "주파수. #2", + "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", "create.gui.goggles.generator_stats": "발전 상태:", "create.gui.goggles.kinetic_stats": "가동 상태:", @@ -750,7 +753,7 @@ "create.schematicAndQuill.noTarget": "[Ctrl]을 눌러 공기 블럭을 선택하기.", "create.schematicAndQuill.abort": "위치 제거됨.", "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "UNLOCALIZED: Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "내 청사진", "create.schematicAndQuill.saved": "%1$s로 저장됨", @@ -950,6 +953,7 @@ "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", + "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", @@ -966,6 +970,15 @@ "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", + "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "UNLOCALIZED: Horizontal Funnels", + "create.hint.horizontal_funnel": "UNLOCALIZED: cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "UNLOCALIZED: Funnels facing upward", + "create.hint.upward_funnel": "UNLOCALIZED: can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", + "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 93c43a6d1..e66f411f0 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 967", + "_": "Missing Localizations: 979", "_": "->------------------------] Game Elements [------------------------<-", @@ -710,6 +710,9 @@ "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", "create.logistics.firstFrequency": "Freq. #1", "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", "create.gui.goggles.generator_stats": "UNLOCALIZED: Generator Stats:", "create.gui.goggles.kinetic_stats": "UNLOCALIZED: Kinetic Stats:", @@ -750,7 +753,7 @@ "create.schematicAndQuill.noTarget": "Houd [Ctrl] ingedrukt om een Lucht block te kiezen.", "create.schematicAndQuill.abort": "Keuze verwijderd.", "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "UNLOCALIZED: Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "Mijn Bouwtekening", "create.schematicAndQuill.saved": "Opgeslagen als %1$s", @@ -950,6 +953,7 @@ "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", + "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", @@ -966,6 +970,15 @@ "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", + "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "UNLOCALIZED: Horizontal Funnels", + "create.hint.horizontal_funnel": "UNLOCALIZED: cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "UNLOCALIZED: Funnels facing upward", + "create.hint.upward_funnel": "UNLOCALIZED: can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", + "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index b7aa3e484..56d4f0db7 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1033", + "_": "Missing Localizations: 1045", "_": "->------------------------] Game Elements [------------------------<-", @@ -710,6 +710,9 @@ "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", "create.logistics.firstFrequency": "UNLOCALIZED: Freq. #1", "create.logistics.secondFrequency": "UNLOCALIZED: Freq. #2", + "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", "create.gui.goggles.generator_stats": "UNLOCALIZED: Generator Stats:", "create.gui.goggles.kinetic_stats": "UNLOCALIZED: Kinetic Stats:", @@ -750,7 +753,7 @@ "create.schematicAndQuill.noTarget": "Seguro [Ctrl] para selecionar Blocos de Ar.", "create.schematicAndQuill.abort": "Seleção removida.", "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "UNLOCALIZED: Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "Meu Esquema", "create.schematicAndQuill.saved": "Salvo como %1$s", @@ -950,6 +953,7 @@ "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", + "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", @@ -966,6 +970,15 @@ "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", + "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "UNLOCALIZED: Horizontal Funnels", + "create.hint.horizontal_funnel": "UNLOCALIZED: cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "UNLOCALIZED: Funnels facing upward", + "create.hint.upward_funnel": "UNLOCALIZED: can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", + "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index c31c1bcb5..1b3d0f477 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 308", + "_": "Missing Localizations: 320", "_": "->------------------------] Game Elements [------------------------<-", @@ -710,6 +710,9 @@ "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", "create.logistics.firstFrequency": "Частота #1", "create.logistics.secondFrequency": "Частота #2", + "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", "create.gui.goggles.generator_stats": "Статистика генератора:", "create.gui.goggles.kinetic_stats": "Кинетическая статистика:", @@ -750,7 +753,7 @@ "create.schematicAndQuill.noTarget": "Удерживайте [Ctrl], чтобы выбрать воздушные блоки.", "create.schematicAndQuill.abort": "Выделение убрано", "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "UNLOCALIZED: Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "Моя схематика", "create.schematicAndQuill.saved": "Сохранено как %1$s", @@ -950,6 +953,7 @@ "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", + "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", @@ -966,6 +970,15 @@ "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", + "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "UNLOCALIZED: Horizontal Funnels", + "create.hint.horizontal_funnel": "UNLOCALIZED: cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "UNLOCALIZED: Funnels facing upward", + "create.hint.upward_funnel": "UNLOCALIZED: can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", + "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 23a3412e0..b4a6ac12f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 321", + "_": "Missing Localizations: 333", "_": "->------------------------] Game Elements [------------------------<-", @@ -710,6 +710,9 @@ "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", "create.logistics.firstFrequency": "频道. #1", "create.logistics.secondFrequency": "频道. #2", + "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", "create.gui.goggles.generator_stats": "产能器状态:", "create.gui.goggles.kinetic_stats": "动能状态:", @@ -750,7 +753,7 @@ "create.schematicAndQuill.noTarget": "按住Ctrl选择空气方块.", "create.schematicAndQuill.abort": "删除选择.", "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "UNLOCALIZED: Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "我的蓝图", "create.schematicAndQuill.saved": "另存为 %1$s", @@ -950,6 +953,7 @@ "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", + "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", @@ -966,6 +970,15 @@ "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", + "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "UNLOCALIZED: Horizontal Funnels", + "create.hint.horizontal_funnel": "UNLOCALIZED: cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "UNLOCALIZED: Funnels facing upward", + "create.hint.upward_funnel": "UNLOCALIZED: can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", + "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", diff --git a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_extended.json b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__extended.json similarity index 67% rename from src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_extended.json rename to src/generated/resources/assets/create/models/block/andesite_belt_funnel__extended.json index f79ae5977..9e68f10d3 100644 --- a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_extended.json +++ b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__extended.json @@ -2,7 +2,9 @@ "parent": "create:block/belt_funnel/block_extended", "textures": { "particle": "block/polished_andesite", - "2": "create:block/andesite_funnel_pull", + "2": "create:block/andesite_funnel_neutral", + "2_1": "create:block/andesite_funnel_push", + "2_2": "create:block/andesite_funnel_pull", "3": "create:block/andesite_funnel_back", "5": "create:block/andesite_funnel_tall", "6": "create:block/andesite_funnel", diff --git a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_powered_extended.json b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_extended.json similarity index 68% rename from src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_powered_extended.json rename to src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_extended.json index 9921a4309..85b3cf6a7 100644 --- a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_powered_extended.json +++ b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_extended.json @@ -2,7 +2,9 @@ "parent": "create:block/belt_funnel/block_extended", "textures": { "particle": "block/polished_andesite", - "2": "create:block/andesite_funnel_push", + "2": "create:block/andesite_funnel_neutral", + "2_1": "create:block/andesite_funnel_push", + "2_2": "create:block/andesite_funnel_pull", "3": "create:block/andesite_funnel_back", "5": "create:block/andesite_funnel_tall_powered", "6": "create:block/andesite_funnel_powered", diff --git a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_powered_extended.json b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_pulling.json similarity index 56% rename from src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_powered_extended.json rename to src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_pulling.json index 4475b476b..70301fac8 100644 --- a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_powered_extended.json +++ b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_pulling.json @@ -1,8 +1,10 @@ { - "parent": "create:block/belt_funnel/block_extended", + "parent": "create:block/belt_funnel/block_pulling", "textures": { "particle": "block/polished_andesite", - "2": "create:block/andesite_funnel_pull", + "2": "create:block/andesite_funnel_neutral", + "2_1": "create:block/andesite_funnel_push", + "2_2": "create:block/andesite_funnel_pull", "3": "create:block/andesite_funnel_back", "5": "create:block/andesite_funnel_tall_powered", "6": "create:block/andesite_funnel_powered", diff --git a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_powered_retracted.json b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_pushing.json similarity index 56% rename from src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_powered_retracted.json rename to src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_pushing.json index 38a2f735a..804891334 100644 --- a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_powered_retracted.json +++ b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_pushing.json @@ -1,8 +1,10 @@ { - "parent": "create:block/belt_funnel/block_retracted", + "parent": "create:block/belt_funnel/block_pushing", "textures": { "particle": "block/polished_andesite", - "2": "create:block/andesite_funnel_push", + "2": "create:block/andesite_funnel_neutral", + "2_1": "create:block/andesite_funnel_push", + "2_2": "create:block/andesite_funnel_pull", "3": "create:block/andesite_funnel_back", "5": "create:block/andesite_funnel_tall_powered", "6": "create:block/andesite_funnel_powered", diff --git a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_powered_retracted.json b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_retracted.json similarity index 68% rename from src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_powered_retracted.json rename to src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_retracted.json index 4ade59fc5..6a6e4890d 100644 --- a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_powered_retracted.json +++ b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__powered_retracted.json @@ -2,7 +2,9 @@ "parent": "create:block/belt_funnel/block_retracted", "textures": { "particle": "block/polished_andesite", - "2": "create:block/andesite_funnel_pull", + "2": "create:block/andesite_funnel_neutral", + "2_1": "create:block/andesite_funnel_push", + "2_2": "create:block/andesite_funnel_pull", "3": "create:block/andesite_funnel_back", "5": "create:block/andesite_funnel_tall_powered", "6": "create:block/andesite_funnel_powered", diff --git a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_extended.json b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__pulling.json similarity index 55% rename from src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_extended.json rename to src/generated/resources/assets/create/models/block/andesite_belt_funnel__pulling.json index 75b27092e..2e7f54321 100644 --- a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_extended.json +++ b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__pulling.json @@ -1,8 +1,10 @@ { - "parent": "create:block/belt_funnel/block_extended", + "parent": "create:block/belt_funnel/block_pulling", "textures": { "particle": "block/polished_andesite", - "2": "create:block/andesite_funnel_push", + "2": "create:block/andesite_funnel_neutral", + "2_1": "create:block/andesite_funnel_push", + "2_2": "create:block/andesite_funnel_pull", "3": "create:block/andesite_funnel_back", "5": "create:block/andesite_funnel_tall", "6": "create:block/andesite_funnel", diff --git a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_retracted.json b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__pushing.json similarity index 55% rename from src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_retracted.json rename to src/generated/resources/assets/create/models/block/andesite_belt_funnel__pushing.json index f77372c76..db852a0e1 100644 --- a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_pull_retracted.json +++ b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__pushing.json @@ -1,8 +1,10 @@ { - "parent": "create:block/belt_funnel/block_retracted", + "parent": "create:block/belt_funnel/block_pushing", "textures": { "particle": "block/polished_andesite", - "2": "create:block/andesite_funnel_pull", + "2": "create:block/andesite_funnel_neutral", + "2_1": "create:block/andesite_funnel_push", + "2_2": "create:block/andesite_funnel_pull", "3": "create:block/andesite_funnel_back", "5": "create:block/andesite_funnel_tall", "6": "create:block/andesite_funnel", diff --git a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_retracted.json b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__retracted.json similarity index 67% rename from src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_retracted.json rename to src/generated/resources/assets/create/models/block/andesite_belt_funnel__retracted.json index 91e243db3..533f700e6 100644 --- a/src/generated/resources/assets/create/models/block/andesite_belt_funnel_push_retracted.json +++ b/src/generated/resources/assets/create/models/block/andesite_belt_funnel__retracted.json @@ -2,7 +2,9 @@ "parent": "create:block/belt_funnel/block_retracted", "textures": { "particle": "block/polished_andesite", - "2": "create:block/andesite_funnel_push", + "2": "create:block/andesite_funnel_neutral", + "2_1": "create:block/andesite_funnel_push", + "2_2": "create:block/andesite_funnel_pull", "3": "create:block/andesite_funnel_back", "5": "create:block/andesite_funnel_tall", "6": "create:block/andesite_funnel", diff --git a/src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_extended.json b/src/generated/resources/assets/create/models/block/brass_belt_funnel__extended.json similarity index 68% rename from src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_extended.json rename to src/generated/resources/assets/create/models/block/brass_belt_funnel__extended.json index fadd65788..0fce1a25a 100644 --- a/src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_extended.json +++ b/src/generated/resources/assets/create/models/block/brass_belt_funnel__extended.json @@ -2,7 +2,9 @@ "parent": "create:block/belt_funnel/block_extended", "textures": { "particle": "create:block/brass_block", - "2": "create:block/brass_funnel_pull", + "2": "create:block/brass_funnel_neutral", + "2_1": "create:block/brass_funnel_push", + "2_2": "create:block/brass_funnel_pull", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall", "6": "create:block/brass_funnel", diff --git a/src/generated/resources/assets/create/models/block/brass_belt_funnel_push_powered_extended.json b/src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_extended.json similarity index 69% rename from src/generated/resources/assets/create/models/block/brass_belt_funnel_push_powered_extended.json rename to src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_extended.json index 455499d7f..ff664c508 100644 --- a/src/generated/resources/assets/create/models/block/brass_belt_funnel_push_powered_extended.json +++ b/src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_extended.json @@ -2,7 +2,9 @@ "parent": "create:block/belt_funnel/block_extended", "textures": { "particle": "create:block/brass_block", - "2": "create:block/brass_funnel_push", + "2": "create:block/brass_funnel_neutral", + "2_1": "create:block/brass_funnel_push", + "2_2": "create:block/brass_funnel_pull", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall_powered", "6": "create:block/brass_funnel_powered", diff --git a/src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_powered_extended.json b/src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_pulling.json similarity index 57% rename from src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_powered_extended.json rename to src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_pulling.json index 5133a0a73..b2afb7d4e 100644 --- a/src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_powered_extended.json +++ b/src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_pulling.json @@ -1,8 +1,10 @@ { - "parent": "create:block/belt_funnel/block_extended", + "parent": "create:block/belt_funnel/block_pulling", "textures": { "particle": "create:block/brass_block", - "2": "create:block/brass_funnel_pull", + "2": "create:block/brass_funnel_neutral", + "2_1": "create:block/brass_funnel_push", + "2_2": "create:block/brass_funnel_pull", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall_powered", "6": "create:block/brass_funnel_powered", diff --git a/src/generated/resources/assets/create/models/block/brass_belt_funnel_push_powered_retracted.json b/src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_pushing.json similarity index 57% rename from src/generated/resources/assets/create/models/block/brass_belt_funnel_push_powered_retracted.json rename to src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_pushing.json index c5d444dd5..99b733775 100644 --- a/src/generated/resources/assets/create/models/block/brass_belt_funnel_push_powered_retracted.json +++ b/src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_pushing.json @@ -1,8 +1,10 @@ { - "parent": "create:block/belt_funnel/block_retracted", + "parent": "create:block/belt_funnel/block_pushing", "textures": { "particle": "create:block/brass_block", - "2": "create:block/brass_funnel_push", + "2": "create:block/brass_funnel_neutral", + "2_1": "create:block/brass_funnel_push", + "2_2": "create:block/brass_funnel_pull", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall_powered", "6": "create:block/brass_funnel_powered", diff --git a/src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_powered_retracted.json b/src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_retracted.json similarity index 69% rename from src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_powered_retracted.json rename to src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_retracted.json index d64a5168c..60060dfb5 100644 --- a/src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_powered_retracted.json +++ b/src/generated/resources/assets/create/models/block/brass_belt_funnel__powered_retracted.json @@ -2,7 +2,9 @@ "parent": "create:block/belt_funnel/block_retracted", "textures": { "particle": "create:block/brass_block", - "2": "create:block/brass_funnel_pull", + "2": "create:block/brass_funnel_neutral", + "2_1": "create:block/brass_funnel_push", + "2_2": "create:block/brass_funnel_pull", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall_powered", "6": "create:block/brass_funnel_powered", diff --git a/src/generated/resources/assets/create/models/block/brass_belt_funnel_push_extended.json b/src/generated/resources/assets/create/models/block/brass_belt_funnel__pulling.json similarity index 55% rename from src/generated/resources/assets/create/models/block/brass_belt_funnel_push_extended.json rename to src/generated/resources/assets/create/models/block/brass_belt_funnel__pulling.json index 98a177099..2975e7830 100644 --- a/src/generated/resources/assets/create/models/block/brass_belt_funnel_push_extended.json +++ b/src/generated/resources/assets/create/models/block/brass_belt_funnel__pulling.json @@ -1,8 +1,10 @@ { - "parent": "create:block/belt_funnel/block_extended", + "parent": "create:block/belt_funnel/block_pulling", "textures": { "particle": "create:block/brass_block", - "2": "create:block/brass_funnel_push", + "2": "create:block/brass_funnel_neutral", + "2_1": "create:block/brass_funnel_push", + "2_2": "create:block/brass_funnel_pull", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall", "6": "create:block/brass_funnel", diff --git a/src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_retracted.json b/src/generated/resources/assets/create/models/block/brass_belt_funnel__pushing.json similarity index 55% rename from src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_retracted.json rename to src/generated/resources/assets/create/models/block/brass_belt_funnel__pushing.json index b4e776036..a1130fb8e 100644 --- a/src/generated/resources/assets/create/models/block/brass_belt_funnel_pull_retracted.json +++ b/src/generated/resources/assets/create/models/block/brass_belt_funnel__pushing.json @@ -1,8 +1,10 @@ { - "parent": "create:block/belt_funnel/block_retracted", + "parent": "create:block/belt_funnel/block_pushing", "textures": { "particle": "create:block/brass_block", - "2": "create:block/brass_funnel_pull", + "2": "create:block/brass_funnel_neutral", + "2_1": "create:block/brass_funnel_push", + "2_2": "create:block/brass_funnel_pull", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall", "6": "create:block/brass_funnel", diff --git a/src/generated/resources/assets/create/models/block/brass_belt_funnel_push_retracted.json b/src/generated/resources/assets/create/models/block/brass_belt_funnel__retracted.json similarity index 68% rename from src/generated/resources/assets/create/models/block/brass_belt_funnel_push_retracted.json rename to src/generated/resources/assets/create/models/block/brass_belt_funnel__retracted.json index 4f23ee54f..693ec38e6 100644 --- a/src/generated/resources/assets/create/models/block/brass_belt_funnel_push_retracted.json +++ b/src/generated/resources/assets/create/models/block/brass_belt_funnel__retracted.json @@ -2,7 +2,9 @@ "parent": "create:block/belt_funnel/block_retracted", "textures": { "particle": "create:block/brass_block", - "2": "create:block/brass_funnel_push", + "2": "create:block/brass_funnel_neutral", + "2_1": "create:block/brass_funnel_push", + "2_2": "create:block/brass_funnel_pull", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall", "6": "create:block/brass_funnel", diff --git a/src/generated/resources/data/create/recipes/crushing/prismarine_crystals.json b/src/generated/resources/data/create/recipes/crushing/prismarine_crystals.json index bedfb41c0..0bacec70e 100644 --- a/src/generated/resources/data/create/recipes/crushing/prismarine_crystals.json +++ b/src/generated/resources/data/create/recipes/crushing/prismarine_crystals.json @@ -7,18 +7,13 @@ ], "results": [ { - "item": "minecraft:prismarine_shard", - "count": 2 + "item": "minecraft:quartz", + "count": 1 }, { "item": "minecraft:quartz", "count": 2, - "chance": 0.75 - }, - { - "item": "minecraft:prismarine_shard", - "count": 2, - "chance": 0.25 + "chance": 0.5 }, { "item": "minecraft:glowstone_dust", diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 532a3e540..f0d61584c 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -614,7 +614,7 @@ public class AllBlocks { .initialProperties(SharedProperties::softMetal) .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) .addLayer(() -> RenderType::getCutoutMipped) - .item() + .item(BasinOperatorBlockItem::new) .transform(customItemModel()) .register(); diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index 60f71a3e8..5daece9ab 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -77,12 +77,27 @@ public class AllShapes { .add(2, 6, 2, 14, 10, 14) .add(0, 10, 0, 16, 13, 16) .forDirectional(UP), - BELT_FUNNEL_RETRACTED = shape(2, -5, 14, 12, 14, 18).add(0, -5, 8, 16, 16, 14) + BELT_FUNNEL_RETRACTED = shape(2, -2, 14, 14, 14, 18).add(0, -5, 8, 16, 16, 14) .forHorizontal(NORTH), - BELT_FUNNEL_EXTENDED = shape(2, -4, 14, 14, 14, 18).add(3, -4, 10, 13, 13, 14) + BELT_FUNNEL_EXTENDED = shape(2, -2, 14, 14, 14, 18).add(3, -4, 10, 13, 13, 14) .add(2, -4, 6, 14, 14, 10) .add(0, -5, 0, 16, 16, 6) .forHorizontal(NORTH), + BELT_FUNNEL_PERPENDICULAR = + shape(2, -2, 14, 14, 14, 18) + .add(1, 8, 12, 15, 15, 14) + .add(0.1, 13, 7, 15.9, 15, 11) + .add(0.1, 9, 8, 15.9, 13, 12) + .add(0.1, 5, 9, 15.9, 9, 13) + .add(0.1, 1, 10, 15.9, 5, 14) + .add(0.1, -3, 11, 15.9, 1, 15) + .forHorizontal(NORTH), + BELT_FUNNEL_CONNECTED = + shape(2, -2, 14, 14, 14, 18) + .add(0, -5, 5, 16, 16, 11) + .add(2, -4, 2, 14, 14, -2) + .add(3, -2, 0, 13, 13, 16) + .forHorizontal(NORTH), FLUID_VALVE = shape(3, -1, 3, 13, 17, 13).add(2, 2, 2, 14, 14, 14) .forAxis(), SMART_FLUID_PIPE_FLOOR = shape(4, 4, 0, 12, 12, 16).add(3, 3, 3, 13, 13, 13) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/BasinOperatorBlockItem.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/BasinOperatorBlockItem.java index 4604140d2..ae91c16c8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/BasinOperatorBlockItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/BasinOperatorBlockItem.java @@ -18,11 +18,17 @@ public class BasinOperatorBlockItem extends BlockItem { @Override public ActionResultType tryPlace(BlockItemUseContext context) { - - BlockPos placedOnPos = context.getPos().offset(context.getFace().getOpposite()); - BlockState placedOnState = context.getWorld().getBlockState(placedOnPos); - if (AllBlocks.BASIN.has(placedOnState)) { - if (context.getWorld().getBlockState(placedOnPos.up(2)).getMaterial().isReplaceable()) + BlockPos placedOnPos = context.getPos() + .offset(context.getFace() + .getOpposite()); + BlockState placedOnState = context.getWorld() + .getBlockState(placedOnPos); + if (AllBlocks.BASIN.has(placedOnState) || AllBlocks.BELT.has(placedOnState) + || AllBlocks.DEPOT.has(placedOnState)) { + if (context.getWorld() + .getBlockState(placedOnPos.up(2)) + .getMaterial() + .isReplaceable()) context = BlockItemUseContext.func_221536_a(context, placedOnPos.up(2), Direction.UP); else return ActionResultType.FAIL; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRenderer.java index 92c2ba6c5..45049327f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRenderer.java @@ -1,15 +1,16 @@ package com.simibubi.create.content.contraptions.components.structureMovement; +import java.util.List; import java.util.Random; import org.apache.commons.lang3.tuple.Pair; import org.lwjgl.opengl.GL11; import com.mojang.blaze3d.matrix.MatrixStack; -import com.mojang.blaze3d.vertex.IVertexBuilder; import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.utility.MatrixStacker; import com.simibubi.create.foundation.utility.SuperByteBuffer; +import com.simibubi.create.foundation.utility.SuperByteBufferCache; import com.simibubi.create.foundation.utility.SuperByteBufferCache.Compartment; import com.simibubi.create.foundation.utility.TileEntityRenderHelper; import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld; @@ -23,6 +24,7 @@ import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.Matrix4f; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.RenderTypeLookup; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -30,28 +32,40 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.LightType; import net.minecraft.world.World; import net.minecraft.world.gen.feature.template.Template.BlockInfo; +import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.model.data.EmptyModelData; public class ContraptionRenderer { - public static final Compartment CONTRAPTION = new Compartment<>(); + public static final Compartment> CONTRAPTION = new Compartment<>(); protected static PlacementSimulationWorld renderWorld; public static void render(World world, Contraption c, MatrixStack ms, MatrixStack msLocal, IRenderTypeBuffer buffer) { - renderStructure(world, c, ms, msLocal, buffer); renderTileEntities(world, c, ms, msLocal, buffer); + if (buffer instanceof IRenderTypeBuffer.Impl) + ((IRenderTypeBuffer.Impl) buffer).draw(); + renderStructure(world, c, ms, msLocal, buffer); renderActors(world, c, ms, msLocal, buffer); } protected static void renderStructure(World world, Contraption c, MatrixStack ms, MatrixStack msLocal, IRenderTypeBuffer buffer) { - IVertexBuilder translucent = buffer.getBuffer(RenderType.getTranslucent()); - SuperByteBuffer contraptionBuffer = CreateClient.bufferCache.get(CONTRAPTION, c, () -> buildStructureBuffer(c)); - Matrix4f model = msLocal.peek() - .getModel(); - contraptionBuffer.light(model) - .renderInto(ms, translucent); + SuperByteBufferCache bufferCache = CreateClient.bufferCache; + List blockLayers = RenderType.getBlockLayers(); + + buffer.getBuffer(RenderType.getSolid()); + for (int i = 0; i < blockLayers.size(); i++) { + RenderType layer = blockLayers.get(i); + Pair key = Pair.of(c, i); + SuperByteBuffer contraptionBuffer = bufferCache.get(CONTRAPTION, key, () -> buildStructureBuffer(c, layer)); + if (contraptionBuffer.isEmpty()) + continue; + Matrix4f model = msLocal.peek() + .getModel(); + contraptionBuffer.light(model) + .renderInto(ms, buffer.getBuffer(layer)); + } } private static void renderTileEntities(World world, Contraption c, MatrixStack ms, MatrixStack msLocal, @@ -59,10 +73,11 @@ public class ContraptionRenderer { TileEntityRenderHelper.renderTileEntities(world, c.customRenderTEs, ms, msLocal, buffer); } - private static SuperByteBuffer buildStructureBuffer(Contraption c) { + private static SuperByteBuffer buildStructureBuffer(Contraption c, RenderType layer) { if (renderWorld == null || renderWorld.getWorld() != Minecraft.getInstance().world) renderWorld = new PlacementSimulationWorld(Minecraft.getInstance().world); + ForgeHooksClient.setRenderLayer(layer); MatrixStack ms = new MatrixStack(); BlockRendererDispatcher dispatcher = Minecraft.getInstance() .getBlockRendererDispatcher(); @@ -79,7 +94,9 @@ public class ContraptionRenderer { if (state.getRenderType() == BlockRenderType.ENTITYBLOCK_ANIMATED) continue; - + if (!RenderTypeLookup.canRenderInLayer(state, layer)) + continue; + IBakedModel originalModel = dispatcher.getModelForState(state); ms.push(); ms.translate(info.pos.getX(), info.pos.getY(), info.pos.getZ()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java index fda747d49..b64162e31 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java @@ -6,6 +6,7 @@ import java.util.List; import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionEntity; +import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; import com.simibubi.create.foundation.utility.AngleHelper; @@ -94,6 +95,8 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp public float getAngularSpeed() { float speed = (isWindmill() ? getGeneratedSpeed() : getSpeed()) * 3 / 10f; + if (getSpeed() == 0) + speed = 0; if (world.isRemote) { speed *= ServerSpeedProvider.get(); speed += clientAngleDiff / 3f; @@ -254,4 +257,27 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp return running; } + @Override + public boolean addToTooltip(List tooltip, boolean isPlayerSneaking) { + if (super.addToTooltip(tooltip, isPlayerSneaking)) + return true; + if (isPlayerSneaking) + return false; + if (isWindmill()) + return false; + if (getSpeed() == 0) + return false; + if (running) + return false; + BlockState state = getBlockState(); + if (!(state.getBlock() instanceof BearingBlock)) + return false; + BlockState attachedState = world.getBlockState(pos.offset(state.get(BearingBlock.FACING))); + if (attachedState.getMaterial() + .isReplaceable()) + return false; + TooltipHelper.addHint(tooltip, "hint.empty_bearing"); + return true; + } + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/goggles/IHaveGoggleInformation.java b/src/main/java/com/simibubi/create/content/contraptions/goggles/IHaveGoggleInformation.java index f41753606..728f1c631 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/goggles/IHaveGoggleInformation.java +++ b/src/main/java/com/simibubi/create/content/contraptions/goggles/IHaveGoggleInformation.java @@ -9,7 +9,7 @@ import java.util.List; public interface IHaveGoggleInformation { DecimalFormat decimalFormat = new DecimalFormat("#.##"); - String spacing = " "; + public static String spacing = " "; /** * this method will be called when looking at a TileEntity that implemented this interface diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinBlock.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinBlock.java index afbbde0fa..d02a73d53 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinBlock.java @@ -33,6 +33,7 @@ import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.world.IBlockReader; +import net.minecraft.world.IWorldReader; import net.minecraft.world.World; import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.ItemHandlerHelper; @@ -56,6 +57,14 @@ public class BasinBlock extends Block implements ITE, IWrenchab protected void fillStateContainer(Builder p_206840_1_) { super.fillStateContainer(p_206840_1_.add(FACING)); } + + @Override + public boolean isValidPosition(BlockState state, IWorldReader world, BlockPos pos) { + TileEntity tileEntity = world.getTileEntity(pos.up()); + if (tileEntity instanceof BasinOperatingTileEntity) + return false; + return true; + } @Override public TileEntity createTileEntity(BlockState state, IBlockReader world) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltFunnelInteractionHandler.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltFunnelInteractionHandler.java index ad2d4e10f..3fa3d429c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltFunnelInteractionHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltFunnelInteractionHandler.java @@ -2,6 +2,7 @@ package com.simibubi.create.content.contraptions.relays.belt.transport; import com.simibubi.create.content.contraptions.relays.belt.BeltHelper; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock; +import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape; import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; @@ -13,18 +14,19 @@ import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.items.ItemHandlerHelper; public class BeltFunnelInteractionHandler { public static boolean checkForFunnels(BeltInventory beltInventory, TransportedItemStack currentItem, float nextOffset) { boolean beltMovementPositive = beltInventory.beltMovementPositive; - int firstUpcomingSegment = (int) (currentItem.beltPosition + (beltMovementPositive ? .5f : -.5f)); + int firstUpcomingSegment = (int) Math.floor(currentItem.beltPosition); int step = beltMovementPositive ? 1 : -1; firstUpcomingSegment = MathHelper.clamp(firstUpcomingSegment, 0, beltInventory.belt.beltLength - 1); - for (int segment = firstUpcomingSegment; beltMovementPositive ? segment + .5f <= nextOffset - : segment + .5f >= nextOffset; segment += step) { + for (int segment = firstUpcomingSegment; beltMovementPositive ? segment <= nextOffset + : segment + 1 >= nextOffset; segment += step) { BlockPos funnelPos = BeltHelper.getPositionForOffset(beltInventory.belt, segment) .up(); World world = beltInventory.belt.getWorld(); @@ -36,15 +38,25 @@ public class BeltFunnelInteractionHandler { boolean blocking = funnelFacing == movementFacing.getOpposite(); if (funnelFacing == movementFacing) continue; + if (funnelState.get(BeltFunnelBlock.SHAPE) == Shape.PUSHING) + continue; - currentItem.beltPosition = segment + .5f; + float funnelEntry = segment + .5f; + if (funnelState.get(BeltFunnelBlock.SHAPE) == Shape.EXTENDED) + funnelEntry += .499f * (beltMovementPositive ? -1 : 1); + + boolean hasCrossed = nextOffset > funnelEntry && beltMovementPositive + || nextOffset < funnelEntry && !beltMovementPositive; + if (!hasCrossed) + return false; + if (blocking) + currentItem.beltPosition = funnelEntry; - if (world.isRemote) - return blocking; - if (funnelState.get(BeltFunnelBlock.PUSHING)) - return blocking; - if (funnelState.has(BeltFunnelBlock.POWERED) && funnelState.get(BeltFunnelBlock.POWERED)) - return blocking; + if (world.isRemote || funnelState.has(BeltFunnelBlock.POWERED) && funnelState.get(BeltFunnelBlock.POWERED)) + if (blocking) + return true; + else + continue; TileEntity te = world.getTileEntity(funnelPos); if (!(te instanceof FunnelTileEntity)) @@ -54,20 +66,41 @@ public class BeltFunnelInteractionHandler { InvManipulationBehaviour inserting = funnelTE.getBehaviour(InvManipulationBehaviour.TYPE); FilteringBehaviour filtering = funnelTE.getBehaviour(FilteringBehaviour.TYPE); - if (inserting == null) - return blocking; - if (filtering != null && !filtering.test(currentItem.stack)) - return blocking; + if (inserting == null || filtering != null && !filtering.test(currentItem.stack)) + if (blocking) + return true; + else + continue; - ItemStack before = currentItem.stack.copy(); - ItemStack remainder = inserting.insert(before); - if (before.equals(remainder, false)) - return blocking; + int amountToExtract = funnelTE.getAmountToExtract(); + ItemStack toInsert = currentItem.stack.copy(); + if (amountToExtract > toInsert.getCount()) + if (blocking) + return true; + else + continue; + + if (amountToExtract != -1) + toInsert.setCount(amountToExtract); + + ItemStack remainder = inserting.insert(toInsert); + if (toInsert.equals(remainder, false)) + if (blocking) + return true; + else + continue; + + int notFilled = currentItem.stack.getCount() - toInsert.getCount(); + if (!remainder.isEmpty()) { + remainder.grow(notFilled); + } else if (notFilled > 0) + remainder = ItemHandlerHelper.copyStackWithSize(currentItem.stack, notFilled); funnelTE.flap(true); currentItem.stack = remainder; beltInventory.belt.sendData(); - return true; + if (blocking) + return true; } return false; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltInventory.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltInventory.java index 85775cead..cd070dcbb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltInventory.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltInventory.java @@ -292,8 +292,8 @@ public class BeltInventory { BlockPos lastPosition = BeltHelper.getPositionForOffset(belt, lastOffset); BlockPos nextPosition = BeltHelper.getPositionForOffset(belt, beltMovementPositive ? belt.beltLength : -1); - if (AllBlocks.BRASS_BELT_FUNNEL.has(world.getBlockState(lastPosition.up()))) - return Ending.FUNNEL; +// if (AllBlocks.BRASS_BELT_FUNNEL.has(world.getBlockState(lastPosition.up()))) +// return Ending.FUNNEL; DirectBeltInputBehaviour inputBehaviour = TileEntityBehaviour.get(world, nextPosition, DirectBeltInputBehaviour.TYPE); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelPlacementHelper.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelPlacementHelper.java new file mode 100644 index 000000000..5f4e7a3e6 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelPlacementHelper.java @@ -0,0 +1,5 @@ +package com.simibubi.create.content.contraptions.relays.elementary; + +public class CogWheelPlacementHelper { + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java index 434883193..9a19a0f95 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java @@ -22,6 +22,7 @@ import net.minecraft.fluid.IFluidState; import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUseContext; import net.minecraft.state.StateContainer.Builder; import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.tileentity.TileEntity; @@ -49,6 +50,11 @@ public class ShaftBlock extends RotatedPillarKineticBlock implements IWaterLogga public static boolean isShaft(BlockState state) { return AllBlocks.SHAFT.has(state); } + + @Override + public ActionResultType onWrenched(BlockState state, ItemUseContext context) { + return IWrenchableWithBracket.super.onWrenched(state, context); + } @Override public PushReaction getPushReaction(BlockState state) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItemRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItemRenderer.java index 6bd89f42a..fc0828078 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItemRenderer.java @@ -18,7 +18,7 @@ public class WrenchItemRenderer extends CustomRenderedItemModelRenderer parent; + + public static final BooleanProperty POWERED = BlockStateProperties.POWERED; public static final IProperty SHAPE = EnumProperty.create("shape", Shape.class); public enum Shape implements IStringSerializable { - RETRACTED(AllShapes.BELT_FUNNEL_RETRACTED), EXTENDED(AllShapes.BELT_FUNNEL_EXTENDED); + RETRACTED(AllShapes.BELT_FUNNEL_RETRACTED), + EXTENDED(AllShapes.BELT_FUNNEL_EXTENDED), + PUSHING(AllShapes.BELT_FUNNEL_PERPENDICULAR), + PULLING(AllShapes.BELT_FUNNEL_PERPENDICULAR); +// CONNECTED(AllShapes.BELT_FUNNEL_CONNECTED); VoxelShaper shaper; @@ -49,35 +69,31 @@ public abstract class BeltFunnelBlock extends HorizontalInteractionFunnelBlock { } public BeltFunnelBlock(BlockEntry parent, Properties p_i48377_1_) { - super(parent, p_i48377_1_); - setDefaultState(getDefaultState().with(SHAPE, Shape.RETRACTED)); + super(p_i48377_1_); + this.parent = parent; + BlockState defaultState = getDefaultState().with(SHAPE, Shape.RETRACTED); + if (hasPoweredProperty()) + defaultState = defaultState.with(POWERED, false); + setDefaultState(defaultState); + } + + public abstract boolean hasPoweredProperty(); + + @Override + public boolean hasTileEntity(BlockState state) { + return true; } @Override - public BlockState getStateForPlacement(BlockItemUseContext ctx) { - BlockState state = super.getStateForPlacement(ctx); - return getStateForPosition(ctx.getWorld(), ctx.getPos(), state, ctx.getFace()); - } - - public BlockState getStateForPosition(World world, BlockPos pos, BlockState defaultState, Direction facing) { - BlockState state = defaultState.with(HORIZONTAL_FACING, facing); - BlockPos posBelow = pos.down(); - BlockState stateBelow = world.getBlockState(posBelow); - if (!AllBlocks.BELT.has(stateBelow)) - return state; - TileEntity teBelow = world.getTileEntity(posBelow); - if (teBelow == null || !(teBelow instanceof BeltTileEntity)) - return state; - BeltTileEntity beltTileEntity = (BeltTileEntity) teBelow; - if (beltTileEntity.getSpeed() == 0) - return state; - Direction movementFacing = beltTileEntity.getMovementFacing(); - return state.with(PUSHING, movementFacing == facing); + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return AllTileEntities.FUNNEL.create(); } @Override protected void fillStateContainer(Builder p_206840_1_) { - super.fillStateContainer(p_206840_1_.add(SHAPE)); + if (hasPoweredProperty()) + p_206840_1_.add(POWERED); + super.fillStateContainer(p_206840_1_.add(HORIZONTAL_FACING, SHAPE)); } @Override @@ -86,13 +102,72 @@ public abstract class BeltFunnelBlock extends HorizontalInteractionFunnelBlock { return state.get(SHAPE).shaper.get(state.get(HORIZONTAL_FACING)); } + @Override + public BlockState getStateForPlacement(BlockItemUseContext ctx) { + BlockState stateForPlacement = super.getStateForPlacement(ctx); + BlockPos pos = ctx.getPos(); + World world = ctx.getWorld(); + Direction facing = ctx.getFace(); + + if (hasPoweredProperty()) + stateForPlacement = stateForPlacement.with(POWERED, world.isBlockPowered(pos)); + + BlockState state = stateForPlacement.with(HORIZONTAL_FACING, facing); + return state.with(SHAPE, getShapeForPosition(world, pos, facing)); + } + + public static Shape getShapeForPosition(IBlockReader world, BlockPos pos, Direction facing) { + BlockPos posBelow = pos.down(); + BlockState stateBelow = world.getBlockState(posBelow); + if (!AllBlocks.BELT.has(stateBelow)) + return Shape.PUSHING; + Direction movementFacing = stateBelow.get(BeltBlock.HORIZONTAL_FACING); + return movementFacing.getAxis() != facing.getAxis() ? Shape.PUSHING : Shape.RETRACTED; + } + + @Override + public void onReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { + if (state.hasTileEntity() && (state.getBlock() != newState.getBlock() && !FunnelBlock.isFunnel(newState) + || !newState.hasTileEntity())) { + TileEntityBehaviour.destroy(world, pos, FilteringBehaviour.TYPE); + world.removeTileEntity(pos); + } + } + + @Override + @OnlyIn(Dist.CLIENT) + public boolean addDestroyEffects(BlockState state, World world, BlockPos pos, ParticleManager manager) { + BlockHelper.addReducedDestroyEffects(state, world, pos, manager); + return true; + } + + @Override + public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, + PlayerEntity player) { + return parent.asStack(); + } + @Override public BlockState updatePostPlacement(BlockState state, Direction direction, BlockState neighbour, IWorld world, BlockPos pos, BlockPos p_196271_6_) { - if (direction == state.get(HORIZONTAL_FACING)) - return updateShape(state, world, pos); - else - return super.updatePostPlacement(state, direction, neighbour, world, pos, p_196271_6_); + if (!isOnValidBelt(state, world, pos)) { + BlockState parentState = parent.getDefaultState(); + if (state.has(POWERED) && state.get(POWERED)) + parentState = parentState.with(POWERED, true); + return parentState.with(FunnelBlock.FACING, state.get(HORIZONTAL_FACING)); + } + Shape updatedShape = getShapeForPosition(world, pos, state.get(HORIZONTAL_FACING)); + Shape currentShape = state.get(SHAPE); + if (updatedShape == currentShape) + return state; + + // Don't revert wrenched states + if (updatedShape == Shape.PUSHING && currentShape == Shape.PULLING) + return state; + if (updatedShape == Shape.RETRACTED && currentShape == Shape.EXTENDED) + return state; + + return state.with(SHAPE, updatedShape); } public static boolean isOnValidBelt(BlockState state, IWorldReader world, BlockPos pos) { @@ -106,45 +181,44 @@ public abstract class BeltFunnelBlock extends HorizontalInteractionFunnelBlock { return true; } - public static BlockState updateShape(BlockState state, IBlockReader world, BlockPos pos) { - state = state.with(SHAPE, Shape.RETRACTED); - Direction horizontalFacing = state.get(HORIZONTAL_FACING); - - BlockState below = world.getBlockState(pos.down()); - if (below.getBlock() instanceof BeltBlock && below.get(BeltBlock.HORIZONTAL_FACING) - .getAxis() != horizontalFacing.getAxis()) - return state; - - BlockState neighbour = world.getBlockState(pos.offset(horizontalFacing)); - if (canConnectTo(state, neighbour)) - return state.with(SHAPE, Shape.EXTENDED); - return state; - } - - private static boolean canConnectTo(BlockState state, BlockState neighbour) { - if (neighbour.getBlock() instanceof BeltTunnelBlock) - return true; - if (neighbour.getBlock() instanceof BeltFunnelBlock - && neighbour.get(HORIZONTAL_FACING) == state.get(HORIZONTAL_FACING) - .getOpposite()) - return true; - return false; + @Override + public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, + boolean isMoving) { + if (!hasPoweredProperty()) + return; + if (worldIn.isRemote) + return; + boolean previouslyPowered = state.get(POWERED); + if (previouslyPowered != worldIn.isBlockPowered(pos)) + worldIn.setBlockState(pos, state.cycle(POWERED), 2); } @Override - public void onReplaced(BlockState p_196243_1_, World p_196243_2_, BlockPos p_196243_3_, BlockState p_196243_4_, - boolean p_196243_5_) { - if (p_196243_1_.hasTileEntity() - && (p_196243_1_.getBlock() != p_196243_4_.getBlock() && !FunnelBlock.isFunnel(p_196243_4_) - || !p_196243_4_.hasTileEntity())) { - TileEntityBehaviour.destroy(p_196243_2_, p_196243_3_, FilteringBehaviour.TYPE); - p_196243_2_.removeTileEntity(p_196243_3_); + public ActionResultType onWrenched(BlockState state, ItemUseContext context) { + World world = context.getWorld(); + if (world.isRemote) + return ActionResultType.SUCCESS; + + Shape shape = state.get(SHAPE); + Shape newShape = shape; + if (shape == Shape.PULLING) + newShape = Shape.PUSHING; + else if (shape == Shape.PUSHING) + newShape = Shape.PULLING; + else if (shape == Shape.EXTENDED) + newShape = Shape.RETRACTED; + else if (shape == Shape.RETRACTED) { + BlockState belt = world.getBlockState(context.getPos().down()); + if (belt.getBlock() instanceof BeltBlock && belt.get(BeltBlock.SLOPE) != BeltSlope.HORIZONTAL) + newShape = Shape.RETRACTED; + else + newShape = Shape.EXTENDED; } - } - @Override - protected boolean canStillInteract(BlockState state, IWorldReader world, BlockPos pos) { - return isOnValidBelt(state, world, pos); + if (newShape != shape) + world + .setBlockState(context.getPos(), state.with(SHAPE, newShape)); + return ActionResultType.SUCCESS; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelGenerator.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelGenerator.java index e047e1d0f..3cab09fdd 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelGenerator.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelGenerator.java @@ -33,20 +33,19 @@ public class BeltFunnelGenerator extends SpecialBlockStateGen { @Override public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, BlockState state) { - boolean pushing = state.get(BeltFunnelBlock.PUSHING); boolean powered = state.has(BlockStateProperties.POWERED) && state.get(BeltFunnelBlock.POWERED); String shapeName = state.get(BeltFunnelBlock.SHAPE) .getName(); - String pushingSuffix = (pushing ? "push" : "pull") ; String poweredSuffix = powered ? "_powered" : ""; - String name = ctx.getName() + "_" + pushingSuffix + poweredSuffix; - String textureName = type + "_funnel_" + pushingSuffix; + String name = ctx.getName() + "_" + poweredSuffix; return prov.models() .withExistingParent(name + "_" + shapeName, prov.modLoc("block/belt_funnel/block_" + shapeName)) .texture("particle", materialBlockTexture) - .texture("2", prov.modLoc("block/" + textureName)) + .texture("2", prov.modLoc("block/" + type + "_funnel_neutral")) + .texture("2_1", prov.modLoc("block/" + type + "_funnel_push")) + .texture("2_2", prov.modLoc("block/" + type + "_funnel_pull")) .texture("3", prov.modLoc("block/" + type + "_funnel_back")) .texture("5", prov.modLoc("block/" + type + "_funnel_tall" + poweredSuffix)) .texture("6", prov.modLoc("block/" + type + "_funnel" + poweredSuffix)) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java index a9a41f804..0084a6412 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java @@ -164,7 +164,7 @@ public abstract class FunnelBlock extends ProperDirectionalBlock implements ITE< if (direction == Direction.DOWN) { BlockState equivalentFunnel = getEquivalentBeltFunnel(null, null, state); if (BeltFunnelBlock.isOnValidBelt(equivalentFunnel, world, pos)) - return BeltFunnelBlock.updateShape(equivalentFunnel, world, pos); + return equivalentFunnel.with(BeltFunnelBlock.SHAPE, BeltFunnelBlock.getShapeForPosition(world, pos, facing)); } } return state; @@ -177,7 +177,7 @@ public abstract class FunnelBlock extends ProperDirectionalBlock implements ITE< Block block = world.getBlockState(pos.offset(state.get(FACING) .getOpposite())) .getBlock(); - return !(block instanceof FunnelBlock) && !(block instanceof HorizontalInteractionFunnelBlock); + return !(block instanceof FunnelBlock) && !(block instanceof BeltFunnelBlock); } @Nullable @@ -205,7 +205,7 @@ public abstract class FunnelBlock extends ProperDirectionalBlock implements ITE< @Nullable public static boolean isFunnel(BlockState state) { - return state.getBlock() instanceof FunnelBlock || state.getBlock() instanceof HorizontalInteractionFunnelBlock; + return state.getBlock() instanceof FunnelBlock || state.getBlock() instanceof BeltFunnelBlock; } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java index c95d6b41a..f76caa4f0 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.logistics.block.funnel; import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.AllBlocks; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.utility.AngleHelper; @@ -24,11 +23,21 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided { Direction funnelFacing = FunnelBlock.getFunnelFacing(state); float stateAngle = AngleHelper.horizontalAngle(funnelFacing); - if (AllBlocks.BRASS_BELT_FUNNEL.has(state)) - if (state.get(BeltFunnelBlock.SHAPE) == Shape.RETRACTED) - return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 13, 7.5f), horizontalAngle, Axis.Y); - else + if (state.getBlock() instanceof BeltFunnelBlock) { + switch (state.get(BeltFunnelBlock.SHAPE)) { + +// case CONNECTED: +// return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 15.5f, 8), stateAngle, Axis.Y); + case EXTENDED: return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 15.5f, 13), stateAngle, Axis.Y); + case PULLING: + case PUSHING: + return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 12.1, 8.7f), horizontalAngle, Axis.Y); + default: + case RETRACTED: + return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 13, 7.5f), horizontalAngle, Axis.Y); + } + } if (!funnelFacing.getAxis() .isHorizontal()) { @@ -40,14 +49,10 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided { .getAxis()); if (funnelFacing.getAxis() == Axis.Z) verticalDirection = verticalDirection.getOpposite(); - boolean reverse = state.getBlock() instanceof HorizontalInteractionFunnelBlock - && !state.get(HorizontalInteractionFunnelBlock.PUSHING); float yRot = -AngleHelper.horizontalAngle(verticalDirection) + 180; float xRot = -90; boolean alongX = funnelFacing.getAxis() == Axis.X; float zRotLast = alongX ^ funnelFacing.getAxisDirection() == AxisDirection.POSITIVE ? 180 : 0; - if (reverse) - zRotLast += 180; Vec3d vec = VecHelper.voxelSpace(8, 13, .5f); vec = vec.subtract(.5, .5, .5); @@ -63,33 +68,37 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided { protected void rotate(BlockState state, MatrixStack ms) { Direction facing = FunnelBlock.getFunnelFacing(state); - if (!facing.getAxis() - .isVertical() - && !(AllBlocks.BRASS_BELT_FUNNEL.has(state) && state.get(BeltFunnelBlock.SHAPE) == Shape.RETRACTED)) { - Direction verticalDirection = DirectionHelper.rotateAround(getSide(), facing.rotateY() - .getAxis()); - if (facing.getAxis() == Axis.Z) - verticalDirection = verticalDirection.getOpposite(); - - boolean reverse = state.getBlock() instanceof HorizontalInteractionFunnelBlock - && !state.get(HorizontalInteractionFunnelBlock.PUSHING); - - float yRot = -AngleHelper.horizontalAngle(verticalDirection) + 180; - float xRot = -90; - boolean alongX = facing.getAxis() == Axis.X; - float zRotLast = alongX ^ facing.getAxisDirection() == AxisDirection.POSITIVE ? 180 : 0; - if (reverse) - zRotLast += 180; - - MatrixStacker.of(ms) - .rotateZ(alongX ? xRot : 0) - .rotateX(alongX ? 0 : xRot) - .rotateY(yRot) - .rotateZ(zRotLast); + if (facing.getAxis() + .isVertical()) { + super.rotate(state, ms); return; } - super.rotate(state, ms); + boolean isBeltFunnel = state.getBlock() instanceof BeltFunnelBlock; + if (isBeltFunnel && state.get(BeltFunnelBlock.SHAPE) != Shape.EXTENDED) { + Shape shape = state.get(BeltFunnelBlock.SHAPE); + super.rotate(state, ms); + if (shape == Shape.PULLING || shape == Shape.PUSHING) + MatrixStacker.of(ms).rotateX(-22.5f); + return; + } + + Direction verticalDirection = DirectionHelper.rotateAround(getSide(), facing.rotateY() + .getAxis()); + if (facing.getAxis() == Axis.Z) + verticalDirection = verticalDirection.getOpposite(); + + float yRot = -AngleHelper.horizontalAngle(verticalDirection) + 180; + float xRot = -90; + boolean alongX = facing.getAxis() == Axis.X; + float zRotLast = alongX ^ facing.getAxisDirection() == AxisDirection.POSITIVE ? 180 : 0; + + + MatrixStacker.of(ms) + .rotateZ(alongX ? xRot : 0) + .rotateX(alongX ? 0 : xRot) + .rotateY(yRot) + .rotateZ(zRotLast); } @Override @@ -99,9 +108,8 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided { if (facing == null) return false; - if (AllBlocks.BRASS_BELT_FUNNEL.has(state)) - return state.get(BeltFunnelBlock.SHAPE) == Shape.RETRACTED ? direction == facing - : direction == Direction.UP; + if (state.getBlock() instanceof BeltFunnelBlock) + return state.get(BeltFunnelBlock.SHAPE) != Shape.EXTENDED ? direction == facing : direction == Direction.UP; return direction.getAxis() != facing.getAxis(); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelItem.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelItem.java index 8afae31c4..1c8a21912 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelItem.java @@ -1,9 +1,12 @@ package com.simibubi.create.content.logistics.block.funnel; +import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity; + import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.item.BlockItem; import net.minecraft.item.BlockItemUseContext; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -37,8 +40,12 @@ public class FunnelItem extends BlockItem { return state; Direction direction = state.get(FunnelBlock.FACING); if (!direction.getAxis() - .isHorizontal()) + .isHorizontal()) { + TileEntity tileEntity = world.getTileEntity(pos.offset(direction.getOpposite())); + if (tileEntity instanceof ChuteTileEntity && ((ChuteTileEntity) tileEntity).getItemMotion() > 0) + state = state.with(FunnelBlock.FACING, direction.getOpposite()); return state; + } FunnelBlock block = (FunnelBlock) getBlock(); Block beltFunnelBlock = block.getEquivalentBeltFunnel(world, pos, state) @@ -46,7 +53,7 @@ public class FunnelItem extends BlockItem { BlockState equivalentBeltFunnel = beltFunnelBlock.getStateForPlacement(ctx) .with(BeltFunnelBlock.HORIZONTAL_FACING, direction); if (BeltFunnelBlock.isOnValidBelt(equivalentBeltFunnel, world, pos)) - return BeltFunnelBlock.updateShape(equivalentBeltFunnel, world, pos); + return equivalentBeltFunnel; return state; } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelRenderer.java index 2c49402db..ed0f46a09 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelRenderer.java @@ -42,6 +42,7 @@ public class FunnelRenderer extends SmartTileEntityRenderer { msr.centre() .rotateY(horizontalAngle) .unCentre(); + ms.translate(0, 0, -te.getFlapOffset()); for (int segment = 0; segment <= 3; segment++) { ms.push(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java index f57aee3ac..378b19249 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java @@ -5,10 +5,16 @@ import java.util.function.Function; import java.util.function.Predicate; import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.contraptions.components.saw.SawTileEntity; +import com.simibubi.create.content.contraptions.goggles.IHaveHoveringInformation; +import com.simibubi.create.content.contraptions.relays.belt.BeltHelper; +import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; +import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingValue; +import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; @@ -22,11 +28,16 @@ import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.state.properties.BlockStateProperties; +import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.items.CapabilityItemHandler; +import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; -public class FunnelTileEntity extends SmartTileEntity { +public class FunnelTileEntity extends SmartTileEntity implements IHaveHoveringInformation { private FilteringBehaviour filtering; private InvManipulationBehaviour invManipulation; @@ -57,8 +68,16 @@ public class FunnelTileEntity extends SmartTileEntity { if (FunnelBlock.getFunnelFacing(state) == Direction.UP && autoExtractor.hasInventory()) return Mode.HOPPER; if (state.getBlock() instanceof BeltFunnelBlock) { - boolean pushing = state.get(BeltFunnelBlock.PUSHING); - return pushing ? Mode.PUSHING_TO_BELT : Mode.TAKING_FROM_BELT; + Shape shape = state.get(BeltFunnelBlock.SHAPE); + if (shape == Shape.PULLING) + return Mode.TAKING_FROM_BELT; + if (shape == Shape.PUSHING) + return Mode.PUSHING_TO_BELT; + + BeltTileEntity belt = BeltHelper.getSegmentTE(world, pos.down()); + if (belt != null) + return belt.getMovementFacing() == state.get(BeltFunnelBlock.HORIZONTAL_FACING) ? Mode.PUSHING_TO_BELT + : Mode.TAKING_FROM_BELT; } return Mode.COLLECT; } @@ -140,9 +159,7 @@ public class FunnelTileEntity extends SmartTileEntity { if (!inputBehaviour.canInsertFromSide(facing)) return; - int amountToExtract = invManipulation.getAmountFromFilter(); - if (!filtering.isActive()) - amountToExtract = 1; + int amountToExtract = getAmountToExtract(); ItemStack stack = invManipulation.extract(amountToExtract, s -> inputBehaviour.handleInsertion(s, facing, true) .isEmpty()); if (stack.isEmpty()) @@ -153,6 +170,15 @@ public class FunnelTileEntity extends SmartTileEntity { startCooldown(); } + public int getAmountToExtract() { + if (!supportsAmountOnFilter()) + return -1; + int amountToExtract = invManipulation.getAmountFromFilter(); + if (!filtering.isActive()) + amountToExtract = 1; + return amountToExtract; + } + private int startCooldown() { return extractionCooldown = AllConfigs.SERVER.logistics.defaultExtractionTimer.get(); } @@ -194,12 +220,18 @@ public class FunnelTileEntity extends SmartTileEntity { private boolean supportsAmountOnFilter() { BlockState blockState = getBlockState(); - boolean pushingToBelt = blockState.getBlock() instanceof HorizontalInteractionFunnelBlock - && blockState.get(HorizontalInteractionFunnelBlock.PUSHING); + boolean beltFunnelsupportsAmount = false; + if (blockState.getBlock() instanceof BeltFunnelBlock) { + Shape shape = blockState.get(BeltFunnelBlock.SHAPE); + if (shape == Shape.PUSHING) + beltFunnelsupportsAmount = true; + else + beltFunnelsupportsAmount = BeltHelper.getSegmentTE(world, pos.down()) != null; + } boolean hopper = FunnelBlock.getFunnelFacing(blockState) == Direction.UP && !world.getBlockState(pos.up()) .getMaterial() .isReplaceable(); - return pushingToBelt || hopper; + return beltFunnelsupportsAmount || hopper; } private boolean supportsDirectBeltInput(Direction side) { @@ -236,8 +268,26 @@ public class FunnelTileEntity extends SmartTileEntity { } public boolean hasFlap() { - return getBlockState().getBlock() instanceof BeltFunnelBlock - && getBlockState().get(BeltFunnelBlock.SHAPE) == Shape.RETRACTED; + BlockState blockState = getBlockState(); + if (!(blockState.getBlock() instanceof BeltFunnelBlock)) + return false; + return true; + } + + public float getFlapOffset() { + BlockState blockState = getBlockState(); + if (!(blockState.getBlock() instanceof BeltFunnelBlock)) + return 0; + switch (blockState.get(BeltFunnelBlock.SHAPE)) { + default: + case RETRACTED: + return 0; + case EXTENDED: + return 8 / 16f; + case PULLING: + case PUSHING: + return -2 / 16f; + } } @Override @@ -270,4 +320,46 @@ public class FunnelTileEntity extends SmartTileEntity { .onFunnelTransfer(world, pos, stack); } + @Override + // Hint players not to use funnels like 0.2 transposers + public boolean addToTooltip(List tooltip, boolean isPlayerSneaking) { + if (isPlayerSneaking) + return false; + BlockState state = getBlockState(); + if (!(state.getBlock() instanceof FunnelBlock)) + return false; + Direction funnelFacing = FunnelBlock.getFunnelFacing(state); + + if (world.getBlockState(pos.offset(funnelFacing.getOpposite())) + .getMaterial() + .isReplaceable()) + return false; + + BlockPos inputPos = pos.offset(funnelFacing); + TileEntity tileEntity = world.getTileEntity(inputPos); + if (tileEntity == null) + return false; + if (tileEntity instanceof BeltTileEntity) + return false; + if (tileEntity instanceof SawTileEntity) + return false; + if (tileEntity instanceof ChuteTileEntity) + return false; + + LazyOptional capability = tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY); + if (!capability.isPresent()) + return false; + + if (funnelFacing == Direction.DOWN) { + TooltipHelper.addHint(tooltip, "hint.upward_funnel"); + return true; + } + if (!funnelFacing.getAxis() + .isHorizontal()) + return false; + + TooltipHelper.addHint(tooltip, "hint.horizontal_funnel"); + return true; + } + } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/HorizontalInteractionFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/HorizontalInteractionFunnelBlock.java deleted file mode 100644 index 3216e1d8a..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/HorizontalInteractionFunnelBlock.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.simibubi.create.content.logistics.block.funnel; - -import com.simibubi.create.AllTileEntities; -import com.simibubi.create.content.contraptions.wrench.IWrenchable; -import com.tterrag.registrate.util.entry.BlockEntry; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.HorizontalBlock; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUseContext; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.StateContainer.Builder; -import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorld; -import net.minecraft.world.IWorldReader; -import net.minecraft.world.World; - -public abstract class HorizontalInteractionFunnelBlock extends HorizontalBlock implements IWrenchable { - - public static final BooleanProperty POWERED = BlockStateProperties.POWERED; - public static final BooleanProperty PUSHING = BooleanProperty.create("pushing"); - private BlockEntry parent; - - public HorizontalInteractionFunnelBlock(BlockEntry parent, Properties p_i48377_1_) { - super(p_i48377_1_); - this.parent = parent; - BlockState defaultState = getDefaultState().with(PUSHING, true); - if (hasPoweredProperty()) - defaultState = defaultState.with(POWERED, false); - setDefaultState(defaultState); - } - - public abstract boolean hasPoweredProperty(); - - @Override - public boolean hasTileEntity(BlockState state) { - return true; - } - - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.FUNNEL.create(); - } - - @Override - protected void fillStateContainer(Builder p_206840_1_) { - if (hasPoweredProperty()) - p_206840_1_.add(POWERED); - super.fillStateContainer(p_206840_1_.add(HORIZONTAL_FACING, PUSHING)); - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext ctx) { - BlockState stateForPlacement = super.getStateForPlacement(ctx); - if (hasPoweredProperty()) - stateForPlacement = stateForPlacement.with(POWERED, ctx.getWorld() - .isBlockPowered(ctx.getPos())); - return stateForPlacement; - } - - @Override - public void onReplaced(BlockState p_196243_1_, World p_196243_2_, BlockPos p_196243_3_, BlockState p_196243_4_, - boolean p_196243_5_) { - if (p_196243_1_.hasTileEntity() - && (p_196243_1_.getBlock() != p_196243_4_.getBlock() && !FunnelBlock.isFunnel(p_196243_4_) - || !p_196243_4_.hasTileEntity())) { - p_196243_2_.removeTileEntity(p_196243_3_); - } - } - - @Override - public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, - PlayerEntity player) { - return parent.asStack(); - } - - @Override - public BlockState updatePostPlacement(BlockState state, Direction direction, BlockState neighbour, IWorld world, - BlockPos pos, BlockPos p_196271_6_) { - if (!canStillInteract(state, world, pos)) { - BlockState parentState = parent.getDefaultState(); - if (state.has(POWERED) && state.get(POWERED)) - parentState = parentState.with(POWERED, true); - return parentState.with(FunnelBlock.FACING, state.get(HORIZONTAL_FACING)); - } - return state; - } - - @Override - public boolean isValidPosition(BlockState state, IWorldReader world, BlockPos pos) { - return !world.getBlockState(pos.offset(state.get(HORIZONTAL_FACING) - .getOpposite())) - .getShape(world, pos) - .isEmpty(); - } - - protected abstract boolean canStillInteract(BlockState state, IWorldReader world, BlockPos pos); - - @Override - public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, - boolean isMoving) { - if (!hasPoweredProperty()) - return; - if (worldIn.isRemote) - return; - boolean previouslyPowered = state.get(POWERED); - if (previouslyPowered != worldIn.isBlockPowered(pos)) - worldIn.setBlockState(pos, state.cycle(POWERED), 2); - } - - @Override - public ActionResultType onWrenched(BlockState state, ItemUseContext context) { - if (!context.getWorld().isRemote) - context.getWorld() - .setBlockState(context.getPos(), state.cycle(PUSHING)); - return ActionResultType.SUCCESS; - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPointHandler.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPointHandler.java index 573bc1c28..e461ed678 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPointHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPointHandler.java @@ -14,6 +14,7 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.player.ClientPlayerEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -94,15 +95,28 @@ public class ArmInteractionPointHandler { int removed = 0; for (Iterator iterator = currentSelection.iterator(); iterator.hasNext();) { ArmInteractionPoint point = iterator.next(); - if (point.pos.withinDistance(pos, ArmTileEntity.getRange())) + if (point.pos.withinDistance(pos, ArmTileEntity.getRange())) continue; iterator.remove(); removed++; } - if (removed > 0) - Minecraft.getInstance().player.sendStatusMessage(new StringTextComponent( - TextFormatting.RED + Lang.translate("mechanical_arm.points_outside_range", removed)), true); + ClientPlayerEntity player = Minecraft.getInstance().player; + if (removed > 0) { + player.sendStatusMessage(Lang.createTranslationTextComponent("mechanical_arm.points_outside_range", removed) + .applyTextStyle(TextFormatting.RED), true); + } else { + int inputs = 0; + int outputs = 0; + for (ArmInteractionPoint armInteractionPoint : currentSelection) { + if (armInteractionPoint.mode == Mode.DEPOSIT) + outputs++; + else + inputs++; + } + player.sendStatusMessage(Lang.createTranslationTextComponent("mechanical_arm.summary", inputs, outputs) + .applyTextStyle(TextFormatting.WHITE), true); + } AllPackets.channel.sendToServer(new ArmPlacementPacket(currentSelection, pos)); currentSelection.clear(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java index 26af2e2ad..56505fd29 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java @@ -12,6 +12,7 @@ import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.widgets.InterpolatedAngle; +import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; @@ -137,7 +138,7 @@ public class ArmTileEntity extends KineticTileEntity { sendData(); } } - + @Override @OnlyIn(Dist.CLIENT) public AxisAlignedBB getRenderBoundingBox() { @@ -202,7 +203,7 @@ public class ArmTileEntity extends KineticTileEntity { protected void searchForItem() { if (redstoneLocked) return; - + boolean foundInput = false; // for round robin, we start looking after the last used index, for default we // start at 0; @@ -256,7 +257,7 @@ public class ArmTileEntity extends KineticTileEntity { ArmInteractionPoint armInteractionPoint = outputs.get(i); if (!armInteractionPoint.isStillValid(world)) continue; - + ItemStack remainder = armInteractionPoint.insert(world, held, true); if (remainder.equals(heldItem, false)) continue; @@ -345,7 +346,7 @@ public class ArmTileEntity extends KineticTileEntity { } return stack; } - + public void redstoneUpdate() { if (world.isRemote) return; @@ -441,6 +442,21 @@ public class ArmTileEntity extends KineticTileEntity { return AllConfigs.SERVER.logistics.mechanicalArmRange.get(); } + @Override + public boolean addToTooltip(List tooltip, boolean isPlayerSneaking) { + if (super.addToTooltip(tooltip, isPlayerSneaking)) + return true; + if (isPlayerSneaking) + return false; + if (!inputs.isEmpty()) + return false; + if (!outputs.isEmpty()) + return false; + + TooltipHelper.addHint(tooltip, "hint.mechanical_arm_no_targets"); + return true; + } + private class SelectionModeValueBox extends CenteredSideValueBoxTransform { public SelectionModeValueBox() { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java index 8a62ab387..b5e74e900 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java @@ -21,9 +21,8 @@ public class CrushingRecipeGen extends ProcessingRecipeGen { .output(.25f, Items.BLAZE_POWDER, 3)), PRISMARINE_CRYSTALS = create(() -> Items.PRISMARINE_CRYSTALS, b -> b.duration(150) - .output(Items.PRISMARINE_SHARD, 2) - .output(.75f, Items.QUARTZ, 2) - .output(.25f, Items.PRISMARINE_SHARD, 2) + .output(1f, Items.QUARTZ, 1) + .output(.5f, Items.QUARTZ, 2) .output(.1f, Items.GLOWSTONE_DUST, 2)), OBSIDIAN = create(() -> Blocks.OBSIDIAN, b -> b.duration(500) diff --git a/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java b/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java index fea30a1d3..c4d6b40af 100644 --- a/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java +++ b/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java @@ -1,6 +1,8 @@ package com.simibubi.create.foundation.item; import static net.minecraft.util.text.TextFormatting.DARK_GRAY; +import static net.minecraft.util.text.TextFormatting.GOLD; +import static net.minecraft.util.text.TextFormatting.GRAY; import java.util.ArrayList; import java.util.HashMap; @@ -13,6 +15,7 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.AllSections; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineBlock; +import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.content.curiosities.tools.AllToolTiers; import com.simibubi.create.foundation.item.ItemDescription.Palette; import com.simibubi.create.foundation.utility.Lang; @@ -42,6 +45,15 @@ public class TooltipHelper { + Lang.translate("tooltip.holdKey", colorFormat + Lang.translate("tooltip.keyShift") + DARK_GRAY); } + public static void addHint(List tooltip, String hintKey, Object... messageParams) { + String spacing = IHaveGoggleInformation.spacing; + tooltip.add(spacing + GOLD + Lang.translate(hintKey + ".title")); + String hint = Lang.translate(hintKey); + List cutString = TooltipHelper.cutString(spacing + hint, GRAY, TextFormatting.WHITE); + for (int i = 0; i < cutString.size(); i++) + tooltip.add((i == 0 ? "" : spacing) + cutString.get(i)); + } + public static void referTo(IItemProvider item, Supplier itemWithTooltip) { tooltipReferrals.put(item.asItem(), () -> itemWithTooltip.get() .asItem() diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringBehaviour.java index 0c4caec59..48c259053 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringBehaviour.java @@ -19,6 +19,7 @@ import net.minecraft.util.Direction; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.items.ItemHandlerHelper; public class FilteringBehaviour extends TileEntityBehaviour { @@ -105,7 +106,7 @@ public class FilteringBehaviour extends TileEntityBehaviour { recipeFilter = true; return this; } - + public FilteringBehaviour forFluids() { fluidFilter = true; return this; @@ -142,9 +143,11 @@ public class FilteringBehaviour extends TileEntityBehaviour { } public void setFilter(ItemStack stack) { + boolean confirm = ItemHandlerHelper.canItemStacksStack(stack, filter); filter = stack.copy(); callback.accept(filter); - count = (filter.getItem() instanceof FilterItem) ? 0 : Math.min(stack.getCount(), stack.getMaxStackSize()); + count = !confirm ? 0 + : (filter.getItem() instanceof FilterItem) ? 0 : Math.min(stack.getCount(), stack.getMaxStackSize()); forceClientState = true; tileEntity.markDirty(); @@ -177,7 +180,7 @@ public class FilteringBehaviour extends TileEntityBehaviour { public boolean test(ItemStack stack) { return !isActive() || filter.isEmpty() || FilterItem.test(tileEntity.getWorld(), stack, filter); } - + public boolean test(FluidStack stack) { return !isActive() || filter.isEmpty() || FilterItem.test(tileEntity.getWorld(), stack, filter); } diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringHandler.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringHandler.java index c911e8680..77b6de8b0 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringHandler.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringHandler.java @@ -5,6 +5,7 @@ import com.simibubi.create.content.logistics.item.filter.FilterItem; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform.Sided; +import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.RaycastHelper; import net.minecraft.client.Minecraft; @@ -19,6 +20,8 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RayTraceResult; +import net.minecraft.util.text.TextFormatting; +import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -26,6 +29,7 @@ import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.items.ItemHandlerHelper; @EventBusSubscriber public class FilteringHandler { @@ -56,27 +60,43 @@ public class FilteringHandler { return; if (behaviour.slotPositioning instanceof ValueBoxTransform.Sided) ((Sided) behaviour.slotPositioning).fromSide(ray.getFace()); + if (!behaviour.testHit(ray.getHitVec())) + return; - if (behaviour.testHit(ray.getHitVec())) { - if (event.getSide() != LogicalSide.CLIENT) { - ItemStack heldItem = player.getHeldItem(hand) - .copy(); - if (!player.isCreative()) { - if (behaviour.getFilter() - .getItem() instanceof FilterItem) - player.inventory.placeItemBackInInventory(world, behaviour.getFilter()); - if (heldItem.getItem() instanceof FilterItem) - player.getHeldItem(hand) - .shrink(1); - } - if (heldItem.getItem() instanceof FilterItem) - heldItem.setCount(1); - behaviour.setFilter(heldItem); + ItemStack toApply = player.getHeldItem(hand) + .copy(); + + if (event.getSide() != LogicalSide.CLIENT) { + if (!player.isCreative()) { + if (behaviour.getFilter() + .getItem() instanceof FilterItem) + player.inventory.placeItemBackInInventory(world, behaviour.getFilter()); + if (toApply.getItem() instanceof FilterItem) + player.getHeldItem(hand) + .shrink(1); } - event.setCanceled(true); - event.setCancellationResult(ActionResultType.SUCCESS); - world.playSound(null, pos, SoundEvents.ENTITY_ITEM_FRAME_ADD_ITEM, SoundCategory.BLOCKS, .25f, .1f); + if (toApply.getItem() instanceof FilterItem) + toApply.setCount(1); + behaviour.setFilter(toApply); + + } else { + ItemStack filter = behaviour.getFilter(); + String feedback = "apply_click_again"; + if (toApply.getItem() instanceof FilterItem || !behaviour.isCountVisible()) + feedback = "apply"; + else if (ItemHandlerHelper.canItemStacksStack(toApply, filter)) + feedback = "apply_count"; + String translationKey = world.getBlockState(pos) + .getBlock() + .getTranslationKey(); + String formattedText = new TranslationTextComponent(translationKey).getFormattedText(); + player.sendStatusMessage(Lang.createTranslationTextComponent("logistics.filter." + feedback, formattedText) + .applyTextStyle(TextFormatting.WHITE), true); } + + event.setCanceled(true); + event.setCancellationResult(ActionResultType.SUCCESS); + world.playSound(null, pos, SoundEvents.ENTITY_ITEM_FRAME_ADD_ITEM, SoundCategory.BLOCKS, .25f, .1f); } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/com/simibubi/create/foundation/utility/SuperByteBuffer.java b/src/main/java/com/simibubi/create/foundation/utility/SuperByteBuffer.java index ce9c01c80..9e89d23c3 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/SuperByteBuffer.java +++ b/src/main/java/com/simibubi/create/foundation/utility/SuperByteBuffer.java @@ -280,5 +280,9 @@ public class SuperByteBuffer { return ((int) sky) << 20 | ((int) block) << 4; } + + public boolean isEmpty() { + return template.limit() == 0; + } } diff --git a/src/main/resources/assets/create/lang/default/messages.json b/src/main/resources/assets/create/lang/default/messages.json index 18eb79e92..6a397e433 100644 --- a/src/main/resources/assets/create/lang/default/messages.json +++ b/src/main/resources/assets/create/lang/default/messages.json @@ -161,6 +161,10 @@ "create.logistics.firstFrequency": "Freq. #1", "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "Applied filter to %1$s.", + "create.logistics.filter.apply_click_again": "Applied filter to %1$s, click again to copy the amount.", + "create.logistics.filter.apply_count": "Applied extraction count to filter.", + "create.gui.goggles.generator_stats": "Generator Stats:", "create.gui.goggles.kinetic_stats": "Kinetic Stats:", "create.gui.goggles.at_current_speed": "At current Speed", @@ -205,7 +209,7 @@ "create.schematicAndQuill.noTarget": "Hold [Ctrl] to select Air blocks.", "create.schematicAndQuill.abort": "Removed selection.", "create.schematicAndQuill.title": "Schematic Name:", - "create.schematicAndQuill.convert": "Save and Deploy Immediately", + "create.schematicAndQuill.convetr": "Save and Deploy Immediately", "create.schematicAndQuill.fallbackName": "My Schematic", "create.schematicAndQuill.saved": "Saved as %1$s", @@ -415,6 +419,7 @@ "create.mechanical_arm.extract_from": "Take items from %1$s", "create.mechanical_arm.deposit_to": "Deposit items to %1$s", + "create.mechanical_arm.summary": "Mechanical Arm has %1$s input(s) and %2$s output(s).", "create.mechanical_arm.points_outside_range": "%1$s selected interaction point(s) removed due to range limitations.", "create.logistics.when_multiple_outputs_available": "When Multiple Outputs Available", @@ -431,6 +436,15 @@ "create.tunnel.selection_mode.randomize": "Randomize", "create.tunnel.selection_mode.synchronize": "Synchronize Inputs", + "create.hint.mechanical_arm_no_targets.title": "No Targets", + "create.hint.mechanical_arm_no_targets": "It appears this _Mechnanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", + "create.hint.horizontal_funnel.title": "Horizontal Funnels", + "create.hint.horizontal_funnel": "cannot transfer between inventories _directly_. Try running a _Mechanical_ _Belt_ or _Depot_ below your funnel to extract items from Inventories.", + "create.hint.upward_funnel.title": "Funnels facing upward", + "create.hint.upward_funnel": "can only transfer items inserted by _Arms_, fan-powered _Chutes_, or items _thrown_ at them. Try building some _Chutes_ if you are looking to move your items _vertically_.", + "create.hint.empty_bearing.title": "Update Bearing", + "create.hint.empty_bearing": "_Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", + "create.gui.config.overlay1": "Hi :)", "create.gui.config.overlay2": "This is a sample overlay", "create.gui.config.overlay3": "Click or drag with your mouse", diff --git a/src/main/resources/assets/create/models/block/belt_funnel/block_connected.json b/src/main/resources/assets/create/models/block/belt_funnel/block_connected.json new file mode 100644 index 000000000..447d36f7a --- /dev/null +++ b/src/main/resources/assets/create/models/block/belt_funnel/block_connected.json @@ -0,0 +1,232 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "2": "create:block/brass_funnel_neutral", + "3": "create:block/brass_funnel_back", + "5": "create:block/brass_funnel_tall", + "6": "create:block/brass_funnel", + "7": "create:block/brass_funnel_plating", + "particle": "create:block/brass_block" + }, + "elements": [ + { + "name": "LeftWall", + "from": [14, -3, 5], + "to": [16, 0, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [8, 8, 9, 9.5], "texture": "#7"}, + "east": {"uv": [13, 0, 16, 6], "rotation": 90, "texture": "#2"}, + "south": {"uv": [15, 8, 16, 9.5], "texture": "#7"} + } + }, + { + "name": "LeftWall", + "from": [0, -3, 5], + "to": [2, 0, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [15, 8, 16, 9.5], "texture": "#7"}, + "south": {"uv": [8, 7.5, 9, 9], "texture": "#7"}, + "west": {"uv": [13, 6, 16, 0], "rotation": 90, "texture": "#2"} + } + }, + { + "name": "LeftWall", + "from": [0, 0, 5], + "to": [16, 16, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [8, 0, 16, 8], "texture": "#7"}, + "east": {"uv": [0, 6, 16, 12], "rotation": 90, "texture": "#2"}, + "south": {"uv": [8, 0, 16, 8], "texture": "#7"}, + "west": {"uv": [0, 12, 16, 6], "rotation": 90, "texture": "#2"}, + "up": {"uv": [0, 0, 8, 3], "texture": "#7"} + } + }, + { + "name": "LeftBottom", + "from": [15, -5, 5], + "to": [16, -3, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "east": {"uv": [5, 15, 8, 16], "texture": "#7"}, + "west": {"uv": [5, 15, 8, 16], "texture": "#7"}, + "down": {"uv": [0, 0, 1, 6], "texture": "#particle"} + } + }, + { + "name": "LeftBottom", + "from": [0, -5, 5], + "to": [1, -3, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "east": {"uv": [8, 15, 5, 16], "texture": "#7"}, + "west": {"uv": [8, 15, 5, 16], "texture": "#7"}, + "down": {"uv": [1, 0, 0, 6], "texture": "#particle"} + } + }, + { + "name": "LeftBottom", + "from": [15, -5, 11], + "to": [16, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 11]}, + "faces": { + "east": {"uv": [5, 14.5, 7.5, 16], "texture": "#7"}, + "south": {"uv": [7.5, 13, 8, 14.5], "texture": "#7"}, + "west": {"uv": [5.5, 14.5, 8, 16], "texture": "#7"}, + "up": {"uv": [0, 0, 1, 5], "texture": "#particle"}, + "down": {"uv": [0, 0, 1, 5], "texture": "#particle"} + } + }, + { + "name": "LeftBottom", + "from": [0, -5, 11], + "to": [1, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 11]}, + "faces": { + "east": {"uv": [8, 14.5, 5.5, 16], "texture": "#7"}, + "south": {"uv": [8, 13, 7.5, 14.5], "texture": "#7"}, + "west": {"uv": [7.5, 14.5, 5, 16], "texture": "#7"}, + "up": {"uv": [1, 0, 0, 5], "texture": "#particle"}, + "down": {"uv": [1, 0, 0, 5], "texture": "#particle"} + } + }, + { + "name": "LeftBottom", + "from": [15, -5, 0], + "to": [16, -2, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [8, 13, 7.5, 14.5], "texture": "#7"}, + "east": {"uv": [7.5, 14.5, 5, 16], "texture": "#7"}, + "west": {"uv": [8, 14.5, 5.5, 16], "texture": "#7"}, + "up": {"uv": [0, 5, 1, 0], "texture": "#particle"}, + "down": {"uv": [0, 5, 1, 0], "texture": "#particle"} + } + }, + { + "name": "LeftBottom", + "from": [0, -5, 0], + "to": [1, -2, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [7.5, 13, 8, 14.5], "texture": "#7"}, + "east": {"uv": [5.5, 14.5, 8, 16], "texture": "#7"}, + "west": {"uv": [5, 14.5, 7.5, 16], "texture": "#7"}, + "up": {"uv": [1, 5, 0, 0], "texture": "#particle"}, + "down": {"uv": [1, 5, 0, 0], "texture": "#particle"} + } + }, + { + "name": "BackExtension", + "from": [3, -2, 10], + "to": [13, 13, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]}, + "faces": { + "east": {"uv": [9, 6, 16, 8], "rotation": 90, "texture": "#3"}, + "west": {"uv": [9, 6, 16, 8], "rotation": 270, "texture": "#3"}, + "up": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"} + } + }, + { + "name": "BackExtension", + "from": [3, -2, 2], + "to": [13, 13, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 10]}, + "faces": { + "east": {"uv": [9, 8, 16, 6], "rotation": 90, "texture": "#3"}, + "west": {"uv": [9, 8, 16, 6], "rotation": 270, "texture": "#3"}, + "up": {"uv": [9.5, 4, 14.5, 2], "texture": "#3"} + } + }, + { + "name": "MidExtension", + "from": [2, -2, 8], + "to": [14, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "east": {"uv": [1, 6, 9, 8], "rotation": 90, "texture": "#3"}, + "south": {"uv": [8, 0, 16, 6], "rotation": 270, "texture": "#3"}, + "west": {"uv": [1, 8, 9, 6], "rotation": 90, "texture": "#3"}, + "up": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"} + } + }, + { + "name": "MidExtension", + "from": [2, -2, 4], + "to": [14, 14, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [8, 6, 16, 0], "rotation": 270, "texture": "#3"}, + "east": {"uv": [1, 8, 9, 6], "rotation": 90, "texture": "#3"}, + "west": {"uv": [1, 6, 9, 8], "rotation": 90, "texture": "#3"}, + "up": {"uv": [8, 0, 6, 6], "rotation": 90, "texture": "#3"} + } + }, + { + "name": "Back", + "from": [2.1, -2.1, -2.1], + "to": [13.9, 13.95, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 10]}, + "faces": { + "north": {"uv": [15, 1, 9, 9], "texture": "#7"}, + "east": {"uv": [0, 4, 16, 0], "rotation": 90, "texture": "#5"}, + "south": {"uv": [0, 16, 16, 4], "rotation": 90, "texture": "#5"}, + "west": {"uv": [0, 4, 16, 0], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 4, 12, 0], "texture": "#6"}, + "down": {"uv": [0, 4, 12, 0], "rotation": 180, "texture": "#6"} + } + }, + { + "name": "Back", + "from": [2.1, -2.1, 14], + "to": [13.9, 13.95, 18.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]}, + "faces": { + "north": {"uv": [0, 4, 16, 16], "rotation": 90, "texture": "#5"}, + "east": {"uv": [0, 0, 16, 4], "rotation": 90, "texture": "#5"}, + "south": {"uv": [9, 1, 15, 9], "texture": "#7"}, + "west": {"uv": [0, 0, 16, 4], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 0, 12, 4], "texture": "#6"}, + "down": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"} + } + }, + { + "name": "RearBackPlate", + "from": [1, -5, 0], + "to": [15, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]}, + "faces": { + "north": {"uv": [0.5, 13, 7.5, 14.5], "texture": "#7"}, + "south": {"uv": [0.5, 13, 7.5, 14.5], "texture": "#7"}, + "up": {"uv": [1, 0, 15, 16], "texture": "#particle"}, + "down": {"uv": [1, 0, 15, 16], "texture": "#particle"} + } + } + ], + "groups": [ + { + "name": "BeltFunnel", + "origin": [9, -4, 8], + "children": [ + { + "name": "FrontSection", + "origin": [9, -4, 8], + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8] + }, + { + "name": "Extension", + "origin": [9, -4, 8], + "children": [9, 10, 11, 12] + }, + { + "name": "Base", + "origin": [9, -4, 8], + "children": [13, 14, 15] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/belt_funnel/block_extended.json b/src/main/resources/assets/create/models/block/belt_funnel/block_extended.json index dca272755..073985dd2 100644 --- a/src/main/resources/assets/create/models/block/belt_funnel/block_extended.json +++ b/src/main/resources/assets/create/models/block/belt_funnel/block_extended.json @@ -2,7 +2,7 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "2": "create:block/brass_funnel_push", + "2": "create:block/brass_funnel_neutral", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall", "6": "create:block/brass_funnel", @@ -68,7 +68,7 @@ "to": [14, 16, 6], "rotation": {"angle": 0, "axis": "y", "origin": [6, -8, 0]}, "faces": { - "north": {"uv": [1, 0, 7, 3], "texture": "#7"}, + "north": {"uv": [9, 13, 15, 16], "texture": "#7"}, "south": {"uv": [9, 0, 15, 3], "texture": "#7"}, "up": {"uv": [1, 0, 7, 3], "texture": "#7"}, "down": {"uv": [2, 0, 14, 6], "rotation": 180, "texture": "#2"} @@ -140,18 +140,19 @@ { "name": "RearBackPlate", "from": [1, -5, 5], - "to": [15, -2, 16], + "to": [15, -2, 16.05], "rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]}, "faces": { "north": {"uv": [1, 13, 15, 16], "texture": "#particle"}, "south": {"uv": [0.5, 13, 7.5, 14.5], "texture": "#7"}, - "up": {"uv": [1, 5, 15, 16], "texture": "#particle"} + "up": {"uv": [1, 5, 15, 16], "texture": "#particle"}, + "down": {"uv": [1, 0, 15, 11], "texture": "#particle"} } }, { "name": "BackPlateLeft", "from": [15, -5, 6], - "to": [16, -2, 16], + "to": [16, -2, 16.05], "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]}, "faces": { "east": {"uv": [0, 14.5, 5, 16], "texture": "#7"}, @@ -163,7 +164,7 @@ { "name": "BackPlateLeft", "from": [0, -5, 6], - "to": [1, -2, 16], + "to": [1, -2, 16.05], "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]}, "faces": { "south": {"uv": [0, 14.5, 0.5, 16], "texture": "#7"}, diff --git a/src/main/resources/assets/create/models/block/belt_funnel/block_pulling.json b/src/main/resources/assets/create/models/block/belt_funnel/block_pulling.json new file mode 100644 index 000000000..adfbea4bf --- /dev/null +++ b/src/main/resources/assets/create/models/block/belt_funnel/block_pulling.json @@ -0,0 +1,160 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "3": "create:block/brass_funnel_back", + "5": "create:block/brass_funnel_tall", + "6": "create:block/brass_funnel", + "7": "create:block/brass_funnel_plating", + "2_2": "create:block/brass_funnel_pull", + "particle": "create:block/brass_block" + }, + "elements": [ + { + "name": "LeftWall", + "from": [14, -2, 6], + "to": [16.05, 1, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [0, 8, 1, 9.5], "texture": "#7"}, + "east": {"uv": [13, 0, 16, 6], "rotation": 90, "texture": "#2_2"}, + "south": {"uv": [15, 8, 16, 9.5], "texture": "#7"}, + "west": {"uv": [13, 0, 16, 6], "rotation": 90, "texture": "#2_2"}, + "down": {"uv": [14, 0, 16, 6], "texture": "#2_2"} + } + }, + { + "name": "LeftWall", + "from": [-0.05, -2, 6], + "to": [2, 1, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [7, 8, 8, 9.5], "texture": "#7"}, + "east": {"uv": [13, 6, 16, 0], "rotation": 90, "texture": "#2_2"}, + "south": {"uv": [8, 7.5, 9, 9], "texture": "#7"}, + "west": {"uv": [13, 6, 16, 0], "rotation": 90, "texture": "#2_2"}, + "down": {"uv": [0, 0, 2, 6], "texture": "#2_2"} + } + }, + { + "name": "LeftWall", + "from": [14, 1, 6], + "to": [16.05, 17, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [0, 0, 1, 8], "texture": "#7"}, + "east": {"uv": [0, 6, 16, 12], "rotation": 90, "texture": "#2_2"}, + "south": {"uv": [15, 0, 16, 8], "texture": "#7"}, + "west": {"uv": [0, 12, 16, 6], "rotation": 90, "texture": "#2_2"}, + "up": {"uv": [14, 0, 16, 6], "texture": "#2_2"} + } + }, + { + "name": "LeftWall", + "from": [-0.05, 1, 6], + "to": [2, 17, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [7, 0, 8, 8], "texture": "#7"}, + "east": {"uv": [0, 6, 16, 12], "rotation": 90, "texture": "#2_2"}, + "south": {"uv": [8, 0, 9, 8], "texture": "#7"}, + "west": {"uv": [0, 12, 16, 6], "rotation": 90, "texture": "#2_2"}, + "up": {"uv": [16, 0, 14, 6], "texture": "#2_2"} + } + }, + { + "name": "Top", + "from": [2, 11, 6], + "to": [14, 17, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [1, 0, 7, 3], "texture": "#7"}, + "south": {"uv": [9, 0, 15, 3], "texture": "#7"}, + "up": {"uv": [2, 0, 14, 6], "texture": "#2_2"}, + "down": {"uv": [2, 0, 14, 6], "rotation": 180, "texture": "#2_2"} + } + }, + { + "name": "Back", + "from": [2.1, -2.1, 14], + "to": [13.9, 13.95, 18.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8.1, 6]}, + "faces": { + "north": {"uv": [0, 6, 6, 14], "texture": "#3"}, + "east": {"uv": [0, 0, 16, 4], "rotation": 90, "texture": "#5"}, + "south": {"uv": [9, 1, 15, 9], "texture": "#7"}, + "west": {"uv": [0, 0, 16, 4], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 0, 12, 4], "texture": "#6"}, + "down": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"} + } + }, + { + "name": "Back", + "from": [2.1, 2.9, 11.9], + "to": [13.9, 13.95, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8.1, 22]}, + "faces": { + "east": {"uv": [5, 1, 16, 3], "rotation": 270, "texture": "#5"}, + "west": {"uv": [5, 3, 16, 1], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 3, 12, 1], "texture": "#6"} + } + }, + { + "name": "RearBackPlate", + "from": [0, -5, 13], + "to": [16, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]}, + "faces": { + "north": {"uv": [0, 13, 8, 14.5], "texture": "#7"}, + "east": {"uv": [6.5, 14.5, 8, 16], "texture": "#7"}, + "south": {"uv": [0, 13, 8, 14.5], "texture": "#7"}, + "west": {"uv": [0, 14.5, 1.5, 16], "texture": "#7"}, + "up": {"uv": [0, 13, 8, 14.5], "texture": "#7"}, + "down": {"uv": [0, 13, 8, 14.5], "texture": "#7"} + } + }, + { + "name": "RearBackPlate", + "from": [2, 9.9, 9], + "to": [14, 11.9, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 6.9, 8]}, + "faces": { + "down": {"uv": [2, 6, 14, 13], "texture": "#2_2"} + } + }, + { + "from": [1, 8, 11], + "to": [15, 15, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 6, 21]}, + "faces": { + "east": {"uv": [1, 6.5, 4.5, 8], "rotation": 90, "texture": "#3"}, + "south": {"uv": [8, 0, 11.5, 6], "rotation": 90, "texture": "#3"}, + "west": {"uv": [1, 6, 4.5, 7.5], "rotation": 90, "texture": "#3"}, + "up": {"uv": [6.5, 0, 8, 6], "rotation": 90, "texture": "#3"} + } + } + ], + "groups": [ + { + "name": "block_retracted", + "origin": [8, 8, 8], + "children": [ + { + "name": "BeltFunnel", + "origin": [9, -4, 8], + "children": [ + { + "name": "FrontSection", + "origin": [9, -4, 8], + "children": [0, 1, 2, 3, 4] + }, + { + "name": "Base", + "origin": [9, -4, 8], + "children": [5, 6, 7, 8] + } + ] + }, 9] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/belt_funnel/block_pushing.json b/src/main/resources/assets/create/models/block/belt_funnel/block_pushing.json new file mode 100644 index 000000000..a1c751f64 --- /dev/null +++ b/src/main/resources/assets/create/models/block/belt_funnel/block_pushing.json @@ -0,0 +1,160 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "3": "create:block/brass_funnel_back", + "5": "create:block/brass_funnel_tall", + "6": "create:block/brass_funnel", + "7": "create:block/brass_funnel_plating", + "2_1": "create:block/brass_funnel_push", + "particle": "create:block/brass_block" + }, + "elements": [ + { + "name": "LeftWall", + "from": [14, -2, 6], + "to": [16.05, 1, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [0, 8, 1, 9.5], "texture": "#7"}, + "east": {"uv": [13, 0, 16, 6], "rotation": 90, "texture": "#2_1"}, + "south": {"uv": [15, 8, 16, 9.5], "texture": "#7"}, + "west": {"uv": [13, 0, 16, 6], "rotation": 90, "texture": "#2_1"}, + "down": {"uv": [14, 0, 16, 6], "texture": "#2_1"} + } + }, + { + "name": "LeftWall", + "from": [-0.05, -2, 6], + "to": [2, 1, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [7, 8, 8, 9.5], "texture": "#7"}, + "east": {"uv": [13, 6, 16, 0], "rotation": 90, "texture": "#2_1"}, + "south": {"uv": [8, 7.5, 9, 9], "texture": "#7"}, + "west": {"uv": [13, 6, 16, 0], "rotation": 90, "texture": "#2_1"}, + "down": {"uv": [0, 0, 2, 6], "texture": "#2_1"} + } + }, + { + "name": "LeftWall", + "from": [14, 1, 6], + "to": [16.05, 17, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [0, 0, 1, 8], "texture": "#7"}, + "east": {"uv": [0, 6, 16, 12], "rotation": 90, "texture": "#2_1"}, + "south": {"uv": [15, 0, 16, 8], "texture": "#7"}, + "west": {"uv": [0, 12, 16, 6], "rotation": 90, "texture": "#2_1"}, + "up": {"uv": [14, 0, 16, 6], "texture": "#2_1"} + } + }, + { + "name": "LeftWall", + "from": [-0.05, 1, 6], + "to": [2, 17, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [7, 0, 8, 8], "texture": "#7"}, + "east": {"uv": [0, 6, 16, 12], "rotation": 90, "texture": "#2_1"}, + "south": {"uv": [8, 0, 9, 8], "texture": "#7"}, + "west": {"uv": [0, 12, 16, 6], "rotation": 90, "texture": "#2_1"}, + "up": {"uv": [16, 0, 14, 6], "texture": "#2_1"} + } + }, + { + "name": "Top", + "from": [2, 11, 6], + "to": [14, 17, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 15, 12]}, + "faces": { + "north": {"uv": [1, 0, 7, 3], "texture": "#7"}, + "south": {"uv": [9, 0, 15, 3], "texture": "#7"}, + "up": {"uv": [2, 0, 14, 6], "texture": "#2_1"}, + "down": {"uv": [2, 0, 14, 6], "rotation": 180, "texture": "#2_1"} + } + }, + { + "name": "Back", + "from": [2.1, -2.1, 14], + "to": [13.9, 13.95, 18.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8.1, 6]}, + "faces": { + "north": {"uv": [0, 6, 6, 14], "texture": "#3"}, + "east": {"uv": [0, 0, 16, 4], "rotation": 90, "texture": "#5"}, + "south": {"uv": [9, 1, 15, 9], "texture": "#7"}, + "west": {"uv": [0, 0, 16, 4], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 0, 12, 4], "texture": "#6"}, + "down": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"} + } + }, + { + "name": "Back", + "from": [2.1, 2.9, 11.9], + "to": [13.9, 13.95, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8.1, 22]}, + "faces": { + "east": {"uv": [5, 1, 16, 3], "rotation": 270, "texture": "#5"}, + "west": {"uv": [5, 3, 16, 1], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 3, 12, 1], "texture": "#6"} + } + }, + { + "name": "RearBackPlate", + "from": [0, -5, 13], + "to": [16, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]}, + "faces": { + "north": {"uv": [0, 13, 8, 14.5], "texture": "#7"}, + "east": {"uv": [6.5, 14.5, 8, 16], "texture": "#7"}, + "south": {"uv": [0, 13, 8, 14.5], "texture": "#7"}, + "west": {"uv": [0, 14.5, 1.5, 16], "texture": "#7"}, + "up": {"uv": [0, 13, 8, 14.5], "texture": "#7"}, + "down": {"uv": [0, 13, 8, 14.5], "texture": "#7"} + } + }, + { + "name": "RearBackPlate", + "from": [2, 9.9, 9], + "to": [14, 11.9, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 6.9, 8]}, + "faces": { + "down": {"uv": [2, 6, 14, 13], "texture": "#2_1"} + } + }, + { + "from": [1, 8, 11], + "to": [15, 15, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 6, 21]}, + "faces": { + "east": {"uv": [1, 6.5, 4.5, 8], "rotation": 90, "texture": "#3"}, + "south": {"uv": [8, 0, 11.5, 6], "rotation": 90, "texture": "#3"}, + "west": {"uv": [1, 6, 4.5, 7.5], "rotation": 90, "texture": "#3"}, + "up": {"uv": [6.5, 0, 8, 6], "rotation": 90, "texture": "#3"} + } + } + ], + "groups": [ + { + "name": "block_retracted", + "origin": [8, 8, 8], + "children": [ + { + "name": "BeltFunnel", + "origin": [9, -4, 8], + "children": [ + { + "name": "FrontSection", + "origin": [9, -4, 8], + "children": [0, 1, 2, 3, 4] + }, + { + "name": "Base", + "origin": [9, -4, 8], + "children": [5, 6, 7, 8] + } + ] + }, 9] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/belt_funnel/block_retracted.json b/src/main/resources/assets/create/models/block/belt_funnel/block_retracted.json index 3eafc8c41..6336e2bd4 100644 --- a/src/main/resources/assets/create/models/block/belt_funnel/block_retracted.json +++ b/src/main/resources/assets/create/models/block/belt_funnel/block_retracted.json @@ -1,8 +1,9 @@ { "credit": "Made with Blockbench", "parent": "block/block", + "texture_size": [32, 32], "textures": { - "2": "create:block/brass_funnel_push", + "2": "create:block/brass_funnel_neutral", "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall", "6": "create:block/brass_funnel", @@ -124,7 +125,7 @@ { "name": "RearBackPlate", "from": [1, -5, 10], - "to": [15, -2, 16], + "to": [15, -2, 16.05], "rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]}, "faces": { "north": {"uv": [1, 13, 15, 16], "texture": "#particle"}, @@ -135,26 +136,26 @@ { "name": "BackPlateLeft", "from": [15, -5, 14], - "to": [16, -2, 16], + "to": [16, -2, 16.05], "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]}, "faces": { "east": {"uv": [0, 14.5, 1, 16], "texture": "#7"}, "south": {"uv": [7.5, 14.5, 8, 16], "texture": "#7"}, "west": {"uv": [7, 14.5, 8, 16], "texture": "#7"}, - "up": {"uv": [0, 14.5, 5.5, 15], "rotation": 270, "texture": "#7"}, + "up": {"uv": [0, 15, 1, 14.5], "rotation": 270, "texture": "#7"}, "down": {"uv": [0, 0, 1, 2], "texture": "#particle"} } }, { "name": "BackPlateLeft", "from": [0, -5, 14], - "to": [1, -2, 16], + "to": [1, -2, 16.05], "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]}, "faces": { "east": {"uv": [8, 14.5, 7, 16], "texture": "#7"}, "south": {"uv": [0, 14.5, 0.5, 16], "texture": "#7"}, "west": {"uv": [1, 14.5, 0, 16], "texture": "#7"}, - "up": {"uv": [0, 15, 5.5, 14.5], "rotation": 270, "texture": "#7"}, + "up": {"uv": [0, 15, 1, 14.5], "rotation": 270, "texture": "#7"}, "down": {"uv": [0, 0, 1, 2], "texture": "#particle"} } }, diff --git a/src/main/resources/assets/create/models/item/wrench/gear.json b/src/main/resources/assets/create/models/item/wrench/gear.json index 3142c72d7..05ffe5665 100644 --- a/src/main/resources/assets/create/models/item/wrench/gear.json +++ b/src/main/resources/assets/create/models/item/wrench/gear.json @@ -2,63 +2,64 @@ "credit": "Made with Blockbench", "parent": "create:item/wrench/item", "textures": { - "0": "block/stripped_spruce_log" + "5": "create:item/wrench", + "particle": "create:item/wrench" }, "elements": [ { "name": "Cog", - "from": [8, 7, 6], - "to": [9, 8, 10], - "rotation": {"angle": -45, "axis": "y", "origin": [8.5, 7, 8]}, - "faces": { - "north": {"uv": [3, 6, 4, 7], "rotation": 180, "texture": "#0"}, - "east": {"uv": [5, 6, 9, 7], "rotation": 180, "texture": "#0"}, - "south": {"uv": [3, 6, 4, 7], "rotation": 180, "texture": "#0"}, - "west": {"uv": [5, 6, 9, 7], "rotation": 180, "texture": "#0"}, - "up": {"uv": [5, 6, 6, 10], "rotation": 180, "texture": "#0"}, - "down": {"uv": [5, 6, 6, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "Cog", - "from": [8, 7, 6], - "to": [9, 8, 10], - "rotation": {"angle": 45, "axis": "y", "origin": [8.5, 7, 8]}, - "faces": { - "north": {"uv": [3, 6, 4, 7], "rotation": 180, "texture": "#0"}, - "east": {"uv": [5, 6, 9, 7], "rotation": 180, "texture": "#0"}, - "south": {"uv": [3, 6, 4, 7], "rotation": 180, "texture": "#0"}, - "west": {"uv": [5, 6, 9, 7], "rotation": 180, "texture": "#0"}, - "up": {"uv": [5, 6, 6, 10], "rotation": 180, "texture": "#0"}, - "down": {"uv": [5, 6, 6, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "Cog", - "from": [8, 7, 6], - "to": [9, 8, 10], + "from": [8.5, 7, 6], + "to": [9.5, 8, 10], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 7, 8]}, "faces": { - "north": {"uv": [3, 6, 4, 7], "rotation": 180, "texture": "#0"}, - "east": {"uv": [5, 6, 9, 7], "rotation": 180, "texture": "#0"}, - "south": {"uv": [3, 6, 4, 7], "rotation": 180, "texture": "#0"}, - "west": {"uv": [5, 6, 9, 7], "rotation": 180, "texture": "#0"}, - "up": {"uv": [5, 6, 6, 10], "rotation": 180, "texture": "#0"}, - "down": {"uv": [5, 6, 6, 10], "rotation": 180, "texture": "#0"} + "north": {"uv": [10, 14, 12, 16], "texture": "#5"}, + "east": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"}, + "south": {"uv": [10, 14, 12, 16], "texture": "#5"}, + "west": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [2, 14, 10, 16], "rotation": 90, "texture": "#5"}, + "down": {"uv": [2, 14, 10, 16], "rotation": 90, "texture": "#5"} } }, { "name": "Cog", - "from": [6.5, 7, 7.5], - "to": [10.5, 8, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 7, 8]}, + "from": [8.5, 7, 6], + "to": [9.5, 8, 10], + "rotation": {"angle": 45, "axis": "y", "origin": [9, 7, 8]}, "faces": { - "north": {"uv": [3, 6, 7, 7], "rotation": 180, "texture": "#0"}, - "east": {"uv": [3, 6, 4, 7], "rotation": 180, "texture": "#0"}, - "south": {"uv": [3, 6, 7, 7], "rotation": 180, "texture": "#0"}, - "west": {"uv": [7, 4, 8, 5], "rotation": 180, "texture": "#0"}, - "up": {"uv": [5, 6, 9, 7], "rotation": 180, "texture": "#0"}, - "down": {"uv": [5, 6, 9, 7], "rotation": 180, "texture": "#0"} + "north": {"uv": [10, 14, 12, 16], "texture": "#5"}, + "east": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"}, + "south": {"uv": [10, 14, 12, 16], "texture": "#5"}, + "west": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [2, 14, 10, 16], "rotation": 90, "texture": "#5"}, + "down": {"uv": [2, 14, 10, 16], "rotation": 90, "texture": "#5"} + } + }, + { + "name": "Cog", + "from": [7, 7, 7.5], + "to": [11, 8, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 7, 8]}, + "faces": { + "north": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"}, + "east": {"uv": [10, 14, 12, 16], "texture": "#5"}, + "south": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [10, 14, 12, 16], "texture": "#5"}, + "up": {"uv": [2, 14, 10, 16], "texture": "#5"}, + "down": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"} + } + }, + { + "name": "Cog", + "from": [7, 7, 7.5], + "to": [11, 8, 8.5], + "rotation": {"angle": 45, "axis": "y", "origin": [9, 7, 8]}, + "faces": { + "north": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"}, + "east": {"uv": [10, 14, 12, 16], "texture": "#5"}, + "south": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [10, 14, 12, 16], "texture": "#5"}, + "up": {"uv": [2, 14, 10, 16], "texture": "#5"}, + "down": {"uv": [2, 14, 10, 16], "rotation": 180, "texture": "#5"} } } ] diff --git a/src/main/resources/assets/create/models/item/wrench/item.json b/src/main/resources/assets/create/models/item/wrench/item.json index 65880cabe..656143148 100644 --- a/src/main/resources/assets/create/models/item/wrench/item.json +++ b/src/main/resources/assets/create/models/item/wrench/item.json @@ -1,18 +1,113 @@ { "credit": "Made with Blockbench", "parent": "block/block", - "ambientocclusion": false, "textures": { - "0": "block/stripped_spruce_log", - "1": "block/spruce_log", - "2": "create:block/brass_casing", - "3": "block/andesite", - "particle": "block/stripped_spruce_log" + "5": "create:item/wrench", + "particle": "create:item/wrench" }, + "elements": [ + { + "name": "handle", + "from": [7.6, 0, 7.5], + "to": [8.6, 7, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 11, 8]}, + "faces": { + "north": {"uv": [2, 0, 4, 14], "texture": "#5"}, + "east": {"uv": [2, 0, 4, 14], "texture": "#5"}, + "south": {"uv": [2, 0, 4, 14], "texture": "#5"}, + "west": {"uv": [2, 0, 4, 14], "texture": "#5"}, + "down": {"uv": [2, 12, 4, 14], "texture": "#5"} + } + }, + { + "name": "handle", + "from": [6.5, 8.5, 7.5], + "to": [8.5, 14.5, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 20, 8]}, + "faces": { + "north": {"uv": [12, 0, 16, 12], "texture": "#5"}, + "east": {"uv": [14, 0, 16, 12], "texture": "#5"}, + "south": {"uv": [16, 0, 12, 12], "texture": "#5"}, + "west": {"uv": [16, 0, 14, 12], "texture": "#5"}, + "up": {"uv": [5, 7, 7, 8], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#5"} + } + }, + { + "name": "axle", + "from": [8.35355, 5, 7.14645], + "to": [9.35355, 12, 8.14645], + "rotation": {"angle": -45, "axis": "y", "origin": [8.5, 11, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 14], "texture": "#5"}, + "east": {"uv": [0, 2, 2, 16], "texture": "#5"}, + "south": {"uv": [0, 0, 2, 14], "texture": "#5"}, + "west": {"uv": [0, 2, 2, 16], "texture": "#5"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#5"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#5"} + } + }, + { + "name": "top thing", + "from": [7, 14, 7], + "to": [11, 15, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 11, 7]}, + "faces": { + "north": {"uv": [4, 8, 12, 10], "texture": "#5"}, + "east": {"uv": [4, 0, 8, 2], "texture": "#5"}, + "south": {"uv": [12, 8, 4, 10], "texture": "#5"}, + "west": {"uv": [4, 6, 8, 8], "rotation": 180, "texture": "#5"}, + "up": {"uv": [4, 0, 8, 8], "rotation": 90, "texture": "#5"}, + "down": {"uv": [8, 0, 12, 8], "rotation": 90, "texture": "#5"} + } + }, + { + "name": "bottom thing", + "from": [8, 12, 7], + "to": [11, 13, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 11, 7]}, + "faces": { + "north": {"uv": [10, 8, 4, 10], "rotation": 180, "texture": "#5"}, + "east": {"uv": [4, 0, 8, 2], "rotation": 180, "texture": "#5"}, + "south": {"uv": [4, 8, 10, 10], "rotation": 180, "texture": "#5"}, + "west": {"uv": [4, 6, 8, 8], "texture": "#5"}, + "up": {"uv": [8, 0, 12, 6], "rotation": 90, "texture": "#5"}, + "down": {"uv": [4, 0, 8, 6], "rotation": 90, "texture": "#5"} + } + }, + { + "name": "gear case top", + "from": [6.4, 8, 7], + "to": [10.4, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 11, 8]}, + "faces": { + "north": {"uv": [4, 10, 12, 12], "texture": "#5"}, + "east": {"uv": [4, 10, 6, 14], "rotation": 90, "texture": "#5"}, + "south": {"uv": [12, 10, 4, 12], "texture": "#5"}, + "west": {"uv": [4, 10, 6, 14], "rotation": 90, "texture": "#5"}, + "up": {"uv": [4, 10, 12, 14], "rotation": 180, "texture": "#5"}, + "down": {"uv": [6, 0, 9, 2], "texture": "#5"} + } + }, + { + "name": "gear case", + "from": [7.5, 6, 7], + "to": [9.5, 7, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8.5, 11, 8]}, + "faces": { + "north": {"uv": [12, 12, 16, 14], "texture": "#5"}, + "east": {"uv": [12, 12, 16, 14], "texture": "#5"}, + "south": {"uv": [12, 12, 16, 14], "texture": "#5"}, + "west": {"uv": [12, 12, 16, 14], "texture": "#5"}, + "up": {"uv": [12, 12, 16, 16], "texture": "#5"}, + "down": {"uv": [12, 12, 16, 16], "texture": "#5"} + } + } + ], "display": { "thirdperson_righthand": { - "rotation": [0, -180, 0], - "translation": [0, 3.75, 0] + "rotation": [0, 90, 0], + "translation": [0, 3.25, 0] }, "thirdperson_lefthand": { "translation": [0, 3.75, 0] @@ -40,90 +135,11 @@ "translation": [0.5, 0.5, 0] } }, - "elements": [ + "groups": [ { - "name": "handle", - "from": [7.5, 0, 7.5], - "to": [8.5, 14, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 11, 8]}, - "faces": { - "north": {"uv": [1, 0, 2, 14], "texture": "#1"}, - "east": {"uv": [1, 0, 2, 14], "texture": "#1"}, - "south": {"uv": [1, 0, 2, 14], "texture": "#1"}, - "west": {"uv": [1, 0, 2, 14], "texture": "#1"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#1"} - } - }, - { - "name": "axle", - "from": [8.35355, 5, 7.14645], - "to": [9.35355, 12, 8.14645], - "rotation": {"angle": -45, "axis": "y", "origin": [8.5, 11, 8]}, - "faces": { - "north": {"uv": [5, 2, 6, 9], "texture": "#3"}, - "east": {"uv": [5, 2, 6, 9], "texture": "#3"}, - "south": {"uv": [0, 0, 1, 7], "texture": "#3"}, - "west": {"uv": [4, 3, 5, 10], "texture": "#3"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#3"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#3"} - } - }, - { - "name": "top thing", - "from": [7, 14, 7], - "to": [11, 15, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 11, 7]}, - "faces": { - "north": {"uv": [6, 1, 10, 2], "texture": "#2"}, - "east": {"uv": [6, 1, 8, 2], "texture": "#2"}, - "south": {"uv": [6, 1, 10, 2], "texture": "#2"}, - "west": {"uv": [6, 1, 8, 2], "texture": "#2"}, - "up": {"uv": [5, 0, 9, 2], "texture": "#2"}, - "down": {"uv": [6, 0, 10, 2], "texture": "#2"} - } - }, - { - "name": "bottom thing", - "from": [8, 12, 7], - "to": [11, 13, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 11, 7]}, - "faces": { - "north": {"uv": [6, 1, 9, 2], "texture": "#2"}, - "east": {"uv": [6, 1, 8, 2], "texture": "#2"}, - "south": {"uv": [5, 1, 8, 2], "texture": "#2"}, - "west": {"uv": [7, 1, 9, 2], "texture": "#2"}, - "up": {"uv": [6, 0, 9, 2], "texture": "#2"}, - "down": {"uv": [7, 0, 10, 2], "texture": "#2"} - } - }, - { - "name": "gear case top", - "from": [7, 8, 7], - "to": [10, 9, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 11, 8]}, - "faces": { - "north": {"uv": [10, 0, 13, 1], "texture": "#2"}, - "east": {"uv": [7, 0, 9, 1], "texture": "#2"}, - "south": {"uv": [7, 0, 10, 1], "texture": "#2"}, - "west": {"uv": [9, 0, 11, 1], "texture": "#2"}, - "up": {"uv": [7, 0, 10, 2], "texture": "#2"}, - "down": {"uv": [6, 0, 9, 2], "texture": "#2"} - } - }, - { - "name": "gear case", - "from": [7.5, 6.5, 7], - "to": [9.5, 7.5, 9], - "rotation": {"angle": 45, "axis": "y", "origin": [8.5, 11, 8]}, - "faces": { - "north": {"uv": [0, 0, 2, 1], "texture": "#1"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#1"}, - "south": {"uv": [0, 0, 2, 1], "texture": "#1"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } + "name": "item", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6] } ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/andesite_funnel_neutral.png b/src/main/resources/assets/create/textures/block/andesite_funnel_neutral.png new file mode 100644 index 000000000..dde514836 Binary files /dev/null and b/src/main/resources/assets/create/textures/block/andesite_funnel_neutral.png differ diff --git a/src/main/resources/assets/create/textures/block/andesite_funnel_plating.png b/src/main/resources/assets/create/textures/block/andesite_funnel_plating.png index 71aacc4f3..6f4ed26a8 100644 Binary files a/src/main/resources/assets/create/textures/block/andesite_funnel_plating.png and b/src/main/resources/assets/create/textures/block/andesite_funnel_plating.png differ diff --git a/src/main/resources/assets/create/textures/block/brass_funnel_neutral.png b/src/main/resources/assets/create/textures/block/brass_funnel_neutral.png new file mode 100644 index 000000000..11adc7eb0 Binary files /dev/null and b/src/main/resources/assets/create/textures/block/brass_funnel_neutral.png differ diff --git a/src/main/resources/assets/create/textures/block/brass_funnel_plating.png b/src/main/resources/assets/create/textures/block/brass_funnel_plating.png index e8a3ca30e..76fe0d542 100644 Binary files a/src/main/resources/assets/create/textures/block/brass_funnel_plating.png and b/src/main/resources/assets/create/textures/block/brass_funnel_plating.png differ diff --git a/src/main/resources/assets/create/textures/item/wrench.png b/src/main/resources/assets/create/textures/item/wrench.png new file mode 100644 index 000000000..ea2724cb5 Binary files /dev/null and b/src/main/resources/assets/create/textures/item/wrench.png differ