Merge branch 'mc1.15/dev' of https://github.com/Creators-of-Create/Create into mc1.15/snownee

# Conflicts:
#	src/generated/resources/.cache/cache
#	src/generated/resources/assets/create/blockstates/fluid_pipe.json
This commit is contained in:
Snownee 2020-11-12 08:03:24 +08:00
commit c730517fb4
74 changed files with 1880 additions and 895 deletions

View file

@ -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

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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 @@
}
}
]
}
}

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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();

View file

@ -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)

View file

@ -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;

View file

@ -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> CONTRAPTION = new Compartment<>();
public static final Compartment<Pair<Contraption, Integer>> 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<RenderType> blockLayers = RenderType.getBlockLayers();
buffer.getBuffer(RenderType.getSolid());
for (int i = 0; i < blockLayers.size(); i++) {
RenderType layer = blockLayers.get(i);
Pair<Contraption, Integer> 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());

View file

@ -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<String> 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;
}
}

View file

@ -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

View file

@ -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<BasinTileEntity>, IWrenchab
protected void fillStateContainer(Builder<Block, BlockState> 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) {

View file

@ -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;

View file

@ -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);

View file

@ -0,0 +1,5 @@
package com.simibubi.create.content.contraptions.relays.elementary;
public class CogWheelPlacementHelper {
}

View file

@ -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) {

View file

@ -18,7 +18,7 @@ public class WrenchItemRenderer extends CustomRenderedItemModelRenderer<WrenchMo
float worldTime = AnimationTickHolder.getRenderTick();
float angle = worldTime * -.5f % 360;
float xOffset = -1/32f;
float xOffset = -1/16f;
ms.translate(-xOffset, 0, 0);
ms.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(angle));
ms.translate(xOffset, 0, 0);

View file

@ -14,6 +14,7 @@ import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.relays.belt.BeltHelper;
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape;
import com.simibubi.create.foundation.gui.AllIcons;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform;
@ -412,7 +413,7 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity {
return false;
if (funnelState.get(BeltFunnelBlock.HORIZONTAL_FACING) != side.getOpposite())
return false;
return !funnelState.get(BeltFunnelBlock.PUSHING);
return funnelState.get(BeltFunnelBlock.SHAPE) == Shape.EXTENDED;
}
@Override

View file

@ -5,6 +5,7 @@ import java.util.Map;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;
import com.simibubi.create.foundation.block.ITE;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour;
@ -150,7 +151,8 @@ public class ChuteBlock extends Block implements IWrenchable, ITE<ChuteTileEntit
@Override
public void neighborChanged(BlockState p_220069_1_, World world, BlockPos pos, Block p_220069_4_,
BlockPos neighbourPos, boolean p_220069_6_) {
if (pos.down().equals(neighbourPos))
if (pos.down()
.equals(neighbourPos))
withTileEntityDo(world, pos, ChuteTileEntity::blockBelowChanged);
}
@ -211,7 +213,10 @@ public class ChuteBlock extends Block implements IWrenchable, ITE<ChuteTileEntit
if (connections.get(Direction.EAST) && connections.get(Direction.WEST))
return state.with(SHAPE, Shape.INTERSECTION);
if (amtConnections == 1 && connections.get(facing)
&& !(above.getBlock() instanceof ChuteBlock && above.get(FACING) == Direction.DOWN))
&& !(above.getBlock() instanceof ChuteBlock && above.get(FACING) == Direction.DOWN)
&& !(above.getBlock() instanceof FunnelBlock && FunnelBlock.getFunnelFacing(above)
.getAxis()
.isVertical()))
return state.with(SHAPE, Shape.NORMAL);
return state.with(SHAPE, Shape.INTERSECTION);
}

View file

@ -2,39 +2,59 @@ package com.simibubi.create.content.logistics.block.funnel;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllShapes;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock;
import com.simibubi.create.content.contraptions.relays.belt.BeltSlope;
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
import com.simibubi.create.content.logistics.block.depot.DepotBlock;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
import com.simibubi.create.foundation.utility.BlockHelper;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.VoxelShaper;
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.client.particle.ParticleManager;
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.EnumProperty;
import net.minecraft.state.IProperty;
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.IStringSerializable;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorld;
import net.minecraft.world.IWorldReader;
import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public abstract class BeltFunnelBlock extends HorizontalInteractionFunnelBlock {
public abstract class BeltFunnelBlock extends HorizontalBlock implements IWrenchable {
private BlockEntry<? extends FunnelBlock> parent;
public static final BooleanProperty POWERED = BlockStateProperties.POWERED;
public static final IProperty<Shape> 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<? extends FunnelBlock> 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<Block, BlockState> 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;
}
}

View file

@ -33,20 +33,19 @@ public class BeltFunnelGenerator extends SpecialBlockStateGen {
@Override
public <T extends Block> ModelFile getModel(DataGenContext<Block, T> 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))

View file

@ -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

View file

@ -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();
}

View file

@ -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;
}

View file

@ -42,6 +42,7 @@ public class FunnelRenderer extends SmartTileEntityRenderer<FunnelTileEntity> {
msr.centre()
.rotateY(horizontalAngle)
.unCentre();
ms.translate(0, 0, -te.getFlapOffset());
for (int segment = 0; segment <= 3; segment++) {
ms.push();

View file

@ -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<String> 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<IItemHandler> 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;
}
}

View file

@ -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<? extends FunnelBlock> parent;
public HorizontalInteractionFunnelBlock(BlockEntry<? extends FunnelBlock> 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<Block, BlockState> 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;
}
}

View file

@ -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<ArmInteractionPoint> 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();

View file

@ -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<String> 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() {

View file

@ -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)

View file

@ -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<String> tooltip, String hintKey, Object... messageParams) {
String spacing = IHaveGoggleInformation.spacing;
tooltip.add(spacing + GOLD + Lang.translate(hintKey + ".title"));
String hint = Lang.translate(hintKey);
List<String> 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<? extends IItemProvider> itemWithTooltip) {
tooltipReferrals.put(item.asItem(), () -> itemWithTooltip.get()
.asItem()

View file

@ -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);
}

View file

@ -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)

View file

@ -280,5 +280,9 @@ public class SuperByteBuffer {
return ((int) sky) << 20 | ((int) block) << 4;
}
public boolean isEmpty() {
return template.limit() == 0;
}
}

View file

@ -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",

View file

@ -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]
}
]
}
]
}

View file

@ -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"},

View file

@ -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]
}
]
}

View file

@ -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]
}
]
}

View file

@ -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"}
}
},

View file

@ -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"}
}
}
]

View file

@ -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]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB