Merge branch 'mc1.15/dev' into patch-3

This commit is contained in:
simibubi 2021-02-05 17:51:41 +01:00 committed by GitHub
commit c4bc99c3ec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
297 changed files with 8855 additions and 2759 deletions

View file

@ -4,12 +4,12 @@ org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false org.gradle.daemon=false
# mod version info # mod version info
mod_version=0.3c mod_version=0.3.1
minecraft_version=1.15.2 minecraft_version=1.15.2
forge_version=31.2.31 forge_version=31.2.31
# dependency versions # dependency versions
registrate_version=0.0.4.18 registrate_version=1.0.0-rc.17
jei_version=6.0.0.2 jei_version=6.0.0.2
# curseforge information # curseforge information

View file

@ -16,7 +16,7 @@ a579c40c43dc2174afb66f42d00d0c4a0efaaeee assets/create/blockstates/andesite_bric
96b5284693da168ab8e0809d86515b5f1a7e763f assets/create/blockstates/andesite_cobblestone_stairs.json 96b5284693da168ab8e0809d86515b5f1a7e763f assets/create/blockstates/andesite_cobblestone_stairs.json
82bd82270aff7d51e9239680ef4dd7b5c899ceb0 assets/create/blockstates/andesite_cobblestone_wall.json 82bd82270aff7d51e9239680ef4dd7b5c899ceb0 assets/create/blockstates/andesite_cobblestone_wall.json
9639b901ffdd2ecccab5575c5c9e6c7b5c901e02 assets/create/blockstates/andesite_encased_shaft.json 9639b901ffdd2ecccab5575c5c9e6c7b5c901e02 assets/create/blockstates/andesite_encased_shaft.json
11908c2f8603e61bec88010bc6d0890e6339c6b1 assets/create/blockstates/andesite_funnel.json 7187eba21a32e6954261cc71008ec1834a2e8af7 assets/create/blockstates/andesite_funnel.json
398922758a6219544e5b85c91c9cf8a543b437e5 assets/create/blockstates/andesite_pillar.json 398922758a6219544e5b85c91c9cf8a543b437e5 assets/create/blockstates/andesite_pillar.json
1d2d8081581e07d9be4b382aede4f2de4401cc6b assets/create/blockstates/andesite_tunnel.json 1d2d8081581e07d9be4b382aede4f2de4401cc6b assets/create/blockstates/andesite_tunnel.json
e555e3c2b2d3f01440e48db4ba88f7e00fd99b6f assets/create/blockstates/basin.json e555e3c2b2d3f01440e48db4ba88f7e00fd99b6f assets/create/blockstates/basin.json
@ -34,7 +34,7 @@ ee1299a15fca849eb42bf81507f85a54c167bbfe assets/create/blockstates/brass_belt_fu
8b1dd00adcc7e74c5a9feed069e2610b15a338cb assets/create/blockstates/brass_block.json 8b1dd00adcc7e74c5a9feed069e2610b15a338cb assets/create/blockstates/brass_block.json
b8dd6e505943e06706d0718ece620ab3cf943650 assets/create/blockstates/brass_casing.json b8dd6e505943e06706d0718ece620ab3cf943650 assets/create/blockstates/brass_casing.json
288bad07593a8a2c8efaf44bba0ffb0011d36cd3 assets/create/blockstates/brass_encased_shaft.json 288bad07593a8a2c8efaf44bba0ffb0011d36cd3 assets/create/blockstates/brass_encased_shaft.json
3057e1121117c0cd651c288cd8e2d46bdf64afb1 assets/create/blockstates/brass_funnel.json 8b5e88dea4e10ba3c74f0f161e49fed31a376ea1 assets/create/blockstates/brass_funnel.json
672eedcd3520c6d39603449165a23be9c612c620 assets/create/blockstates/brass_tunnel.json 672eedcd3520c6d39603449165a23be9c612c620 assets/create/blockstates/brass_tunnel.json
11ebdd9bd0815833e62ec1bea03a4cdd86ce00f3 assets/create/blockstates/brown_sail.json 11ebdd9bd0815833e62ec1bea03a4cdd86ce00f3 assets/create/blockstates/brown_sail.json
e81608346d43406ee72cae0f78b8bcfb37ba2d75 assets/create/blockstates/brown_seat.json e81608346d43406ee72cae0f78b8bcfb37ba2d75 assets/create/blockstates/brown_seat.json
@ -140,7 +140,7 @@ de8a40b7daf1497d5aecee47a43b3e0b1d030b00 assets/create/blockstates/fancy_scoria_
fc9ac0a7e7191b93516719455a17177fa6524ecc assets/create/blockstates/fancy_weathered_limestone_bricks_slab.json fc9ac0a7e7191b93516719455a17177fa6524ecc assets/create/blockstates/fancy_weathered_limestone_bricks_slab.json
b2a7c321b1795f20e7433f81a55ce4683de081b8 assets/create/blockstates/fancy_weathered_limestone_bricks_stairs.json b2a7c321b1795f20e7433f81a55ce4683de081b8 assets/create/blockstates/fancy_weathered_limestone_bricks_stairs.json
6372fe02ba0065acb0758121c45a15a1a8fdc5de assets/create/blockstates/fancy_weathered_limestone_bricks_wall.json 6372fe02ba0065acb0758121c45a15a1a8fdc5de assets/create/blockstates/fancy_weathered_limestone_bricks_wall.json
499aade14db59f62b46e8a266998feb41e1922a1 assets/create/blockstates/fluid_pipe.json 4c3e0500f9382d2e426e823fe876f57f4d7ee3b4 assets/create/blockstates/fluid_pipe.json
f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json
5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json 5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json
e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json
@ -157,6 +157,8 @@ afff479c0e5284771afa9e7ce513595fe65860ee assets/create/blockstates/gabbro_cobble
a1f31a194129cfb65e335b3b96490f9275f9c564 assets/create/blockstates/gabbro_cobblestone_stairs.json a1f31a194129cfb65e335b3b96490f9275f9c564 assets/create/blockstates/gabbro_cobblestone_stairs.json
a64d8d0924c0b5b192f355343dd9b3a440875f6a assets/create/blockstates/gabbro_cobblestone_wall.json a64d8d0924c0b5b192f355343dd9b3a440875f6a assets/create/blockstates/gabbro_cobblestone_wall.json
a6b44e8a1c4ce0c7442b2384b41ad36dd133f19b assets/create/blockstates/gabbro_pillar.json a6b44e8a1c4ce0c7442b2384b41ad36dd133f19b assets/create/blockstates/gabbro_pillar.json
2d7ffcb339b0a38b98935a382ac2a164866255b1 assets/create/blockstates/gantry_pinion.json
9fa39a44bba30c5ae8fa245b122a837c705462b4 assets/create/blockstates/gantry_shaft.json
eca1f0e56efdadb241f42dc6ebb036f1d52213a9 assets/create/blockstates/gearbox.json eca1f0e56efdadb241f42dc6ebb036f1d52213a9 assets/create/blockstates/gearbox.json
f34814b17cde3231a1dfb271f3dabf8d6de4fbf6 assets/create/blockstates/gearshift.json f34814b17cde3231a1dfb271f3dabf8d6de4fbf6 assets/create/blockstates/gearshift.json
93f8bdc22d9a5e04268964e35e4285c8cbf2b89d assets/create/blockstates/glass_fluid_pipe.json 93f8bdc22d9a5e04268964e35e4285c8cbf2b89d assets/create/blockstates/glass_fluid_pipe.json
@ -335,7 +337,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl
d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json
92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json
61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json 61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json
9e7ea57c58889fa0021e3c4f19da3f763108399f assets/create/blockstates/radial_chassis.json bdd56f32ce0a148b6e466a55ab2777f69fc08cfc assets/create/blockstates/radial_chassis.json
45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json 45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json
da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json
722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json 722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json
@ -363,6 +365,7 @@ b6e50f46a02f833f2f2bafa8585a909b6da5e229 assets/create/blockstates/scoria_cobble
81931eb1027dfb42ba4b2186185a4c0a36e0dbe4 assets/create/blockstates/sequenced_gearshift.json 81931eb1027dfb42ba4b2186185a4c0a36e0dbe4 assets/create/blockstates/sequenced_gearshift.json
c4c3613ad353e721e7109628aa06ab0664d0862b assets/create/blockstates/shadow_steel_casing.json c4c3613ad353e721e7109628aa06ab0664d0862b assets/create/blockstates/shadow_steel_casing.json
79ae6d86a829b9ce82fce68a6377d3810fcfcb10 assets/create/blockstates/shaft.json 79ae6d86a829b9ce82fce68a6377d3810fcfcb10 assets/create/blockstates/shaft.json
fa4ffec5eac02c0180226d994d51756e44f85674 assets/create/blockstates/smart_chute.json
f0f72cc1faacc8f37c8ac1833c22eb910771c800 assets/create/blockstates/smart_fluid_pipe.json f0f72cc1faacc8f37c8ac1833c22eb910771c800 assets/create/blockstates/smart_fluid_pipe.json
e815bfd854c2653f10828bb11950f7fb991d7efc assets/create/blockstates/speedometer.json e815bfd854c2653f10828bb11950f7fb991d7efc assets/create/blockstates/speedometer.json
1cb7cdbefa0ff199263782809287854b9d85074c assets/create/blockstates/spout.json 1cb7cdbefa0ff199263782809287854b9d85074c assets/create/blockstates/spout.json
@ -397,17 +400,17 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json 6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
ff5ca8ad030f1dd58a05c2fef2c3788292db5bd1 assets/create/lang/en_ud.json e3f618c5b622d21880de858678d1802cbf65e615 assets/create/lang/en_ud.json
211b6a54a5e9eca29d4112aeb98796b250bd1ac7 assets/create/lang/en_us.json acc852d80378b426d7ee6cb59c169e06b6d63b25 assets/create/lang/en_us.json
0ffb102de8e43fb20a7efbd5887e01f6708642a1 assets/create/lang/unfinished/de_de.json 1f5803d0479848c114b3c2b55956dabac01accad assets/create/lang/unfinished/de_de.json
f1ae1b2b0e4b686bdee17cf357fb999462a90a56 assets/create/lang/unfinished/fr_fr.json c81d5b374365ca8fcce1ff7a199b28e3c969c878 assets/create/lang/unfinished/fr_fr.json
8634445232b6492effe3c790a6a6abdfc606d8c1 assets/create/lang/unfinished/it_it.json 5ba7a1a73fb3d08b3777325266c8ed0360302eba assets/create/lang/unfinished/it_it.json
c7ba4d035c7382b9c1f9dc0f4f310a1714b59fea assets/create/lang/unfinished/ja_jp.json b7d067002e833c3f9864de2cdb401b30e6569600 assets/create/lang/unfinished/ja_jp.json
e484dee6af6788321928691164ae8b78a827afd4 assets/create/lang/unfinished/ko_kr.json 23aaf879d07a24775aeba3b98c355c992b24f28b assets/create/lang/unfinished/ko_kr.json
8bcf3a906818d89ebc9abb7ba35889d9ddc4ed32 assets/create/lang/unfinished/nl_nl.json 7372533759001f094dbcad787f01f3de7422d8c0 assets/create/lang/unfinished/nl_nl.json
015c286766cf66b8482f08636b6c2ab5924d2bf6 assets/create/lang/unfinished/pt_br.json 0d1e5d79ef196a06b273962d5ac8f2013f91209c assets/create/lang/unfinished/pt_br.json
7e337a8928f40aa29c69682b26190c134adbddb1 assets/create/lang/unfinished/ru_ru.json 6568b0bd677b4b94e98d598852c90dcee07bf4a5 assets/create/lang/unfinished/ru_ru.json
9e5e9e4583543468ad3f7fe16c12dcfbad68d8cb assets/create/lang/unfinished/zh_cn.json 1a3cd22ab046498269f80247cf6d6251f4b3dc36 assets/create/lang/unfinished/zh_cn.json
846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json
1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json
1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json
@ -455,8 +458,18 @@ ad255a62a5f54b578db06e89fd7160001f905675 assets/create/models/block/andesite_cob
a033fbac3129bba9211c6c4a0e16c905643afa39 assets/create/models/block/andesite_cobblestone_stairs_outer.json a033fbac3129bba9211c6c4a0e16c905643afa39 assets/create/models/block/andesite_cobblestone_stairs_outer.json
1c574ee47aeb6fcb305bfc95dd131e153b795a0e assets/create/models/block/andesite_cobblestone_wall_post.json 1c574ee47aeb6fcb305bfc95dd131e153b795a0e assets/create/models/block/andesite_cobblestone_wall_post.json
0ed983628e8868f77301bea1111570d3631f24fb assets/create/models/block/andesite_cobblestone_wall_side.json 0ed983628e8868f77301bea1111570d3631f24fb assets/create/models/block/andesite_cobblestone_wall_side.json
51e851b15870c0922cfbe911ef1a2f22062969f3 assets/create/models/block/andesite_funnel.json 7d5faceb2a8d67acddd39625da6d5853f07ea8bd assets/create/models/block/andesite_funnel_ceiling_pull.json
f28da6703691f1b08cfb49208f0f7bb0c5ca816d assets/create/models/block/andesite_funnel_powered.json 82393ded7287660d16549e321317dfe4488cc81d assets/create/models/block/andesite_funnel_ceiling_pull_powered.json
40d7adae3b5eecd8ed08445b2d7f43d7a0684837 assets/create/models/block/andesite_funnel_ceiling_push.json
940cace1d38fef0d5d88a391b0ba8cf690b38a44 assets/create/models/block/andesite_funnel_ceiling_push_powered.json
c77c660ea142419e93754c9702445c269dbcd0cc assets/create/models/block/andesite_funnel_floor_pull.json
16d402c764364254a704a13736bd68455edc28ba assets/create/models/block/andesite_funnel_floor_pull_powered.json
6a809d0e0e53b845b587276444cb7b64a1e15e81 assets/create/models/block/andesite_funnel_floor_push.json
6eac3e4f593e4182f5c216a900136a62ea953fb5 assets/create/models/block/andesite_funnel_floor_push_powered.json
cc187c98c62b47f5bdb6e5187f52d3d927486376 assets/create/models/block/andesite_funnel_wall_pull.json
525cf080df53a428d1321d25c2021b5f3b80a4e6 assets/create/models/block/andesite_funnel_wall_pull_powered.json
78fcd6a91a84f5824e3e0006609b6f01760238d4 assets/create/models/block/andesite_funnel_wall_push.json
6c48d1a0b8cb007a6eddaa9b2f6cb8a98334d34e assets/create/models/block/andesite_funnel_wall_push_powered.json
b1d0bb538fc8285b7d3fd77a977d78a104b83b62 assets/create/models/block/andesite_pillar.json b1d0bb538fc8285b7d3fd77a977d78a104b83b62 assets/create/models/block/andesite_pillar.json
aaf2e4259bcfcedd3400e9acb2d64c0cf06f7fb1 assets/create/models/block/andesite_tunnel/cross.json aaf2e4259bcfcedd3400e9acb2d64c0cf06f7fb1 assets/create/models/block/andesite_tunnel/cross.json
75f628178fa21a2bd301eea8d1cebf7e94f7d5cc assets/create/models/block/andesite_tunnel/straight.json 75f628178fa21a2bd301eea8d1cebf7e94f7d5cc assets/create/models/block/andesite_tunnel/straight.json
@ -497,8 +510,18 @@ dfc6250e28e12ff193a45891978ec50c406fc0c2 assets/create/models/block/brass_belt_f
97410a12b7c1461f88fb633f26ff566a0636b627 assets/create/models/block/brass_belt_funnel__retracted.json 97410a12b7c1461f88fb633f26ff566a0636b627 assets/create/models/block/brass_belt_funnel__retracted.json
71d0ad31d89d4ea3f243c6003b17f57fd168c933 assets/create/models/block/brass_block.json 71d0ad31d89d4ea3f243c6003b17f57fd168c933 assets/create/models/block/brass_block.json
166a5c053a81e6aadc24509ed24dc144a7255969 assets/create/models/block/brass_casing.json 166a5c053a81e6aadc24509ed24dc144a7255969 assets/create/models/block/brass_casing.json
838e7ab4c0c9d89eacfa078daf64995e505db896 assets/create/models/block/brass_funnel.json f5f689dc8be53e560878d3dde7b6eda6b3bf28e3 assets/create/models/block/brass_funnel_ceiling_pull.json
6099ba0366065d15d3b2821474850a1ae85485ea assets/create/models/block/brass_funnel_powered.json 142a56e522c74268d0b418985eb3fd285e371295 assets/create/models/block/brass_funnel_ceiling_pull_powered.json
e583d701961b68223778d28edc0e2686c1a5c5df assets/create/models/block/brass_funnel_ceiling_push.json
ccb2b596c3f190c26fdec06dd2b53ac3e59b1ff2 assets/create/models/block/brass_funnel_ceiling_push_powered.json
7f541d8235326fea3ecb370c4cf2913867f439ad assets/create/models/block/brass_funnel_floor_pull.json
5277d7c614991a5bce0e9234c4094f02c6d201c2 assets/create/models/block/brass_funnel_floor_pull_powered.json
1831d87b5a9784c12cecefbb9d3173c29f4ddc87 assets/create/models/block/brass_funnel_floor_push.json
6aee078641719086c9a98ebd1c0d0d61cd4d33a9 assets/create/models/block/brass_funnel_floor_push_powered.json
aa86ddeeb41aea5bd85dd488d932fbc913828b1f assets/create/models/block/brass_funnel_wall_pull.json
161b420ee4f41d436177e20314dcbe61ecec53a8 assets/create/models/block/brass_funnel_wall_pull_powered.json
24362e71ca3a6d0f2dbf129909eceb8b3937a66b assets/create/models/block/brass_funnel_wall_push.json
76cdebba3116be88926d9640917e579377ef3134 assets/create/models/block/brass_funnel_wall_push_powered.json
520087db8d479c66f85f3483af813fb668f27503 assets/create/models/block/brass_tunnel/cross.json 520087db8d479c66f85f3483af813fb668f27503 assets/create/models/block/brass_tunnel/cross.json
347ed67bf3426e323354e2d959fc9563dc7eeecd assets/create/models/block/brass_tunnel/straight.json 347ed67bf3426e323354e2d959fc9563dc7eeecd assets/create/models/block/brass_tunnel/straight.json
a959e03ca339badb49fe58ba53d86a84352e91f3 assets/create/models/block/brass_tunnel/t_left.json a959e03ca339badb49fe58ba53d86a84352e91f3 assets/create/models/block/brass_tunnel/t_left.json
@ -730,6 +753,18 @@ f278ec09c13f98ccbce1a8488d4d51c72f398ed4 assets/create/models/block/gabbro_cobbl
5e50c62a9db350f3a2c0e4b1c37a8dc0d149f287 assets/create/models/block/gabbro_cobblestone_wall_post.json 5e50c62a9db350f3a2c0e4b1c37a8dc0d149f287 assets/create/models/block/gabbro_cobblestone_wall_post.json
820235f51e7c3b4c05a327c3aa66618ea1e89c9c assets/create/models/block/gabbro_cobblestone_wall_side.json 820235f51e7c3b4c05a327c3aa66618ea1e89c9c assets/create/models/block/gabbro_cobblestone_wall_side.json
ede9c9209f9cee3d8e1ffc5008b1b8b026aee998 assets/create/models/block/gabbro_pillar.json ede9c9209f9cee3d8e1ffc5008b1b8b026aee998 assets/create/models/block/gabbro_pillar.json
f7f55d8107d9128f7be42b2a07fd99aeeba44954 assets/create/models/block/gantry_shaft_end_flipped.json
33196bb0c2f7ca356fc62854349a3ab5fdf2d119 assets/create/models/block/gantry_shaft_end_powered.json
410c0ae1995a079766cab96a3545bb61159feba3 assets/create/models/block/gantry_shaft_end_powered_flipped.json
d66f23d811a09c7e3dad5900f9851282be2f64b7 assets/create/models/block/gantry_shaft_middle_flipped.json
9551abd37c295fe2541f2aee01dd72bfb71b8ae1 assets/create/models/block/gantry_shaft_middle_powered.json
deff4f1163284c22a60d403000c0cd7553d6caff assets/create/models/block/gantry_shaft_middle_powered_flipped.json
16eb7950f81e7242d277f5b0b2710ade820f5645 assets/create/models/block/gantry_shaft_single_flipped.json
78b51bdfa1d26f909e2d3a3ddb70a5631f4fa75f assets/create/models/block/gantry_shaft_single_powered.json
c81b86c2186cbe9867ea041776c8e70059d70f7e assets/create/models/block/gantry_shaft_single_powered_flipped.json
347430ecc316d502cea2e0f90d43ff106e9cb15c assets/create/models/block/gantry_shaft_start_flipped.json
0e1a5a8f38cd6cd3e2f7d2c0d147d924414b0560 assets/create/models/block/gantry_shaft_start_powered.json
4b2f2e9eb3d426b56bb2e0f530b249469200afd0 assets/create/models/block/gantry_shaft_start_powered_flipped.json
392dd57e5b96214335867799347e21ac0d05457a assets/create/models/block/granite_bricks.json 392dd57e5b96214335867799347e21ac0d05457a assets/create/models/block/granite_bricks.json
0ee90049ce09f1f1c96063bc7239cd1fadbdb947 assets/create/models/block/granite_bricks_slab.json 0ee90049ce09f1f1c96063bc7239cd1fadbdb947 assets/create/models/block/granite_bricks_slab.json
37737d6767ba08b6bd96de1ff3b920522dc3cd51 assets/create/models/block/granite_bricks_slab_top.json 37737d6767ba08b6bd96de1ff3b920522dc3cd51 assets/create/models/block/granite_bricks_slab_top.json
@ -1126,7 +1161,7 @@ d283f86cd05ed378efd82ce46cf49bc83783069b assets/create/models/item/andesite_bric
b0f664dd6de3d0ee9afcb6223fbcd53b97fa0d65 assets/create/models/item/andesite_cobblestone_stairs.json b0f664dd6de3d0ee9afcb6223fbcd53b97fa0d65 assets/create/models/item/andesite_cobblestone_stairs.json
4856d13a72ec0af9f10226b4a4bf0567eb580b9a assets/create/models/item/andesite_cobblestone_wall.json 4856d13a72ec0af9f10226b4a4bf0567eb580b9a assets/create/models/item/andesite_cobblestone_wall.json
bc6e7469744604e578200ea87690e4dd3b25e447 assets/create/models/item/andesite_encased_shaft.json bc6e7469744604e578200ea87690e4dd3b25e447 assets/create/models/item/andesite_encased_shaft.json
7490819e7e5445019b6b8cb2538f12a5b6717a46 assets/create/models/item/andesite_funnel.json a3866ea9f44e80b64989f2b5f8a9f344da959c87 assets/create/models/item/andesite_funnel.json
75b8b00c2418b9660d35a7fabd0774925cf1c02f assets/create/models/item/andesite_pillar.json 75b8b00c2418b9660d35a7fabd0774925cf1c02f assets/create/models/item/andesite_pillar.json
c0e35daccfb398947532e9499d6bda963387cd9c assets/create/models/item/andesite_tunnel.json c0e35daccfb398947532e9499d6bda963387cd9c assets/create/models/item/andesite_tunnel.json
54875c992ec4e314826ca37257e64a96f1c0907e assets/create/models/item/bar_of_chocolate.json 54875c992ec4e314826ca37257e64a96f1c0907e assets/create/models/item/bar_of_chocolate.json
@ -1144,7 +1179,7 @@ bec96ebf3369d3cffa9bb1b8bf9f2a5cd5d0ef96 assets/create/models/item/blue_valve_ha
17d340c3678bd24cb085ba49490b2b4cb341a9e7 assets/create/models/item/brass_block.json 17d340c3678bd24cb085ba49490b2b4cb341a9e7 assets/create/models/item/brass_block.json
f5a18f4279c2e845a5967b1c2f9e807c2bb77afb assets/create/models/item/brass_casing.json f5a18f4279c2e845a5967b1c2f9e807c2bb77afb assets/create/models/item/brass_casing.json
c723011e09203821b6b59cff9de22454c5e4395a assets/create/models/item/brass_encased_shaft.json c723011e09203821b6b59cff9de22454c5e4395a assets/create/models/item/brass_encased_shaft.json
099961ca4a75b6ecfddd1db6dd29909276759f3b assets/create/models/item/brass_funnel.json 12781f22d9b91df903d38bc55c4fe9f75dba8867 assets/create/models/item/brass_funnel.json
361f75a79de5007d7a99ad0a38103c9aa8c3017c assets/create/models/item/brass_hand.json 361f75a79de5007d7a99ad0a38103c9aa8c3017c assets/create/models/item/brass_hand.json
1786bdffa2ab5a07c88d2797db3d7b54461323c4 assets/create/models/item/brass_ingot.json 1786bdffa2ab5a07c88d2797db3d7b54461323c4 assets/create/models/item/brass_ingot.json
a37be4a0ec9bf6c381527403c57ced4f81abd67c assets/create/models/item/brass_nugget.json a37be4a0ec9bf6c381527403c57ced4f81abd67c assets/create/models/item/brass_nugget.json
@ -1295,6 +1330,8 @@ b10971277417369f421324b28f0a4b47ce4c8625 assets/create/models/item/gabbro_bricks
b3d7398dbc16c450928bd76b772c273382687447 assets/create/models/item/gabbro_cobblestone_stairs.json b3d7398dbc16c450928bd76b772c273382687447 assets/create/models/item/gabbro_cobblestone_stairs.json
5680f24b43838cb6632bfcedba282a244bd24db0 assets/create/models/item/gabbro_cobblestone_wall.json 5680f24b43838cb6632bfcedba282a244bd24db0 assets/create/models/item/gabbro_cobblestone_wall.json
20950b692eecfccd77d96678bb3d909d51f6d787 assets/create/models/item/gabbro_pillar.json 20950b692eecfccd77d96678bb3d909d51f6d787 assets/create/models/item/gabbro_pillar.json
b10f1b188f2bf380628377bd42af2b8f8ffe5611 assets/create/models/item/gantry_pinion.json
b4bfd5041b62f3a0a955fa4872d178b590614f22 assets/create/models/item/gantry_shaft.json
6ab0d17f3d02678ed992e188ff09f6b2c00b5b03 assets/create/models/item/gearbox.json 6ab0d17f3d02678ed992e188ff09f6b2c00b5b03 assets/create/models/item/gearbox.json
2fe29893d74c176ea35aed73a169c13dd4ddb2a8 assets/create/models/item/gearshift.json 2fe29893d74c176ea35aed73a169c13dd4ddb2a8 assets/create/models/item/gearshift.json
52108a61865dab38133b9f916496ca680ae364ea assets/create/models/item/golden_sheet.json 52108a61865dab38133b9f916496ca680ae364ea assets/create/models/item/golden_sheet.json
@ -1503,6 +1540,7 @@ b0061419cf7b7bd2dd548ff00ee28f1227ee2663 assets/create/models/item/scoria_cobble
da72ccdc893fbdd3efa9c22143b88eb756c20e44 assets/create/models/item/shadow_steel.json da72ccdc893fbdd3efa9c22143b88eb756c20e44 assets/create/models/item/shadow_steel.json
081326d6666cfcfe34c45c1b74bfceba0b01ae6e assets/create/models/item/shadow_steel_casing.json 081326d6666cfcfe34c45c1b74bfceba0b01ae6e assets/create/models/item/shadow_steel_casing.json
106ae694f7e03a218c37003dca8291b1d39b3c55 assets/create/models/item/shaft.json 106ae694f7e03a218c37003dca8291b1d39b3c55 assets/create/models/item/shaft.json
0f6bc6a4328ef317d50903c7b50ab5f78fce37eb assets/create/models/item/smart_chute.json
188c49e5d8d9a2d5a570dbccdf3efd1b472dae18 assets/create/models/item/smart_fluid_pipe.json 188c49e5d8d9a2d5a570dbccdf3efd1b472dae18 assets/create/models/item/smart_fluid_pipe.json
d6fb0d38b1b5bcc199b52ac8889eaecd167f6725 assets/create/models/item/speedometer.json d6fb0d38b1b5bcc199b52ac8889eaecd167f6725 assets/create/models/item/speedometer.json
b9abe1331d49871838231f3a8e5d2973634e9325 assets/create/models/item/spout.json b9abe1331d49871838231f3a8e5d2973634e9325 assets/create/models/item/spout.json
@ -1622,6 +1660,7 @@ fc07b75f81782fa06990c7eb7febc635621df91a data/create/advancements/recipes/buildi
e2475d1fad9aaa82e99415a2a5d07a2343ce84a6 data/create/advancements/recipes/building_blocks/blasting/nickel_ingot_compat_thermal.json e2475d1fad9aaa82e99415a2a5d07a2343ce84a6 data/create/advancements/recipes/building_blocks/blasting/nickel_ingot_compat_thermal.json
f994f545e3a1990448e852c556d94f7eaf9954a0 data/create/advancements/recipes/building_blocks/blasting/platinum_ingot_compat_silents_mechanisms.json f994f545e3a1990448e852c556d94f7eaf9954a0 data/create/advancements/recipes/building_blocks/blasting/platinum_ingot_compat_silents_mechanisms.json
85b1a8c173ca7e5421f9d2bd0f3f997c8431d15c data/create/advancements/recipes/building_blocks/blasting/quicksilver_ingot_compat_mysticalworld.json 85b1a8c173ca7e5421f9d2bd0f3f997c8431d15c data/create/advancements/recipes/building_blocks/blasting/quicksilver_ingot_compat_mysticalworld.json
a61045a27757950d96fee77768bfd96f935f98b2 data/create/advancements/recipes/building_blocks/blasting/silver_ingot_compat_iceandfire.json
9b48187d487ddabcad4f4e4f75b67813f26a746d data/create/advancements/recipes/building_blocks/blasting/silver_ingot_compat_mysticalworld.json 9b48187d487ddabcad4f4e4f75b67813f26a746d data/create/advancements/recipes/building_blocks/blasting/silver_ingot_compat_mysticalworld.json
96bf046af4d23dddcca5915cfbfc04a46b0d2912 data/create/advancements/recipes/building_blocks/blasting/silver_ingot_compat_silents_mechanisms.json 96bf046af4d23dddcca5915cfbfc04a46b0d2912 data/create/advancements/recipes/building_blocks/blasting/silver_ingot_compat_silents_mechanisms.json
96a3efecf663433123861136467d9fa28ea26a1e data/create/advancements/recipes/building_blocks/blasting/silver_ingot_compat_thermal.json 96a3efecf663433123861136467d9fa28ea26a1e data/create/advancements/recipes/building_blocks/blasting/silver_ingot_compat_thermal.json
@ -1648,6 +1687,7 @@ cdf4697b74e4a6add2ea41825733f4d9ff2b83e6 data/create/advancements/recipes/buildi
6dff1a0b51d7a81d6a4e8f4fd8fa558f9befea1b data/create/advancements/recipes/building_blocks/smelting/nickel_ingot_compat_thermal.json 6dff1a0b51d7a81d6a4e8f4fd8fa558f9befea1b data/create/advancements/recipes/building_blocks/smelting/nickel_ingot_compat_thermal.json
70d98f34671f09331f6765447b95cd00c3b8d4e5 data/create/advancements/recipes/building_blocks/smelting/platinum_ingot_compat_silents_mechanisms.json 70d98f34671f09331f6765447b95cd00c3b8d4e5 data/create/advancements/recipes/building_blocks/smelting/platinum_ingot_compat_silents_mechanisms.json
8e5beb04ea241145f4e34320cba1745fd9d386e6 data/create/advancements/recipes/building_blocks/smelting/quicksilver_ingot_compat_mysticalworld.json 8e5beb04ea241145f4e34320cba1745fd9d386e6 data/create/advancements/recipes/building_blocks/smelting/quicksilver_ingot_compat_mysticalworld.json
6c6fd69e9efb6a1bda750c6d73109c98e774a498 data/create/advancements/recipes/building_blocks/smelting/silver_ingot_compat_iceandfire.json
60fd25d05bfe101d83e3a13678cca9940665771c data/create/advancements/recipes/building_blocks/smelting/silver_ingot_compat_mysticalworld.json 60fd25d05bfe101d83e3a13678cca9940665771c data/create/advancements/recipes/building_blocks/smelting/silver_ingot_compat_mysticalworld.json
29685c6f05455faa657cb51433352d005b798cf4 data/create/advancements/recipes/building_blocks/smelting/silver_ingot_compat_silents_mechanisms.json 29685c6f05455faa657cb51433352d005b798cf4 data/create/advancements/recipes/building_blocks/smelting/silver_ingot_compat_silents_mechanisms.json
05b68914ac2fb0da7609a32369bf739e28256e41 data/create/advancements/recipes/building_blocks/smelting/silver_ingot_compat_thermal.json 05b68914ac2fb0da7609a32369bf739e28256e41 data/create/advancements/recipes/building_blocks/smelting/silver_ingot_compat_thermal.json
@ -1703,6 +1743,8 @@ b42213bffce4e51618e1bba481959208d247c120 data/create/advancements/recipes/create
11d89eca0ccb0f1a8cd27acc9fc0c10d7bf83285 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_pipe.json 11d89eca0ccb0f1a8cd27acc9fc0c10d7bf83285 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_pipe.json
a2b33e972c7130cbf105f34d88dd7a9a53d5465c data/create/advancements/recipes/create.base/crafting/kinetics/fluid_tank.json a2b33e972c7130cbf105f34d88dd7a9a53d5465c data/create/advancements/recipes/create.base/crafting/kinetics/fluid_tank.json
a91b11ae44d9b1f479c6dee1f1a4580104059287 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_valve.json a91b11ae44d9b1f479c6dee1f1a4580104059287 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_valve.json
e17c45fc17e1a8e1e618b6eae02fa0aba3247495 data/create/advancements/recipes/create.base/crafting/kinetics/gantry_pinion.json
d1d2fc2f5c4e89393808c65e015917eabb50dffe data/create/advancements/recipes/create.base/crafting/kinetics/gantry_shaft.json
dae9e65a089955c0367dc1453e104c3153ebad79 data/create/advancements/recipes/create.base/crafting/kinetics/gearbox.json dae9e65a089955c0367dc1453e104c3153ebad79 data/create/advancements/recipes/create.base/crafting/kinetics/gearbox.json
8f9819912605cb2499cb3e79ecb0e709b0e38c19 data/create/advancements/recipes/create.base/crafting/kinetics/gearboxfrom_conversion.json 8f9819912605cb2499cb3e79ecb0e709b0e38c19 data/create/advancements/recipes/create.base/crafting/kinetics/gearboxfrom_conversion.json
94b8a1f976b9f853cb6e24b0cef72d2e16c3282f data/create/advancements/recipes/create.base/crafting/kinetics/gearshift.json 94b8a1f976b9f853cb6e24b0cef72d2e16c3282f data/create/advancements/recipes/create.base/crafting/kinetics/gearshift.json
@ -1770,6 +1812,7 @@ e9faf71b9597deecd2c1fb566f3c438ddc243e82 data/create/advancements/recipes/create
b463cf9343f8d08b8ed3e87f46a19facadd657b0 data/create/advancements/recipes/create.base/crafting/kinetics/secondary_linear_chassisfrom_conversion.json b463cf9343f8d08b8ed3e87f46a19facadd657b0 data/create/advancements/recipes/create.base/crafting/kinetics/secondary_linear_chassisfrom_conversion.json
191213ef824e7b73d66bb3aecc3115306b445e5a data/create/advancements/recipes/create.base/crafting/kinetics/sequenced_gearshift.json 191213ef824e7b73d66bb3aecc3115306b445e5a data/create/advancements/recipes/create.base/crafting/kinetics/sequenced_gearshift.json
cd8cefee21a1690f9158b8e8661a92d20ad0f535 data/create/advancements/recipes/create.base/crafting/kinetics/shaft.json cd8cefee21a1690f9158b8e8661a92d20ad0f535 data/create/advancements/recipes/create.base/crafting/kinetics/shaft.json
1b460b6014cb298cbea3e658596f0e753fa8066a data/create/advancements/recipes/create.base/crafting/kinetics/smart_chute.json
232044be44da655ff09deeb99cb220bf71e31096 data/create/advancements/recipes/create.base/crafting/kinetics/smart_fluid_pipe.json 232044be44da655ff09deeb99cb220bf71e31096 data/create/advancements/recipes/create.base/crafting/kinetics/smart_fluid_pipe.json
e8a5d924ccf30b6eae4b9ec0a8040e31f0eb165b data/create/advancements/recipes/create.base/crafting/kinetics/speedometer.json e8a5d924ccf30b6eae4b9ec0a8040e31f0eb165b data/create/advancements/recipes/create.base/crafting/kinetics/speedometer.json
90ff137eb1533695d9d17296ed180c0a88ddd891 data/create/advancements/recipes/create.base/crafting/kinetics/speedometerfrom_conversion.json 90ff137eb1533695d9d17296ed180c0a88ddd891 data/create/advancements/recipes/create.base/crafting/kinetics/speedometerfrom_conversion.json
@ -2410,6 +2453,8 @@ e51893e1601c470da466b35b17251238e15d0361 data/create/loot_tables/blocks/gabbro_b
54879fe6ca3b7271fbb94ec26bef1c3031942d4d data/create/loot_tables/blocks/gabbro_cobblestone_stairs.json 54879fe6ca3b7271fbb94ec26bef1c3031942d4d data/create/loot_tables/blocks/gabbro_cobblestone_stairs.json
ae19749df10663efc51b8b27af310164f250ed38 data/create/loot_tables/blocks/gabbro_cobblestone_wall.json ae19749df10663efc51b8b27af310164f250ed38 data/create/loot_tables/blocks/gabbro_cobblestone_wall.json
e8d09c919e3b8125d7da0f38383c01bcfc61c7a8 data/create/loot_tables/blocks/gabbro_pillar.json e8d09c919e3b8125d7da0f38383c01bcfc61c7a8 data/create/loot_tables/blocks/gabbro_pillar.json
04e42ba63002ed8ba67780123413f6ff3fb85b02 data/create/loot_tables/blocks/gantry_pinion.json
f2883656e417a78e5e4093002eb1e36ffa1157e9 data/create/loot_tables/blocks/gantry_shaft.json
b0109b4a4f0f738cbbe6b5911e8c3c0310b76f99 data/create/loot_tables/blocks/gearbox.json b0109b4a4f0f738cbbe6b5911e8c3c0310b76f99 data/create/loot_tables/blocks/gearbox.json
5f39461c5c9d3ad8d84195b06b9468fe2b0fb269 data/create/loot_tables/blocks/gearshift.json 5f39461c5c9d3ad8d84195b06b9468fe2b0fb269 data/create/loot_tables/blocks/gearshift.json
c8aa9bbed8fd703eb1853de0b7c9e04dffb7a511 data/create/loot_tables/blocks/glass_fluid_pipe.json c8aa9bbed8fd703eb1853de0b7c9e04dffb7a511 data/create/loot_tables/blocks/glass_fluid_pipe.json
@ -2615,6 +2660,7 @@ f70c5b7e7da7abffc82e3d1828499799883bbe85 data/create/loot_tables/blocks/secondar
e4f6dccb8bce21b5214c1d8cfb440fc0ba4159d7 data/create/loot_tables/blocks/sequenced_gearshift.json e4f6dccb8bce21b5214c1d8cfb440fc0ba4159d7 data/create/loot_tables/blocks/sequenced_gearshift.json
49f6b51c0618aa0c0133dc1f034ff6c031318cac data/create/loot_tables/blocks/shadow_steel_casing.json 49f6b51c0618aa0c0133dc1f034ff6c031318cac data/create/loot_tables/blocks/shadow_steel_casing.json
b127cb6920e6d7d9c8b2402cb186402a9a8dd3fc data/create/loot_tables/blocks/shaft.json b127cb6920e6d7d9c8b2402cb186402a9a8dd3fc data/create/loot_tables/blocks/shaft.json
22bbb9770388d2a30fa8e95e9a06b7546d66a606 data/create/loot_tables/blocks/smart_chute.json
9e4d8220e513f5ecef27f60001681e9d66331d7b data/create/loot_tables/blocks/smart_fluid_pipe.json 9e4d8220e513f5ecef27f60001681e9d66331d7b data/create/loot_tables/blocks/smart_fluid_pipe.json
70b6e82e9198d3910877e62c2eab86d46ca27089 data/create/loot_tables/blocks/speedometer.json 70b6e82e9198d3910877e62c2eab86d46ca27089 data/create/loot_tables/blocks/speedometer.json
f6c497d625de67ea9377e840208b1be539d13b73 data/create/loot_tables/blocks/spout.json f6c497d625de67ea9377e840208b1be539d13b73 data/create/loot_tables/blocks/spout.json
@ -2689,6 +2735,7 @@ aeb345e5b4c266ac9e2ef6929b153cb535468d01 data/create/recipes/blasting/lead_ingot
bd26be2cc7044537628e10ff057a7ce78b720025 data/create/recipes/blasting/nickel_ingot_compat_thermal.json bd26be2cc7044537628e10ff057a7ce78b720025 data/create/recipes/blasting/nickel_ingot_compat_thermal.json
a99be7aae1706cce96a3b6fadd38295bb53d10b7 data/create/recipes/blasting/platinum_ingot_compat_silents_mechanisms.json a99be7aae1706cce96a3b6fadd38295bb53d10b7 data/create/recipes/blasting/platinum_ingot_compat_silents_mechanisms.json
3419a88787e331d59e0da8b9084d8c8a72a84ec0 data/create/recipes/blasting/quicksilver_ingot_compat_mysticalworld.json 3419a88787e331d59e0da8b9084d8c8a72a84ec0 data/create/recipes/blasting/quicksilver_ingot_compat_mysticalworld.json
88ee97cacce93436dcb6d2cb37219435bcaaf3cb data/create/recipes/blasting/silver_ingot_compat_iceandfire.json
84b73c8ef561ab0ecc2954cd86160595975811d6 data/create/recipes/blasting/silver_ingot_compat_mysticalworld.json 84b73c8ef561ab0ecc2954cd86160595975811d6 data/create/recipes/blasting/silver_ingot_compat_mysticalworld.json
3ce20049c90fc3ce446efac1d166b5e1b2855980 data/create/recipes/blasting/silver_ingot_compat_silents_mechanisms.json 3ce20049c90fc3ce446efac1d166b5e1b2855980 data/create/recipes/blasting/silver_ingot_compat_silents_mechanisms.json
c49e88f38ad624a56865bb293e2b81da09ebdf37 data/create/recipes/blasting/silver_ingot_compat_thermal.json c49e88f38ad624a56865bb293e2b81da09ebdf37 data/create/recipes/blasting/silver_ingot_compat_thermal.json
@ -2755,6 +2802,8 @@ f4ae37f736d06ccda5fbba7831a7a174ec916a05 data/create/recipes/crafting/kinetics/f
86ad4d2820e8e2b01de8d977af7796119dfb7430 data/create/recipes/crafting/kinetics/fluid_tank.json 86ad4d2820e8e2b01de8d977af7796119dfb7430 data/create/recipes/crafting/kinetics/fluid_tank.json
3dad2a849796df268cd3a06ed37376f2cc529957 data/create/recipes/crafting/kinetics/fluid_valve.json 3dad2a849796df268cd3a06ed37376f2cc529957 data/create/recipes/crafting/kinetics/fluid_valve.json
84153bd478c0e63a04c77579d6595043f604b7ab data/create/recipes/crafting/kinetics/furnace_minecart_from_contraption_cart.json 84153bd478c0e63a04c77579d6595043f604b7ab data/create/recipes/crafting/kinetics/furnace_minecart_from_contraption_cart.json
5299a12e9272089e64073c8e151b70a5bc57b53c data/create/recipes/crafting/kinetics/gantry_pinion.json
21095a156547d4a7d215964be793f1e960b81c09 data/create/recipes/crafting/kinetics/gantry_shaft.json
5eb05cdf88bccdaddfe7ebfbd8b70d1196d422a6 data/create/recipes/crafting/kinetics/gearbox.json 5eb05cdf88bccdaddfe7ebfbd8b70d1196d422a6 data/create/recipes/crafting/kinetics/gearbox.json
b5da8c58f6b8aba525ae8a12ad906db37b78a566 data/create/recipes/crafting/kinetics/gearboxfrom_conversion.json b5da8c58f6b8aba525ae8a12ad906db37b78a566 data/create/recipes/crafting/kinetics/gearboxfrom_conversion.json
4d4124b4f1df38d892cb19da19c6464522d3e37d data/create/recipes/crafting/kinetics/gearshift.json 4d4124b4f1df38d892cb19da19c6464522d3e37d data/create/recipes/crafting/kinetics/gearshift.json
@ -2823,6 +2872,7 @@ d0d7fb94621f6f02fa3137666f20e677022d9d5b data/create/recipes/crafting/kinetics/s
66922e18791c87fadb7629cdf32d3dd2f50ccd13 data/create/recipes/crafting/kinetics/secondary_linear_chassisfrom_conversion.json 66922e18791c87fadb7629cdf32d3dd2f50ccd13 data/create/recipes/crafting/kinetics/secondary_linear_chassisfrom_conversion.json
a17db27e61baa45f8a6ecb46a6d2a5a464704f8b data/create/recipes/crafting/kinetics/sequenced_gearshift.json a17db27e61baa45f8a6ecb46a6d2a5a464704f8b data/create/recipes/crafting/kinetics/sequenced_gearshift.json
2e36438665bfb97265fd4e6ea85505970eae67fd data/create/recipes/crafting/kinetics/shaft.json 2e36438665bfb97265fd4e6ea85505970eae67fd data/create/recipes/crafting/kinetics/shaft.json
683c9e128a976282eaa6cdbbee3914e4c66b1676 data/create/recipes/crafting/kinetics/smart_chute.json
319e75dc4be645efd4809dafc1331581a8022e93 data/create/recipes/crafting/kinetics/smart_fluid_pipe.json 319e75dc4be645efd4809dafc1331581a8022e93 data/create/recipes/crafting/kinetics/smart_fluid_pipe.json
b1a74f0b51fa37ca1ed814266b3d69b8b7e69fa3 data/create/recipes/crafting/kinetics/speedometer.json b1a74f0b51fa37ca1ed814266b3d69b8b7e69fa3 data/create/recipes/crafting/kinetics/speedometer.json
8d632845deeb723e1a56083536ee5f9d60de2fcb data/create/recipes/crafting/kinetics/speedometerfrom_conversion.json 8d632845deeb723e1a56083536ee5f9d60de2fcb data/create/recipes/crafting/kinetics/speedometerfrom_conversion.json
@ -3184,6 +3234,7 @@ ea6fb7e30fa22cd87ff4760288e11f909b78ac86 data/create/recipes/milling/red_tulip.j
bda581c2039f41f7d55527814a46903f10da7e05 data/create/recipes/milling/rose_bush.json bda581c2039f41f7d55527814a46903f10da7e05 data/create/recipes/milling/rose_bush.json
54be62a1bf098a370d315f79068ec326e4f4d6c2 data/create/recipes/milling/saddle.json 54be62a1bf098a370d315f79068ec326e4f4d6c2 data/create/recipes/milling/saddle.json
8bc6124293f4efb5f2d0fa4a3166c6d00a88a14c data/create/recipes/milling/sand.json 8bc6124293f4efb5f2d0fa4a3166c6d00a88a14c data/create/recipes/milling/sand.json
42c5837c16132632da52325cddea3cdbb318e822 data/create/recipes/milling/sandstone.json
87e30347cc28aa5fb2daefae4c25fa81ce92b0f1 data/create/recipes/milling/silver_ore.json 87e30347cc28aa5fb2daefae4c25fa81ce92b0f1 data/create/recipes/milling/silver_ore.json
1e14bd30032aab6dfaff5bca50c791332ffc1aaa data/create/recipes/milling/sugar_cane.json 1e14bd30032aab6dfaff5bca50c791332ffc1aaa data/create/recipes/milling/sugar_cane.json
af2beca9f934601ad029f34bad08be3cee07f6b4 data/create/recipes/milling/sunflower.json af2beca9f934601ad029f34bad08be3cee07f6b4 data/create/recipes/milling/sunflower.json
@ -3395,6 +3446,7 @@ bf0e5df5a88e583e39a4e14b006cbf33b99611e1 data/create/recipes/smelting/limestone.
92c308baf81fe2c8a63c90b0dfc7cf8cc2183c4b data/create/recipes/smelting/quicksilver_ingot_compat_mysticalworld.json 92c308baf81fe2c8a63c90b0dfc7cf8cc2183c4b data/create/recipes/smelting/quicksilver_ingot_compat_mysticalworld.json
2c230522bb0946bde6a51442cb15c5efeea99b15 data/create/recipes/smelting/scoria.json 2c230522bb0946bde6a51442cb15c5efeea99b15 data/create/recipes/smelting/scoria.json
f5317c85a9e10a5f9346e13aef8bb364a5203346 data/create/recipes/smelting/scoria_from_natural.json f5317c85a9e10a5f9346e13aef8bb364a5203346 data/create/recipes/smelting/scoria_from_natural.json
893a857a02ef643296473148216da05102a09e05 data/create/recipes/smelting/silver_ingot_compat_iceandfire.json
96c2b799b812e469bb1785200d68c1e8f8cfacf7 data/create/recipes/smelting/silver_ingot_compat_mysticalworld.json 96c2b799b812e469bb1785200d68c1e8f8cfacf7 data/create/recipes/smelting/silver_ingot_compat_mysticalworld.json
21c5fbce648ca8812d4c75e3c71934bc269e2216 data/create/recipes/smelting/silver_ingot_compat_silents_mechanisms.json 21c5fbce648ca8812d4c75e3c71934bc269e2216 data/create/recipes/smelting/silver_ingot_compat_silents_mechanisms.json
c01f5fdef7419a2da5e0f24d61637ec35a006fd1 data/create/recipes/smelting/silver_ingot_compat_thermal.json c01f5fdef7419a2da5e0f24d61637ec35a006fd1 data/create/recipes/smelting/silver_ingot_compat_thermal.json
@ -3418,6 +3470,7 @@ c4d680eed98791fe45fa93aeeae9e8dbd508d6f5 data/create/recipes/splashing/gravel.js
7af4d9ae50af13da0d4fc814687f9586ff872798 data/create/recipes/splashing/gray_concrete_powder.json 7af4d9ae50af13da0d4fc814687f9586ff872798 data/create/recipes/splashing/gray_concrete_powder.json
23fb61c0e4bcca58fa7241db9cbef07bf4bd9a9b data/create/recipes/splashing/green_concrete_powder.json 23fb61c0e4bcca58fa7241db9cbef07bf4bd9a9b data/create/recipes/splashing/green_concrete_powder.json
0a15fffe26190b78d2177c8302c92fc2232ce398 data/create/recipes/splashing/ice.json 0a15fffe26190b78d2177c8302c92fc2232ce398 data/create/recipes/splashing/ice.json
42e05e89ad9c83bd74ea67878930056ee0491fa8 data/create/recipes/splashing/iceandfire/crushed_silver_ore.json
1c978c74c949e9325a4078f25d8b39ed2d70f4a0 data/create/recipes/splashing/immersiveengineering/crushed_aluminum_ore.json 1c978c74c949e9325a4078f25d8b39ed2d70f4a0 data/create/recipes/splashing/immersiveengineering/crushed_aluminum_ore.json
10ce4f124a8caf28027f4976f49a54561bfb7d18 data/create/recipes/splashing/immersiveengineering/crushed_lead_ore.json 10ce4f124a8caf28027f4976f49a54561bfb7d18 data/create/recipes/splashing/immersiveengineering/crushed_lead_ore.json
ab433eb5d0739ca5932588f48308151d7e0bacc2 data/create/recipes/splashing/immersiveengineering/crushed_nickel_ore.json ab433eb5d0739ca5932588f48308151d7e0bacc2 data/create/recipes/splashing/immersiveengineering/crushed_nickel_ore.json

View file

@ -1,55 +1,183 @@
{ {
"variants": { "variants": {
"facing=down,powered=false": { "extracting=false,face=floor,facing=north,powered=false": {
"model": "create:block/andesite_funnel", "model": "create:block/andesite_funnel_floor_pull"
"x": 180
}, },
"facing=up,powered=false": { "extracting=true,face=floor,facing=north,powered=false": {
"model": "create:block/andesite_funnel" "model": "create:block/andesite_funnel_floor_push"
}, },
"facing=north,powered=false": { "extracting=false,face=wall,facing=north,powered=false": {
"model": "create:block/andesite_funnel", "model": "create:block/andesite_funnel_wall_pull"
"x": 90
}, },
"facing=south,powered=false": { "extracting=true,face=wall,facing=north,powered=false": {
"model": "create:block/andesite_funnel", "model": "create:block/andesite_funnel_wall_push"
"x": 90, },
"extracting=false,face=ceiling,facing=north,powered=false": {
"model": "create:block/andesite_funnel_ceiling_pull"
},
"extracting=true,face=ceiling,facing=north,powered=false": {
"model": "create:block/andesite_funnel_ceiling_push"
},
"extracting=false,face=floor,facing=south,powered=false": {
"model": "create:block/andesite_funnel_floor_pull",
"y": 180 "y": 180
}, },
"facing=west,powered=false": { "extracting=true,face=floor,facing=south,powered=false": {
"model": "create:block/andesite_funnel", "model": "create:block/andesite_funnel_floor_push",
"x": 90, "y": 180
},
"extracting=false,face=wall,facing=south,powered=false": {
"model": "create:block/andesite_funnel_wall_pull",
"y": 180
},
"extracting=true,face=wall,facing=south,powered=false": {
"model": "create:block/andesite_funnel_wall_push",
"y": 180
},
"extracting=false,face=ceiling,facing=south,powered=false": {
"model": "create:block/andesite_funnel_ceiling_pull",
"y": 180
},
"extracting=true,face=ceiling,facing=south,powered=false": {
"model": "create:block/andesite_funnel_ceiling_push",
"y": 180
},
"extracting=false,face=floor,facing=west,powered=false": {
"model": "create:block/andesite_funnel_floor_pull",
"y": 270 "y": 270
}, },
"facing=east,powered=false": { "extracting=true,face=floor,facing=west,powered=false": {
"model": "create:block/andesite_funnel", "model": "create:block/andesite_funnel_floor_push",
"x": 90, "y": 270
},
"extracting=false,face=wall,facing=west,powered=false": {
"model": "create:block/andesite_funnel_wall_pull",
"y": 270
},
"extracting=true,face=wall,facing=west,powered=false": {
"model": "create:block/andesite_funnel_wall_push",
"y": 270
},
"extracting=false,face=ceiling,facing=west,powered=false": {
"model": "create:block/andesite_funnel_ceiling_pull",
"y": 270
},
"extracting=true,face=ceiling,facing=west,powered=false": {
"model": "create:block/andesite_funnel_ceiling_push",
"y": 270
},
"extracting=false,face=floor,facing=east,powered=false": {
"model": "create:block/andesite_funnel_floor_pull",
"y": 90 "y": 90
}, },
"facing=down,powered=true": { "extracting=true,face=floor,facing=east,powered=false": {
"model": "create:block/andesite_funnel_powered", "model": "create:block/andesite_funnel_floor_push",
"x": 180 "y": 90
}, },
"facing=up,powered=true": { "extracting=false,face=wall,facing=east,powered=false": {
"model": "create:block/andesite_funnel_powered" "model": "create:block/andesite_funnel_wall_pull",
"y": 90
}, },
"facing=north,powered=true": { "extracting=true,face=wall,facing=east,powered=false": {
"model": "create:block/andesite_funnel_powered", "model": "create:block/andesite_funnel_wall_push",
"x": 90 "y": 90
}, },
"facing=south,powered=true": { "extracting=false,face=ceiling,facing=east,powered=false": {
"model": "create:block/andesite_funnel_powered", "model": "create:block/andesite_funnel_ceiling_pull",
"x": 90, "y": 90
},
"extracting=true,face=ceiling,facing=east,powered=false": {
"model": "create:block/andesite_funnel_ceiling_push",
"y": 90
},
"extracting=false,face=floor,facing=north,powered=true": {
"model": "create:block/andesite_funnel_floor_pull_powered"
},
"extracting=true,face=floor,facing=north,powered=true": {
"model": "create:block/andesite_funnel_floor_push_powered"
},
"extracting=false,face=wall,facing=north,powered=true": {
"model": "create:block/andesite_funnel_wall_pull_powered"
},
"extracting=true,face=wall,facing=north,powered=true": {
"model": "create:block/andesite_funnel_wall_push_powered"
},
"extracting=false,face=ceiling,facing=north,powered=true": {
"model": "create:block/andesite_funnel_ceiling_pull_powered"
},
"extracting=true,face=ceiling,facing=north,powered=true": {
"model": "create:block/andesite_funnel_ceiling_push_powered"
},
"extracting=false,face=floor,facing=south,powered=true": {
"model": "create:block/andesite_funnel_floor_pull_powered",
"y": 180 "y": 180
}, },
"facing=west,powered=true": { "extracting=true,face=floor,facing=south,powered=true": {
"model": "create:block/andesite_funnel_powered", "model": "create:block/andesite_funnel_floor_push_powered",
"x": 90, "y": 180
},
"extracting=false,face=wall,facing=south,powered=true": {
"model": "create:block/andesite_funnel_wall_pull_powered",
"y": 180
},
"extracting=true,face=wall,facing=south,powered=true": {
"model": "create:block/andesite_funnel_wall_push_powered",
"y": 180
},
"extracting=false,face=ceiling,facing=south,powered=true": {
"model": "create:block/andesite_funnel_ceiling_pull_powered",
"y": 180
},
"extracting=true,face=ceiling,facing=south,powered=true": {
"model": "create:block/andesite_funnel_ceiling_push_powered",
"y": 180
},
"extracting=false,face=floor,facing=west,powered=true": {
"model": "create:block/andesite_funnel_floor_pull_powered",
"y": 270 "y": 270
}, },
"facing=east,powered=true": { "extracting=true,face=floor,facing=west,powered=true": {
"model": "create:block/andesite_funnel_powered", "model": "create:block/andesite_funnel_floor_push_powered",
"x": 90, "y": 270
},
"extracting=false,face=wall,facing=west,powered=true": {
"model": "create:block/andesite_funnel_wall_pull_powered",
"y": 270
},
"extracting=true,face=wall,facing=west,powered=true": {
"model": "create:block/andesite_funnel_wall_push_powered",
"y": 270
},
"extracting=false,face=ceiling,facing=west,powered=true": {
"model": "create:block/andesite_funnel_ceiling_pull_powered",
"y": 270
},
"extracting=true,face=ceiling,facing=west,powered=true": {
"model": "create:block/andesite_funnel_ceiling_push_powered",
"y": 270
},
"extracting=false,face=floor,facing=east,powered=true": {
"model": "create:block/andesite_funnel_floor_pull_powered",
"y": 90
},
"extracting=true,face=floor,facing=east,powered=true": {
"model": "create:block/andesite_funnel_floor_push_powered",
"y": 90
},
"extracting=false,face=wall,facing=east,powered=true": {
"model": "create:block/andesite_funnel_wall_pull_powered",
"y": 90
},
"extracting=true,face=wall,facing=east,powered=true": {
"model": "create:block/andesite_funnel_wall_push_powered",
"y": 90
},
"extracting=false,face=ceiling,facing=east,powered=true": {
"model": "create:block/andesite_funnel_ceiling_pull_powered",
"y": 90
},
"extracting=true,face=ceiling,facing=east,powered=true": {
"model": "create:block/andesite_funnel_ceiling_push_powered",
"y": 90 "y": 90
} }
} }

View file

@ -1,55 +1,183 @@
{ {
"variants": { "variants": {
"facing=down,powered=false": { "extracting=false,face=floor,facing=north,powered=false": {
"model": "create:block/brass_funnel", "model": "create:block/brass_funnel_floor_pull"
"x": 180
}, },
"facing=up,powered=false": { "extracting=true,face=floor,facing=north,powered=false": {
"model": "create:block/brass_funnel" "model": "create:block/brass_funnel_floor_push"
}, },
"facing=north,powered=false": { "extracting=false,face=wall,facing=north,powered=false": {
"model": "create:block/brass_funnel", "model": "create:block/brass_funnel_wall_pull"
"x": 90
}, },
"facing=south,powered=false": { "extracting=true,face=wall,facing=north,powered=false": {
"model": "create:block/brass_funnel", "model": "create:block/brass_funnel_wall_push"
"x": 90, },
"extracting=false,face=ceiling,facing=north,powered=false": {
"model": "create:block/brass_funnel_ceiling_pull"
},
"extracting=true,face=ceiling,facing=north,powered=false": {
"model": "create:block/brass_funnel_ceiling_push"
},
"extracting=false,face=floor,facing=south,powered=false": {
"model": "create:block/brass_funnel_floor_pull",
"y": 180 "y": 180
}, },
"facing=west,powered=false": { "extracting=true,face=floor,facing=south,powered=false": {
"model": "create:block/brass_funnel", "model": "create:block/brass_funnel_floor_push",
"x": 90, "y": 180
},
"extracting=false,face=wall,facing=south,powered=false": {
"model": "create:block/brass_funnel_wall_pull",
"y": 180
},
"extracting=true,face=wall,facing=south,powered=false": {
"model": "create:block/brass_funnel_wall_push",
"y": 180
},
"extracting=false,face=ceiling,facing=south,powered=false": {
"model": "create:block/brass_funnel_ceiling_pull",
"y": 180
},
"extracting=true,face=ceiling,facing=south,powered=false": {
"model": "create:block/brass_funnel_ceiling_push",
"y": 180
},
"extracting=false,face=floor,facing=west,powered=false": {
"model": "create:block/brass_funnel_floor_pull",
"y": 270 "y": 270
}, },
"facing=east,powered=false": { "extracting=true,face=floor,facing=west,powered=false": {
"model": "create:block/brass_funnel", "model": "create:block/brass_funnel_floor_push",
"x": 90, "y": 270
},
"extracting=false,face=wall,facing=west,powered=false": {
"model": "create:block/brass_funnel_wall_pull",
"y": 270
},
"extracting=true,face=wall,facing=west,powered=false": {
"model": "create:block/brass_funnel_wall_push",
"y": 270
},
"extracting=false,face=ceiling,facing=west,powered=false": {
"model": "create:block/brass_funnel_ceiling_pull",
"y": 270
},
"extracting=true,face=ceiling,facing=west,powered=false": {
"model": "create:block/brass_funnel_ceiling_push",
"y": 270
},
"extracting=false,face=floor,facing=east,powered=false": {
"model": "create:block/brass_funnel_floor_pull",
"y": 90 "y": 90
}, },
"facing=down,powered=true": { "extracting=true,face=floor,facing=east,powered=false": {
"model": "create:block/brass_funnel_powered", "model": "create:block/brass_funnel_floor_push",
"x": 180 "y": 90
}, },
"facing=up,powered=true": { "extracting=false,face=wall,facing=east,powered=false": {
"model": "create:block/brass_funnel_powered" "model": "create:block/brass_funnel_wall_pull",
"y": 90
}, },
"facing=north,powered=true": { "extracting=true,face=wall,facing=east,powered=false": {
"model": "create:block/brass_funnel_powered", "model": "create:block/brass_funnel_wall_push",
"x": 90 "y": 90
}, },
"facing=south,powered=true": { "extracting=false,face=ceiling,facing=east,powered=false": {
"model": "create:block/brass_funnel_powered", "model": "create:block/brass_funnel_ceiling_pull",
"x": 90, "y": 90
},
"extracting=true,face=ceiling,facing=east,powered=false": {
"model": "create:block/brass_funnel_ceiling_push",
"y": 90
},
"extracting=false,face=floor,facing=north,powered=true": {
"model": "create:block/brass_funnel_floor_pull_powered"
},
"extracting=true,face=floor,facing=north,powered=true": {
"model": "create:block/brass_funnel_floor_push_powered"
},
"extracting=false,face=wall,facing=north,powered=true": {
"model": "create:block/brass_funnel_wall_pull_powered"
},
"extracting=true,face=wall,facing=north,powered=true": {
"model": "create:block/brass_funnel_wall_push_powered"
},
"extracting=false,face=ceiling,facing=north,powered=true": {
"model": "create:block/brass_funnel_ceiling_pull_powered"
},
"extracting=true,face=ceiling,facing=north,powered=true": {
"model": "create:block/brass_funnel_ceiling_push_powered"
},
"extracting=false,face=floor,facing=south,powered=true": {
"model": "create:block/brass_funnel_floor_pull_powered",
"y": 180 "y": 180
}, },
"facing=west,powered=true": { "extracting=true,face=floor,facing=south,powered=true": {
"model": "create:block/brass_funnel_powered", "model": "create:block/brass_funnel_floor_push_powered",
"x": 90, "y": 180
},
"extracting=false,face=wall,facing=south,powered=true": {
"model": "create:block/brass_funnel_wall_pull_powered",
"y": 180
},
"extracting=true,face=wall,facing=south,powered=true": {
"model": "create:block/brass_funnel_wall_push_powered",
"y": 180
},
"extracting=false,face=ceiling,facing=south,powered=true": {
"model": "create:block/brass_funnel_ceiling_pull_powered",
"y": 180
},
"extracting=true,face=ceiling,facing=south,powered=true": {
"model": "create:block/brass_funnel_ceiling_push_powered",
"y": 180
},
"extracting=false,face=floor,facing=west,powered=true": {
"model": "create:block/brass_funnel_floor_pull_powered",
"y": 270 "y": 270
}, },
"facing=east,powered=true": { "extracting=true,face=floor,facing=west,powered=true": {
"model": "create:block/brass_funnel_powered", "model": "create:block/brass_funnel_floor_push_powered",
"x": 90, "y": 270
},
"extracting=false,face=wall,facing=west,powered=true": {
"model": "create:block/brass_funnel_wall_pull_powered",
"y": 270
},
"extracting=true,face=wall,facing=west,powered=true": {
"model": "create:block/brass_funnel_wall_push_powered",
"y": 270
},
"extracting=false,face=ceiling,facing=west,powered=true": {
"model": "create:block/brass_funnel_ceiling_pull_powered",
"y": 270
},
"extracting=true,face=ceiling,facing=west,powered=true": {
"model": "create:block/brass_funnel_ceiling_push_powered",
"y": 270
},
"extracting=false,face=floor,facing=east,powered=true": {
"model": "create:block/brass_funnel_floor_pull_powered",
"y": 90
},
"extracting=true,face=floor,facing=east,powered=true": {
"model": "create:block/brass_funnel_floor_push_powered",
"y": 90
},
"extracting=false,face=wall,facing=east,powered=true": {
"model": "create:block/brass_funnel_wall_pull_powered",
"y": 90
},
"extracting=true,face=wall,facing=east,powered=true": {
"model": "create:block/brass_funnel_wall_push_powered",
"y": 90
},
"extracting=false,face=ceiling,facing=east,powered=true": {
"model": "create:block/brass_funnel_ceiling_pull_powered",
"y": 90
},
"extracting=true,face=ceiling,facing=east,powered=true": {
"model": "create:block/brass_funnel_ceiling_push_powered",
"y": 90 "y": 90
} }
} }

View file

@ -61,9 +61,9 @@
{ {
"when": { "when": {
"south": "false", "south": "false",
"north": "true", "up": "true",
"down": "false", "down": "false",
"up": "true" "north": "true"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/lu_x" "model": "create:block/fluid_pipe/lu_x"
@ -72,9 +72,9 @@
{ {
"when": { "when": {
"south": "true", "south": "true",
"north": "false", "up": "true",
"down": "false", "down": "false",
"up": "true" "north": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ru_x" "model": "create:block/fluid_pipe/ru_x"
@ -83,9 +83,9 @@
{ {
"when": { "when": {
"south": "false", "south": "false",
"north": "true", "up": "false",
"down": "true", "down": "true",
"up": "false" "north": "true"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ld_x" "model": "create:block/fluid_pipe/ld_x"
@ -94,9 +94,9 @@
{ {
"when": { "when": {
"south": "true", "south": "true",
"north": "false", "up": "false",
"down": "true", "down": "true",
"up": "false" "north": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/rd_x" "model": "create:block/fluid_pipe/rd_x"
@ -105,9 +105,9 @@
{ {
"when": { "when": {
"south": "false", "south": "false",
"north": "false", "up": "true",
"down": "true", "down": "true",
"up": "true" "north": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ud_x" "model": "create:block/fluid_pipe/ud_x"
@ -116,9 +116,9 @@
{ {
"when": { "when": {
"south": "false", "south": "false",
"north": "false", "up": "true",
"down": "false", "down": "false",
"up": "true" "north": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ud_x" "model": "create:block/fluid_pipe/ud_x"
@ -127,9 +127,9 @@
{ {
"when": { "when": {
"south": "false", "south": "false",
"north": "false", "up": "false",
"down": "true", "down": "true",
"up": "false" "north": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ud_x" "model": "create:block/fluid_pipe/ud_x"
@ -138,9 +138,9 @@
{ {
"when": { "when": {
"south": "true", "south": "true",
"north": "true", "up": "false",
"down": "false", "down": "false",
"up": "false" "north": "true"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/lr_x" "model": "create:block/fluid_pipe/lr_x"
@ -149,9 +149,9 @@
{ {
"when": { "when": {
"south": "false", "south": "false",
"north": "true", "up": "false",
"down": "false", "down": "false",
"up": "false" "north": "true"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/lr_x" "model": "create:block/fluid_pipe/lr_x"
@ -160,9 +160,9 @@
{ {
"when": { "when": {
"south": "true", "south": "true",
"north": "false", "up": "false",
"down": "false", "down": "false",
"up": "false" "north": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/lr_x" "model": "create:block/fluid_pipe/lr_x"
@ -171,9 +171,9 @@
{ {
"when": { "when": {
"south": "false", "south": "false",
"north": "false", "up": "false",
"down": "false", "down": "false",
"up": "false" "north": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/none_x" "model": "create:block/fluid_pipe/none_x"
@ -302,10 +302,10 @@
}, },
{ {
"when": { "when": {
"west": "false", "up": "true",
"east": "true",
"down": "false", "down": "false",
"up": "true" "west": "false",
"east": "true"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/lu_z" "model": "create:block/fluid_pipe/lu_z"
@ -313,10 +313,10 @@
}, },
{ {
"when": { "when": {
"west": "true", "up": "true",
"east": "false",
"down": "false", "down": "false",
"up": "true" "west": "true",
"east": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ru_z" "model": "create:block/fluid_pipe/ru_z"
@ -324,10 +324,10 @@
}, },
{ {
"when": { "when": {
"west": "false", "up": "false",
"east": "true",
"down": "true", "down": "true",
"up": "false" "west": "false",
"east": "true"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ld_z" "model": "create:block/fluid_pipe/ld_z"
@ -335,10 +335,10 @@
}, },
{ {
"when": { "when": {
"west": "true", "up": "false",
"east": "false",
"down": "true", "down": "true",
"up": "false" "west": "true",
"east": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/rd_z" "model": "create:block/fluid_pipe/rd_z"
@ -346,10 +346,10 @@
}, },
{ {
"when": { "when": {
"west": "false", "up": "true",
"east": "false",
"down": "true", "down": "true",
"up": "true" "west": "false",
"east": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ud_z" "model": "create:block/fluid_pipe/ud_z"
@ -357,10 +357,10 @@
}, },
{ {
"when": { "when": {
"west": "false", "up": "true",
"east": "false",
"down": "false", "down": "false",
"up": "true" "west": "false",
"east": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ud_z" "model": "create:block/fluid_pipe/ud_z"
@ -368,10 +368,10 @@
}, },
{ {
"when": { "when": {
"west": "false", "up": "false",
"east": "false",
"down": "true", "down": "true",
"up": "false" "west": "false",
"east": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/ud_z" "model": "create:block/fluid_pipe/ud_z"
@ -379,10 +379,10 @@
}, },
{ {
"when": { "when": {
"up": "false",
"down": "false",
"west": "true", "west": "true",
"east": "true", "east": "true"
"down": "false",
"up": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/lr_z" "model": "create:block/fluid_pipe/lr_z"
@ -390,10 +390,10 @@
}, },
{ {
"when": { "when": {
"up": "false",
"down": "false",
"west": "false", "west": "false",
"east": "true", "east": "true"
"down": "false",
"up": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/lr_z" "model": "create:block/fluid_pipe/lr_z"
@ -401,10 +401,10 @@
}, },
{ {
"when": { "when": {
"up": "false",
"down": "false",
"west": "true", "west": "true",
"east": "false", "east": "false"
"down": "false",
"up": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/lr_z" "model": "create:block/fluid_pipe/lr_z"
@ -412,10 +412,10 @@
}, },
{ {
"when": { "when": {
"west": "false", "up": "false",
"east": "false",
"down": "false", "down": "false",
"up": "false" "west": "false",
"east": "false"
}, },
"apply": { "apply": {
"model": "create:block/fluid_pipe/none_z" "model": "create:block/fluid_pipe/none_z"

View file

@ -0,0 +1,52 @@
{
"variants": {
"axis_along_first=false,facing=down": {
"model": "create:block/gantry_pinion/horizontal",
"x": 270,
"y": 90
},
"axis_along_first=true,facing=down": {
"model": "create:block/gantry_pinion/horizontal",
"x": 270
},
"axis_along_first=false,facing=up": {
"model": "create:block/gantry_pinion/horizontal",
"x": 90,
"y": 90
},
"axis_along_first=true,facing=up": {
"model": "create:block/gantry_pinion/horizontal",
"x": 90
},
"axis_along_first=false,facing=north": {
"model": "create:block/gantry_pinion/vertical",
"y": 180
},
"axis_along_first=true,facing=north": {
"model": "create:block/gantry_pinion/horizontal",
"y": 180
},
"axis_along_first=false,facing=south": {
"model": "create:block/gantry_pinion/vertical"
},
"axis_along_first=true,facing=south": {
"model": "create:block/gantry_pinion/horizontal"
},
"axis_along_first=false,facing=west": {
"model": "create:block/gantry_pinion/horizontal",
"y": 90
},
"axis_along_first=true,facing=west": {
"model": "create:block/gantry_pinion/vertical",
"y": 90
},
"axis_along_first=false,facing=east": {
"model": "create:block/gantry_pinion/horizontal",
"y": 270
},
"axis_along_first=true,facing=east": {
"model": "create:block/gantry_pinion/vertical",
"y": 270
}
}
}

View file

@ -0,0 +1,212 @@
{
"variants": {
"facing=down,part=start,powered=false": {
"model": "create:block/gantry_shaft_start_flipped",
"x": 180
},
"facing=up,part=start,powered=false": {
"model": "create:block/gantry_shaft/block_start"
},
"facing=north,part=start,powered=false": {
"model": "create:block/gantry_shaft_start_flipped",
"x": 90
},
"facing=south,part=start,powered=false": {
"model": "create:block/gantry_shaft/block_start",
"x": 90,
"y": 180
},
"facing=west,part=start,powered=false": {
"model": "create:block/gantry_shaft_start_flipped",
"x": 90,
"y": 270
},
"facing=east,part=start,powered=false": {
"model": "create:block/gantry_shaft/block_start",
"x": 90,
"y": 90
},
"facing=down,part=middle,powered=false": {
"model": "create:block/gantry_shaft_middle_flipped",
"x": 180
},
"facing=up,part=middle,powered=false": {
"model": "create:block/gantry_shaft/block_middle"
},
"facing=north,part=middle,powered=false": {
"model": "create:block/gantry_shaft_middle_flipped",
"x": 90
},
"facing=south,part=middle,powered=false": {
"model": "create:block/gantry_shaft/block_middle",
"x": 90,
"y": 180
},
"facing=west,part=middle,powered=false": {
"model": "create:block/gantry_shaft_middle_flipped",
"x": 90,
"y": 270
},
"facing=east,part=middle,powered=false": {
"model": "create:block/gantry_shaft/block_middle",
"x": 90,
"y": 90
},
"facing=down,part=end,powered=false": {
"model": "create:block/gantry_shaft_end_flipped",
"x": 180
},
"facing=up,part=end,powered=false": {
"model": "create:block/gantry_shaft/block_end"
},
"facing=north,part=end,powered=false": {
"model": "create:block/gantry_shaft_end_flipped",
"x": 90
},
"facing=south,part=end,powered=false": {
"model": "create:block/gantry_shaft/block_end",
"x": 90,
"y": 180
},
"facing=west,part=end,powered=false": {
"model": "create:block/gantry_shaft_end_flipped",
"x": 90,
"y": 270
},
"facing=east,part=end,powered=false": {
"model": "create:block/gantry_shaft/block_end",
"x": 90,
"y": 90
},
"facing=down,part=single,powered=false": {
"model": "create:block/gantry_shaft_single_flipped",
"x": 180
},
"facing=up,part=single,powered=false": {
"model": "create:block/gantry_shaft/block_single"
},
"facing=north,part=single,powered=false": {
"model": "create:block/gantry_shaft_single_flipped",
"x": 90
},
"facing=south,part=single,powered=false": {
"model": "create:block/gantry_shaft/block_single",
"x": 90,
"y": 180
},
"facing=west,part=single,powered=false": {
"model": "create:block/gantry_shaft_single_flipped",
"x": 90,
"y": 270
},
"facing=east,part=single,powered=false": {
"model": "create:block/gantry_shaft/block_single",
"x": 90,
"y": 90
},
"facing=down,part=start,powered=true": {
"model": "create:block/gantry_shaft_start_powered_flipped",
"x": 180
},
"facing=up,part=start,powered=true": {
"model": "create:block/gantry_shaft_start_powered"
},
"facing=north,part=start,powered=true": {
"model": "create:block/gantry_shaft_start_powered_flipped",
"x": 90
},
"facing=south,part=start,powered=true": {
"model": "create:block/gantry_shaft_start_powered",
"x": 90,
"y": 180
},
"facing=west,part=start,powered=true": {
"model": "create:block/gantry_shaft_start_powered_flipped",
"x": 90,
"y": 270
},
"facing=east,part=start,powered=true": {
"model": "create:block/gantry_shaft_start_powered",
"x": 90,
"y": 90
},
"facing=down,part=middle,powered=true": {
"model": "create:block/gantry_shaft_middle_powered_flipped",
"x": 180
},
"facing=up,part=middle,powered=true": {
"model": "create:block/gantry_shaft_middle_powered"
},
"facing=north,part=middle,powered=true": {
"model": "create:block/gantry_shaft_middle_powered_flipped",
"x": 90
},
"facing=south,part=middle,powered=true": {
"model": "create:block/gantry_shaft_middle_powered",
"x": 90,
"y": 180
},
"facing=west,part=middle,powered=true": {
"model": "create:block/gantry_shaft_middle_powered_flipped",
"x": 90,
"y": 270
},
"facing=east,part=middle,powered=true": {
"model": "create:block/gantry_shaft_middle_powered",
"x": 90,
"y": 90
},
"facing=down,part=end,powered=true": {
"model": "create:block/gantry_shaft_end_powered_flipped",
"x": 180
},
"facing=up,part=end,powered=true": {
"model": "create:block/gantry_shaft_end_powered"
},
"facing=north,part=end,powered=true": {
"model": "create:block/gantry_shaft_end_powered_flipped",
"x": 90
},
"facing=south,part=end,powered=true": {
"model": "create:block/gantry_shaft_end_powered",
"x": 90,
"y": 180
},
"facing=west,part=end,powered=true": {
"model": "create:block/gantry_shaft_end_powered_flipped",
"x": 90,
"y": 270
},
"facing=east,part=end,powered=true": {
"model": "create:block/gantry_shaft_end_powered",
"x": 90,
"y": 90
},
"facing=down,part=single,powered=true": {
"model": "create:block/gantry_shaft_single_powered_flipped",
"x": 180
},
"facing=up,part=single,powered=true": {
"model": "create:block/gantry_shaft_single_powered"
},
"facing=north,part=single,powered=true": {
"model": "create:block/gantry_shaft_single_powered_flipped",
"x": 90
},
"facing=south,part=single,powered=true": {
"model": "create:block/gantry_shaft_single_powered",
"x": 90,
"y": 180
},
"facing=west,part=single,powered=true": {
"model": "create:block/gantry_shaft_single_powered_flipped",
"x": 90,
"y": 270
},
"facing=east,part=single,powered=true": {
"model": "create:block/gantry_shaft_single_powered",
"x": 90,
"y": 90
}
}
}

View file

@ -207,8 +207,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "true", "axis": "x",
"axis": "x" "sticky_east": "true"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x_sticky", "model": "create:block/radial_chassis_side_x_sticky",
@ -217,8 +217,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "true", "axis": "y",
"axis": "y" "sticky_east": "true"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_y_sticky", "model": "create:block/radial_chassis_side_y_sticky",
@ -227,8 +227,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "true", "axis": "z",
"axis": "z" "sticky_east": "true"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_z_sticky" "model": "create:block/radial_chassis_side_z_sticky"
@ -236,8 +236,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "false", "axis": "x",
"axis": "x" "sticky_east": "false"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x", "model": "create:block/radial_chassis_side_x",
@ -246,8 +246,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "false", "axis": "y",
"axis": "y" "sticky_east": "false"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_y", "model": "create:block/radial_chassis_side_y",
@ -256,8 +256,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "false", "axis": "z",
"axis": "z" "sticky_east": "false"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_z" "model": "create:block/radial_chassis_side_z"

View file

@ -0,0 +1,10 @@
{
"variants": {
"powered=false": {
"model": "create:block/smart_chute/block"
},
"powered=true": {
"model": "create:block/smart_chute/block_powered"
}
}
}

View file

@ -158,6 +158,8 @@
"block.create.gabbro_cobblestone_stairs": "s\u0279\u0131\u0250\u0287S \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 o\u0279qq\u0250\u2141", "block.create.gabbro_cobblestone_stairs": "s\u0279\u0131\u0250\u0287S \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 o\u0279qq\u0250\u2141",
"block.create.gabbro_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 o\u0279qq\u0250\u2141", "block.create.gabbro_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 o\u0279qq\u0250\u2141",
"block.create.gabbro_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 o\u0279qq\u0250\u2141", "block.create.gabbro_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 o\u0279qq\u0250\u2141",
"block.create.gantry_pinion": "uo\u0131u\u0131\u0500 \u028E\u0279\u0287u\u0250\u2141",
"block.create.gantry_shaft": "\u0287\u025F\u0250\u0265S \u028E\u0279\u0287u\u0250\u2141",
"block.create.gearbox": "xoq\u0279\u0250\u01DD\u2141", "block.create.gearbox": "xoq\u0279\u0250\u01DD\u2141",
"block.create.gearshift": "\u0287\u025F\u0131\u0265s\u0279\u0250\u01DD\u2141", "block.create.gearshift": "\u0287\u025F\u0131\u0265s\u0279\u0250\u01DD\u2141",
"block.create.glass_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 ss\u0250\u05DF\u2141", "block.create.glass_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 ss\u0250\u05DF\u2141",
@ -364,6 +366,7 @@
"block.create.sequenced_gearshift": "\u0287\u025F\u0131\u0265s\u0279\u0250\u01DD\u2141 p\u01DD\u0254u\u01DDnb\u01DDS", "block.create.sequenced_gearshift": "\u0287\u025F\u0131\u0265s\u0279\u0250\u01DD\u2141 p\u01DD\u0254u\u01DDnb\u01DDS",
"block.create.shadow_steel_casing": "bu\u0131s\u0250\u0186 \u028Dop\u0250\u0265S", "block.create.shadow_steel_casing": "bu\u0131s\u0250\u0186 \u028Dop\u0250\u0265S",
"block.create.shaft": "\u0287\u025F\u0250\u0265S", "block.create.shaft": "\u0287\u025F\u0250\u0265S",
"block.create.smart_chute": "\u01DD\u0287n\u0265\u0186 \u0287\u0279\u0250\u026FS",
"block.create.smart_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 \u0287\u0279\u0250\u026FS", "block.create.smart_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 \u0287\u0279\u0250\u026FS",
"block.create.speedometer": "\u0279\u01DD\u0287\u01DD\u026Fop\u01DD\u01DDdS", "block.create.speedometer": "\u0279\u01DD\u0287\u01DD\u026Fop\u01DD\u01DDdS",
"block.create.spout": "\u0287nodS", "block.create.spout": "\u0287nodS",
@ -399,11 +402,10 @@
"block.create.zinc_block": "\u029E\u0254o\u05DF\u15FA \u0254u\u0131Z", "block.create.zinc_block": "\u029E\u0254o\u05DF\u15FA \u0254u\u0131Z",
"block.create.zinc_ore": "\u01DD\u0279O \u0254u\u0131Z", "block.create.zinc_ore": "\u01DD\u0279O \u0254u\u0131Z",
"entity.create.contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186", "entity.create.contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186",
"entity.create.gantry_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u028E\u0279\u0287u\u0250\u2141",
"entity.create.seat": "\u0287\u0250\u01DDS", "entity.create.seat": "\u0287\u0250\u01DDS",
"entity.create.stationary_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u028E\u0279\u0250uo\u0131\u0287\u0250\u0287S", "entity.create.stationary_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u028E\u0279\u0250uo\u0131\u0287\u0250\u0287S",
"entity.create.super_glue": "\u01DDn\u05DF\u2141 \u0279\u01DDdnS", "entity.create.super_glue": "\u01DDn\u05DF\u2141 \u0279\u01DDdnS",
"fluid.create.chocolate": "\u01DD\u0287\u0250\u05DFo\u0254o\u0265\u0186",
"fluid.create.honey": "\u028E\u01DDuoH",
"fluid.create.milk": "\u029E\u05DF\u0131W", "fluid.create.milk": "\u029E\u05DF\u0131W",
"fluid.create.potion": "uo\u0131\u0287o\u0500", "fluid.create.potion": "uo\u0131\u0287o\u0500",
"fluid.create.tea": "\u0250\u01DD\u27D8 s,\u0279\u01DDp\u05DF\u0131n\u15FA", "fluid.create.tea": "\u0250\u01DD\u27D8 s,\u0279\u01DDp\u05DF\u0131n\u15FA",

View file

@ -161,6 +161,8 @@
"block.create.gabbro_cobblestone_stairs": "Gabbro Cobblestone Stairs", "block.create.gabbro_cobblestone_stairs": "Gabbro Cobblestone Stairs",
"block.create.gabbro_cobblestone_wall": "Gabbro Cobblestone Wall", "block.create.gabbro_cobblestone_wall": "Gabbro Cobblestone Wall",
"block.create.gabbro_pillar": "Gabbro Pillar", "block.create.gabbro_pillar": "Gabbro Pillar",
"block.create.gantry_pinion": "Gantry Pinion",
"block.create.gantry_shaft": "Gantry Shaft",
"block.create.gearbox": "Gearbox", "block.create.gearbox": "Gearbox",
"block.create.gearshift": "Gearshift", "block.create.gearshift": "Gearshift",
"block.create.glass_fluid_pipe": "Glass Fluid Pipe", "block.create.glass_fluid_pipe": "Glass Fluid Pipe",
@ -367,6 +369,7 @@
"block.create.sequenced_gearshift": "Sequenced Gearshift", "block.create.sequenced_gearshift": "Sequenced Gearshift",
"block.create.shadow_steel_casing": "Shadow Casing", "block.create.shadow_steel_casing": "Shadow Casing",
"block.create.shaft": "Shaft", "block.create.shaft": "Shaft",
"block.create.smart_chute": "Smart Chute",
"block.create.smart_fluid_pipe": "Smart Fluid Pipe", "block.create.smart_fluid_pipe": "Smart Fluid Pipe",
"block.create.speedometer": "Speedometer", "block.create.speedometer": "Speedometer",
"block.create.spout": "Spout", "block.create.spout": "Spout",
@ -403,12 +406,11 @@
"block.create.zinc_ore": "Zinc Ore", "block.create.zinc_ore": "Zinc Ore",
"entity.create.contraption": "Contraption", "entity.create.contraption": "Contraption",
"entity.create.gantry_contraption": "Gantry Contraption",
"entity.create.seat": "Seat", "entity.create.seat": "Seat",
"entity.create.stationary_contraption": "Stationary Contraption", "entity.create.stationary_contraption": "Stationary Contraption",
"entity.create.super_glue": "Super Glue", "entity.create.super_glue": "Super Glue",
"fluid.create.chocolate": "Chocolate",
"fluid.create.honey": "Honey",
"fluid.create.milk": "Milk", "fluid.create.milk": "Milk",
"fluid.create.potion": "Potion", "fluid.create.potion": "Potion",
"fluid.create.tea": "Builder's Tea", "fluid.create.tea": "Builder's Tea",
@ -1083,7 +1085,10 @@
"create.tooltip.chute.fans_push_down": "Fans push from Above", "create.tooltip.chute.fans_push_down": "Fans push from Above",
"create.tooltip.chute.fans_pull_up": "Fans pull from Above", "create.tooltip.chute.fans_pull_up": "Fans pull from Above",
"create.tooltip.chute.fans_pull_down": "Fans pull from Below", "create.tooltip.chute.fans_pull_down": "Fans pull from Below",
"create.tooltip.chute.contains": "Contains: %1$s x%2$s",
"create.hint.hose_pulley.title": "Bottomless Supply",
"create.hint.hose_pulley": "The targeted body of fluid is considered infinite.",
"create.hint.mechanical_arm_no_targets.title": "No Targets", "create.hint.mechanical_arm_no_targets.title": "No Targets",
"create.hint.mechanical_arm_no_targets": "It appears this _Mechanical_ _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.mechanical_arm_no_targets": "It appears this _Mechanical_ _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.title": "Horizontal Funnels",
@ -1160,7 +1165,7 @@
"block.create.andesite_funnel.tooltip.behaviour3": "Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.andesite_funnel.tooltip.behaviour3": "Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.andesite_tunnel.tooltip": "ANDESITE TUNNEL", "block.create.andesite_tunnel.tooltip": "ANDESITE TUNNEL",
"block.create.andesite_tunnel.tooltip.summary": "A protective cover for your _Belts_ and a great way to cover the holes left in your wall because of them.", "block.create.andesite_tunnel.tooltip.summary": "A protective cover for your _Mechanical_ _Belts!_ _Andesite Tunnels_ can split off one item from a stack when another belt or depot is placed at the side of the main belt.",
"block.create.andesite_tunnel.tooltip.control1": "R-Click with Wrench on Side", "block.create.andesite_tunnel.tooltip.control1": "R-Click with Wrench on Side",
"block.create.andesite_tunnel.tooltip.action1": "_Adjusts window shutters_ if the tunnel has a window on that face.", "block.create.andesite_tunnel.tooltip.action1": "_Adjusts window shutters_ if the tunnel has a window on that face.",
@ -1174,7 +1179,7 @@
"block.create.brass_funnel.tooltip.behaviour3": "Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.brass_funnel.tooltip.behaviour3": "Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.brass_tunnel.tooltip": "BRASS TUNNEL", "block.create.brass_tunnel.tooltip": "BRASS TUNNEL",
"block.create.brass_tunnel.tooltip.summary": "_Brass Tunnels_ come with a number of _Filtering_ and _Splitting_ options for your _Belts_.", "block.create.brass_tunnel.tooltip.summary": "A fancy protective cover for your _Mechanical_ _Belts!_ _Brass Tunnels_ also come with a number of _Filtering_ and _Splitting_ options for your items.",
"block.create.brass_tunnel.tooltip.condition1": "When placed side by side", "block.create.brass_tunnel.tooltip.condition1": "When placed side by side",
"block.create.brass_tunnel.tooltip.behaviour1": "_Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.", "block.create.brass_tunnel.tooltip.behaviour1": "_Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.",
"block.create.brass_tunnel.tooltip.condition2": "Filtering", "block.create.brass_tunnel.tooltip.condition2": "Filtering",
@ -1503,7 +1508,7 @@
"block.create.reinforced_rail.tooltip.summary": "A timber stabilized rail, _does not need supports_.", "block.create.reinforced_rail.tooltip.summary": "A timber stabilized rail, _does not need supports_.",
"block.create.mechanical_mixer.tooltip": "MECHANICAL MIXER", "block.create.mechanical_mixer.tooltip": "MECHANICAL MIXER",
"block.create.mechanical_mixer.tooltip.summary": "A kinetic whisk for applying any shapeless crafting recipes to items beneath it. Requires constant _Rotational Force_ and a _Basin_ placed below (with a gap in between).", "block.create.mechanical_mixer.tooltip.summary": "A kinetic whisk providing automated shapeless crafting recipes of multiple ingredients. Requires constant _Rotational Force_ and a _Basin_ placed below (with a gap in between).",
"block.create.mechanical_mixer.tooltip.condition1": "When above Basin", "block.create.mechanical_mixer.tooltip.condition1": "When above Basin",
"block.create.mechanical_mixer.tooltip.behaviour1": "Starts to mix items in the basin whenever all necessary ingredients are present. To prevent unwanted recipes, use the filter slot on the basin or cut the rotational force until all desired ingredients have been added.", "block.create.mechanical_mixer.tooltip.behaviour1": "Starts to mix items in the basin whenever all necessary ingredients are present. To prevent unwanted recipes, use the filter slot on the basin or cut the rotational force until all desired ingredients have been added.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1209", "_": "Missing Localizations: 1214",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -26,97 +26,97 @@
"block.create.andesite_tunnel": "UNLOCALIZED: Andesittunnel", "block.create.andesite_tunnel": "UNLOCALIZED: Andesittunnel",
"block.create.basin": "UNLOCALIZED: Behälter", "block.create.basin": "UNLOCALIZED: Behälter",
"block.create.belt": "Mechanischer Riemen", "block.create.belt": "Mechanischer Riemen",
"block.create.birch_window": "UNLOCALIZED: Birkenfenster", "block.create.birch_window": "UNLOCALIZED: Birch Window",
"block.create.birch_window_pane": "UNLOCALIZED: Birkenfensterscheibe", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane",
"block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_sail": "UNLOCALIZED: Schwarzes Segel",
"block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_seat": "UNLOCALIZED: Schwarzer Sitz",
"block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.black_valve_handle": "UNLOCALIZED: Schwarzer Ventilgriff",
"block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blaze_burner": "UNLOCALIZED: Lohenbrenner",
"block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_sail": "UNLOCALIZED: Blaues Segel",
"block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_seat": "UNLOCALIZED: Blauer Sitz",
"block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.blue_valve_handle": "UNLOCALIZED: Blauer Ventilgriff",
"block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_belt_funnel": "UNLOCALIZED: Riementrichter aus Messing",
"block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_block": "UNLOCALIZED: Messing Block",
"block.create.brass_casing": "UNLOCALIZED: Brass Casing", "block.create.brass_casing": "UNLOCALIZED: Messingrahmen",
"block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_encased_shaft": "UNLOCALIZED: Messingummantelte Welle",
"block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_funnel": "UNLOCALIZED: Messingtrichter",
"block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brass_tunnel": "UNLOCALIZED: Messingtunnel",
"block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_sail": "UNLOCALIZED: Braunes Segel",
"block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_seat": "UNLOCALIZED: Brauner Sitz",
"block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.brown_valve_handle": "UNLOCALIZED: Brauner Ventilgriff",
"block.create.cart_assembler": "UNLOCALIZED: Cart Assembler", "block.create.cart_assembler": "UNLOCALIZED: Lohrenmonteur",
"block.create.chiseled_dark_scoria": "UNLOCALIZED: Chiseled Dark Scoria", "block.create.chiseled_dark_scoria": "UNLOCALIZED: Gemeißelte dunkle Schlacke",
"block.create.chiseled_dolomite": "UNLOCALIZED: Chiseled Dolomite", "block.create.chiseled_dolomite": "UNLOCALIZED: Gemeißeltes Dolomit",
"block.create.chiseled_gabbro": "UNLOCALIZED: Chiseled Gabbro", "block.create.chiseled_gabbro": "UNLOCALIZED: Gemeißeltes Gabbro",
"block.create.chiseled_limestone": "UNLOCALIZED: Chiseled Limestone", "block.create.chiseled_limestone": "UNLOCALIZED: Gemeißelter Kalkstein",
"block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria", "block.create.chiseled_scoria": "UNLOCALIZED: Gemeißelte Schlacke",
"block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone", "block.create.chiseled_weathered_limestone": "UNLOCALIZED: Gemeißelter verwitterter Kalkstein",
"block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chocolate": "UNLOCALIZED: Schokolade",
"block.create.chute": "UNLOCALIZED: Chute", "block.create.chute": "UNLOCALIZED: Rinne",
"block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing", "block.create.clockwork_bearing": "UNLOCALIZED: Uhrwerk-Lager",
"block.create.clutch": "Kupplung", "block.create.clutch": "Kupplung",
"block.create.cogwheel": "Zahnrad", "block.create.cogwheel": "Zahnrad",
"block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.content_observer": "UNLOCALIZED: Inhalts Beobachter",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail", "block.create.controller_rail": "UNLOCALIZED: Steureungsschiene",
"block.create.copper_block": "UNLOCALIZED: Copper Block", "block.create.copper_block": "UNLOCALIZED: Kupfer Block",
"block.create.copper_casing": "UNLOCALIZED: Copper Casing", "block.create.copper_casing": "UNLOCALIZED: Kupferrahmen",
"block.create.copper_ore": "UNLOCALIZED: Copper Ore", "block.create.copper_ore": "UNLOCALIZED: Kupfererz",
"block.create.copper_shingles": "UNLOCALIZED: Copper Shingles", "block.create.copper_shingles": "UNLOCALIZED: Kupferschindeln",
"block.create.copper_tiles": "UNLOCALIZED: Copper Tiles", "block.create.copper_tiles": "UNLOCALIZED: Kupferfliesen",
"block.create.copper_valve_handle": "UNLOCALIZED: Copper Valve Handle", "block.create.copper_valve_handle": "UNLOCALIZED: Kupfer Ventilgriff",
"block.create.creative_crate": "Bauplankanonenmacher", "block.create.creative_crate": "Kreative anpassbare Kiste",
"block.create.creative_fluid_tank": "UNLOCALIZED: Creative Fluid Tank", "block.create.creative_fluid_tank": "UNLOCALIZED: Kreativer Flüssigkeitstank",
"block.create.creative_motor": "UNLOCALIZED: Creative Motor", "block.create.creative_motor": "UNLOCALIZED: Kreativer Motor",
"block.create.crushing_wheel": "Mahlwerkrad", "block.create.crushing_wheel": "Mahlwerkrad",
"block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller", "block.create.crushing_wheel_controller": "UNLOCALIZED: Mahlwerkrad Steurung",
"block.create.cuckoo_clock": "UNLOCALIZED: Cuckoo Clock", "block.create.cuckoo_clock": "UNLOCALIZED: Kuckucksuhr",
"block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_sail": "UNLOCALIZED: Türkises Segel",
"block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_seat": "UNLOCALIZED: Türkiser Sitz",
"block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.cyan_valve_handle": "UNLOCALIZED: Türkiser Ventilgriff",
"block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window", "block.create.dark_oak_window": "UNLOCALIZED: Schwarzeichenholzfenster",
"block.create.dark_oak_window_pane": "UNLOCALIZED: Dark Oak Window Pane", "block.create.dark_oak_window_pane": "UNLOCALIZED: Schwarzeichenholzfensterscheibe",
"block.create.dark_scoria": "UNLOCALIZED: Dark Scoria", "block.create.dark_scoria": "UNLOCALIZED: Dunkle Schlacke",
"block.create.dark_scoria_bricks": "UNLOCALIZED: Dark Scoria Bricks", "block.create.dark_scoria_bricks": "UNLOCALIZED: Dunkle Schlackenziegel",
"block.create.dark_scoria_bricks_slab": "UNLOCALIZED: Dark Scoria Bricks Slab", "block.create.dark_scoria_bricks_slab": "UNLOCALIZED: Dunkle Schlackenziegelstufe",
"block.create.dark_scoria_bricks_stairs": "UNLOCALIZED: Dark Scoria Bricks Stairs", "block.create.dark_scoria_bricks_stairs": "UNLOCALIZED: Dunkle Schlackenziegeltreppe",
"block.create.dark_scoria_bricks_wall": "UNLOCALIZED: Dark Scoria Bricks Wall", "block.create.dark_scoria_bricks_wall": "UNLOCALIZED: Dunkle Schlackenziegelmauer",
"block.create.dark_scoria_cobblestone": "UNLOCALIZED: Dark Scoria Cobblestone", "block.create.dark_scoria_cobblestone": "UNLOCALIZED: Dunkler Schlackebruchstein",
"block.create.dark_scoria_cobblestone_slab": "UNLOCALIZED: Dark Scoria Cobblestone Slab", "block.create.dark_scoria_cobblestone_slab": "UNLOCALIZED: Dunkle Schlackebruchsteinstufe",
"block.create.dark_scoria_cobblestone_stairs": "UNLOCALIZED: Dark Scoria Cobblestone Stairs", "block.create.dark_scoria_cobblestone_stairs": "UNLOCALIZED: Dunkle Schlackebruchsteintreppe",
"block.create.dark_scoria_cobblestone_wall": "UNLOCALIZED: Dark Scoria Cobblestone Wall", "block.create.dark_scoria_cobblestone_wall": "UNLOCALIZED: Dunkle Schlackebruchsteinmauer",
"block.create.dark_scoria_pillar": "UNLOCALIZED: Dark Scoria Pillar", "block.create.dark_scoria_pillar": "UNLOCALIZED: Dunkle Schlackesäule",
"block.create.deployer": "UNLOCALIZED: Deployer", "block.create.deployer": "UNLOCALIZED: Einsatzgerät",
"block.create.depot": "UNLOCALIZED: Depot", "block.create.depot": "UNLOCALIZED: Depot",
"block.create.diorite_bricks": "Dioritziegel", "block.create.diorite_bricks": "Dioritziegel",
"block.create.diorite_bricks_slab": "UNLOCALIZED: Diorite Bricks Slab", "block.create.diorite_bricks_slab": "UNLOCALIZED: Dioritziegelstufe",
"block.create.diorite_bricks_stairs": "UNLOCALIZED: Diorite Bricks Stairs", "block.create.diorite_bricks_stairs": "UNLOCALIZED: Dioritziegeltreppe",
"block.create.diorite_bricks_wall": "UNLOCALIZED: Diorite Bricks Wall", "block.create.diorite_bricks_wall": "UNLOCALIZED: Dioritziegelmauer",
"block.create.diorite_cobblestone": "UNLOCALIZED: Diorite Cobblestone", "block.create.diorite_cobblestone": "UNLOCALIZED: Dioritbruchstein",
"block.create.diorite_cobblestone_slab": "UNLOCALIZED: Diorite Cobblestone Slab", "block.create.diorite_cobblestone_slab": "UNLOCALIZED: Dioritbruchsteinstufe",
"block.create.diorite_cobblestone_stairs": "UNLOCALIZED: Diorite Cobblestone Stairs", "block.create.diorite_cobblestone_stairs": "UNLOCALIZED: Dioritbruchsteintreppe",
"block.create.diorite_cobblestone_wall": "UNLOCALIZED: Diorite Cobblestone Wall", "block.create.diorite_cobblestone_wall": "UNLOCALIZED: Dioritbruchsteinmauer",
"block.create.diorite_pillar": "UNLOCALIZED: Diorite Pillar", "block.create.diorite_pillar": "UNLOCALIZED: Dioritsäule",
"block.create.dolomite": "Dolomit", "block.create.dolomite": "Dolomit",
"block.create.dolomite_bricks": "Dolomitziegel", "block.create.dolomite_bricks": "Dolomitziegel",
"block.create.dolomite_bricks_slab": "Dolomitziegelstufe", "block.create.dolomite_bricks_slab": "Dolomitziegelstufe",
"block.create.dolomite_bricks_stairs": "Dolomitziegeltreppe", "block.create.dolomite_bricks_stairs": "Dolomitziegeltreppe",
"block.create.dolomite_bricks_wall": "Dolomitziegelmauer", "block.create.dolomite_bricks_wall": "Dolomitziegelmauer",
"block.create.dolomite_cobblestone": "UNLOCALIZED: Dolomite Cobblestone", "block.create.dolomite_cobblestone": "UNLOCALIZED: Dolomitbruchstein",
"block.create.dolomite_cobblestone_slab": "UNLOCALIZED: Dolomite Cobblestone Slab", "block.create.dolomite_cobblestone_slab": "UNLOCALIZED: Dolomitbruchsteinstufe",
"block.create.dolomite_cobblestone_stairs": "UNLOCALIZED: Dolomite Cobblestone Stairs", "block.create.dolomite_cobblestone_stairs": "UNLOCALIZED: Dolomitbruchsteintreppe",
"block.create.dolomite_cobblestone_wall": "UNLOCALIZED: Dolomite Cobblestone Wall", "block.create.dolomite_cobblestone_wall": "UNLOCALIZED: Dolomitbruchsteinmauer",
"block.create.dolomite_pillar": "Dolomitsäule", "block.create.dolomite_pillar": "Dolomitsäule",
"block.create.encased_chain_drive": "UNLOCALIZED: Encased Chain Drive", "block.create.encased_chain_drive": "UNLOCALIZED: Ummantelter Kettenriemen",
"block.create.encased_fan": "Eingeschlossener Propeller", "block.create.encased_fan": "Ummantelter Lüfter",
"block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_fluid_pipe": "UNLOCALIZED: Ummanteltes Rohr",
"block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Schicke Andesitziegel",
"block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Schicke Andesitziegelstufe",
"block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Schicke Andesitziegeltreppe",
"block.create.fancy_andesite_bricks_wall": "UNLOCALIZED: Fancy Andesite Bricks Wall", "block.create.fancy_andesite_bricks_wall": "UNLOCALIZED: Schicke Andesitziegelmauer",
"block.create.fancy_dark_scoria_bricks": "UNLOCALIZED: Fancy Dark Scoria Bricks", "block.create.fancy_dark_scoria_bricks": "UNLOCALIZED: Schicke dunkle Schlackenziegel",
"block.create.fancy_dark_scoria_bricks_slab": "UNLOCALIZED: Fancy Dark Scoria Bricks Slab", "block.create.fancy_dark_scoria_bricks_slab": "UNLOCALIZED: Schicke dunkle Schlackenziegelstufe",
"block.create.fancy_dark_scoria_bricks_stairs": "UNLOCALIZED: Fancy Dark Scoria Bricks Stairs", "block.create.fancy_dark_scoria_bricks_stairs": "UNLOCALIZED: Schicke dunkle Schlackenziegeltreppe",
"block.create.fancy_dark_scoria_bricks_wall": "UNLOCALIZED: Fancy Dark Scoria Bricks Wall", "block.create.fancy_dark_scoria_bricks_wall": "UNLOCALIZED: Schicke dunkle Schlackenziegelmauer",
"block.create.fancy_diorite_bricks": "UNLOCALIZED: Fancy Diorite Bricks", "block.create.fancy_diorite_bricks": "UNLOCALIZED: Fancy Diorite Bricks",
"block.create.fancy_diorite_bricks_slab": "UNLOCALIZED: Fancy Diorite Bricks Slab", "block.create.fancy_diorite_bricks_slab": "UNLOCALIZED: Fancy Diorite Bricks Slab",
"block.create.fancy_diorite_bricks_stairs": "UNLOCALIZED: Fancy Diorite Bricks Stairs", "block.create.fancy_diorite_bricks_stairs": "UNLOCALIZED: Fancy Diorite Bricks Stairs",
@ -162,6 +162,8 @@
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs", "block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall", "block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar", "block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
"block.create.gearbox": "Getriebe", "block.create.gearbox": "Getriebe",
"block.create.gearshift": "Gangschaltung", "block.create.gearshift": "Gangschaltung",
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe", "block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
@ -368,6 +370,7 @@
"block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift", "block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift",
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing", "block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
"block.create.shaft": "Welle", "block.create.shaft": "Welle",
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe", "block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
"block.create.speedometer": "UNLOCALIZED: Speedometer", "block.create.speedometer": "UNLOCALIZED: Speedometer",
"block.create.spout": "UNLOCALIZED: Spout", "block.create.spout": "UNLOCALIZED: Spout",
@ -404,12 +407,11 @@
"block.create.zinc_ore": "UNLOCALIZED: Zinc Ore", "block.create.zinc_ore": "UNLOCALIZED: Zinc Ore",
"entity.create.contraption": "UNLOCALIZED: Contraption", "entity.create.contraption": "UNLOCALIZED: Contraption",
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
"entity.create.seat": "UNLOCALIZED: Seat", "entity.create.seat": "UNLOCALIZED: Seat",
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
"entity.create.super_glue": "UNLOCALIZED: Super Glue", "entity.create.super_glue": "UNLOCALIZED: Super Glue",
"fluid.create.chocolate": "UNLOCALIZED: Chocolate",
"fluid.create.honey": "UNLOCALIZED: Honey",
"fluid.create.milk": "UNLOCALIZED: Milk", "fluid.create.milk": "UNLOCALIZED: Milk",
"fluid.create.potion": "UNLOCALIZED: Potion", "fluid.create.potion": "UNLOCALIZED: Potion",
"fluid.create.tea": "UNLOCALIZED: Builder's Tea", "fluid.create.tea": "UNLOCALIZED: Builder's Tea",
@ -1084,7 +1086,10 @@
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above", "create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above", "create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below", "create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
"create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets",
"create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.title": "UNLOCALIZED: Horizontal Funnels",
@ -1161,7 +1166,7 @@
"block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL", "block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL",
"block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Belts_ and a great way to cover the holes left in your wall because of them.", "block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Mechanical_ _Belts!_ _Andesite Tunnels_ can split off one item from a stack when another belt or depot is placed at the side of the main belt.",
"block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side", "block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side",
"block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.", "block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.",
@ -1175,7 +1180,7 @@
"block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL", "block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL",
"block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: _Brass Tunnels_ come with a number of _Filtering_ and _Splitting_ options for your _Belts_.", "block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: A fancy protective cover for your _Mechanical_ _Belts!_ _Brass Tunnels_ also come with a number of _Filtering_ and _Splitting_ options for your items.",
"block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side", "block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side",
"block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.", "block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.",
"block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering", "block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering",
@ -1504,7 +1509,7 @@
"block.create.reinforced_rail.tooltip.summary": "UNLOCALIZED: A timber stabilized rail, _does not need supports_.", "block.create.reinforced_rail.tooltip.summary": "UNLOCALIZED: A timber stabilized rail, _does not need supports_.",
"block.create.mechanical_mixer.tooltip": "UNLOCALIZED: MECHANICAL MIXER", "block.create.mechanical_mixer.tooltip": "UNLOCALIZED: MECHANICAL MIXER",
"block.create.mechanical_mixer.tooltip.summary": "UNLOCALIZED: A kinetic whisk for applying any shapeless crafting recipes to items beneath it. Requires constant _Rotational Force_ and a _Basin_ placed below (with a gap in between).", "block.create.mechanical_mixer.tooltip.summary": "UNLOCALIZED: A kinetic whisk providing automated shapeless crafting recipes of multiple ingredients. Requires constant _Rotational Force_ and a _Basin_ placed below (with a gap in between).",
"block.create.mechanical_mixer.tooltip.condition1": "UNLOCALIZED: When above Basin", "block.create.mechanical_mixer.tooltip.condition1": "UNLOCALIZED: When above Basin",
"block.create.mechanical_mixer.tooltip.behaviour1": "UNLOCALIZED: Starts to mix items in the basin whenever all necessary ingredients are present. To prevent unwanted recipes, use the filter slot on the basin or cut the rotational force until all desired ingredients have been added.", "block.create.mechanical_mixer.tooltip.behaviour1": "UNLOCALIZED: Starts to mix items in the basin whenever all necessary ingredients are present. To prevent unwanted recipes, use the filter slot on the basin or cut the rotational force until all desired ingredients have been added.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 860", "_": "Missing Localizations: 865",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -162,6 +162,8 @@
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs", "block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall", "block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar", "block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
"block.create.gearbox": "Boîte à roue dentée", "block.create.gearbox": "Boîte à roue dentée",
"block.create.gearshift": "Décaleur de rotation", "block.create.gearshift": "Décaleur de rotation",
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe", "block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
@ -368,6 +370,7 @@
"block.create.sequenced_gearshift": "Décaleur de rotation séquencé", "block.create.sequenced_gearshift": "Décaleur de rotation séquencé",
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing", "block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
"block.create.shaft": "Arbre mécanique", "block.create.shaft": "Arbre mécanique",
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe", "block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
"block.create.speedometer": "Compteur de vitesse", "block.create.speedometer": "Compteur de vitesse",
"block.create.spout": "UNLOCALIZED: Spout", "block.create.spout": "UNLOCALIZED: Spout",
@ -404,12 +407,11 @@
"block.create.zinc_ore": "Minerai de zinc", "block.create.zinc_ore": "Minerai de zinc",
"entity.create.contraption": "UNLOCALIZED: Contraption", "entity.create.contraption": "UNLOCALIZED: Contraption",
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
"entity.create.seat": "UNLOCALIZED: Seat", "entity.create.seat": "UNLOCALIZED: Seat",
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
"entity.create.super_glue": "UNLOCALIZED: Super Glue", "entity.create.super_glue": "UNLOCALIZED: Super Glue",
"fluid.create.chocolate": "UNLOCALIZED: Chocolate",
"fluid.create.honey": "UNLOCALIZED: Honey",
"fluid.create.milk": "UNLOCALIZED: Milk", "fluid.create.milk": "UNLOCALIZED: Milk",
"fluid.create.potion": "UNLOCALIZED: Potion", "fluid.create.potion": "UNLOCALIZED: Potion",
"fluid.create.tea": "UNLOCALIZED: Builder's Tea", "fluid.create.tea": "UNLOCALIZED: Builder's Tea",
@ -1084,7 +1086,10 @@
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above", "create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above", "create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below", "create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
"create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets",
"create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.title": "UNLOCALIZED: Horizontal Funnels",
@ -1161,7 +1166,7 @@
"block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL", "block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL",
"block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Belts_ and a great way to cover the holes left in your wall because of them.", "block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Mechanical_ _Belts!_ _Andesite Tunnels_ can split off one item from a stack when another belt or depot is placed at the side of the main belt.",
"block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side", "block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side",
"block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.", "block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.",
@ -1175,7 +1180,7 @@
"block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL", "block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL",
"block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: _Brass Tunnels_ come with a number of _Filtering_ and _Splitting_ options for your _Belts_.", "block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: A fancy protective cover for your _Mechanical_ _Belts!_ _Brass Tunnels_ also come with a number of _Filtering_ and _Splitting_ options for your items.",
"block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side", "block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side",
"block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.", "block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.",
"block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering", "block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 844", "_": "Missing Localizations: 849",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -162,6 +162,8 @@
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs", "block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall", "block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar", "block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
"block.create.gearbox": "Riduttore", "block.create.gearbox": "Riduttore",
"block.create.gearshift": "Cambio", "block.create.gearshift": "Cambio",
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe", "block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
@ -368,6 +370,7 @@
"block.create.sequenced_gearshift": "Cambio Sequenziale", "block.create.sequenced_gearshift": "Cambio Sequenziale",
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing", "block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
"block.create.shaft": "Albero", "block.create.shaft": "Albero",
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe", "block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
"block.create.speedometer": "Tachimetro", "block.create.speedometer": "Tachimetro",
"block.create.spout": "UNLOCALIZED: Spout", "block.create.spout": "UNLOCALIZED: Spout",
@ -404,12 +407,11 @@
"block.create.zinc_ore": "Zinco Grezzo", "block.create.zinc_ore": "Zinco Grezzo",
"entity.create.contraption": "UNLOCALIZED: Contraption", "entity.create.contraption": "UNLOCALIZED: Contraption",
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
"entity.create.seat": "UNLOCALIZED: Seat", "entity.create.seat": "UNLOCALIZED: Seat",
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
"entity.create.super_glue": "UNLOCALIZED: Super Glue", "entity.create.super_glue": "UNLOCALIZED: Super Glue",
"fluid.create.chocolate": "UNLOCALIZED: Chocolate",
"fluid.create.honey": "UNLOCALIZED: Honey",
"fluid.create.milk": "UNLOCALIZED: Milk", "fluid.create.milk": "UNLOCALIZED: Milk",
"fluid.create.potion": "UNLOCALIZED: Potion", "fluid.create.potion": "UNLOCALIZED: Potion",
"fluid.create.tea": "UNLOCALIZED: Builder's Tea", "fluid.create.tea": "UNLOCALIZED: Builder's Tea",
@ -1084,7 +1086,10 @@
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above", "create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above", "create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below", "create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
"create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets",
"create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.title": "UNLOCALIZED: Horizontal Funnels",
@ -1161,7 +1166,7 @@
"block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL", "block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL",
"block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Belts_ and a great way to cover the holes left in your wall because of them.", "block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Mechanical_ _Belts!_ _Andesite Tunnels_ can split off one item from a stack when another belt or depot is placed at the side of the main belt.",
"block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side", "block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side",
"block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.", "block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.",
@ -1175,7 +1180,7 @@
"block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL", "block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL",
"block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: _Brass Tunnels_ come with a number of _Filtering_ and _Splitting_ options for your _Belts_.", "block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: A fancy protective cover for your _Mechanical_ _Belts!_ _Brass Tunnels_ also come with a number of _Filtering_ and _Splitting_ options for your items.",
"block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side", "block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side",
"block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.", "block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.",
"block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering", "block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 843", "_": "Missing Localizations: 848",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -162,6 +162,8 @@
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs", "block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall", "block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar", "block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
"block.create.gearbox": "ギアボックス", "block.create.gearbox": "ギアボックス",
"block.create.gearshift": "ギアシフト", "block.create.gearshift": "ギアシフト",
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe", "block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
@ -368,6 +370,7 @@
"block.create.sequenced_gearshift": "シーケンスギアシフト", "block.create.sequenced_gearshift": "シーケンスギアシフト",
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing", "block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
"block.create.shaft": "軸", "block.create.shaft": "軸",
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe", "block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
"block.create.speedometer": "スピードメーター", "block.create.speedometer": "スピードメーター",
"block.create.spout": "UNLOCALIZED: Spout", "block.create.spout": "UNLOCALIZED: Spout",
@ -404,12 +407,11 @@
"block.create.zinc_ore": "亜鉛鉱石", "block.create.zinc_ore": "亜鉛鉱石",
"entity.create.contraption": "UNLOCALIZED: Contraption", "entity.create.contraption": "UNLOCALIZED: Contraption",
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
"entity.create.seat": "UNLOCALIZED: Seat", "entity.create.seat": "UNLOCALIZED: Seat",
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
"entity.create.super_glue": "UNLOCALIZED: Super Glue", "entity.create.super_glue": "UNLOCALIZED: Super Glue",
"fluid.create.chocolate": "UNLOCALIZED: Chocolate",
"fluid.create.honey": "UNLOCALIZED: Honey",
"fluid.create.milk": "UNLOCALIZED: Milk", "fluid.create.milk": "UNLOCALIZED: Milk",
"fluid.create.potion": "UNLOCALIZED: Potion", "fluid.create.potion": "UNLOCALIZED: Potion",
"fluid.create.tea": "UNLOCALIZED: Builder's Tea", "fluid.create.tea": "UNLOCALIZED: Builder's Tea",
@ -1084,7 +1086,10 @@
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above", "create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above", "create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below", "create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
"create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets",
"create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.title": "UNLOCALIZED: Horizontal Funnels",
@ -1161,7 +1166,7 @@
"block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL", "block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL",
"block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Belts_ and a great way to cover the holes left in your wall because of them.", "block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Mechanical_ _Belts!_ _Andesite Tunnels_ can split off one item from a stack when another belt or depot is placed at the side of the main belt.",
"block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side", "block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side",
"block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.", "block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.",
@ -1175,7 +1180,7 @@
"block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL", "block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL",
"block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: _Brass Tunnels_ come with a number of _Filtering_ and _Splitting_ options for your _Belts_.", "block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: A fancy protective cover for your _Mechanical_ _Belts!_ _Brass Tunnels_ also come with a number of _Filtering_ and _Splitting_ options for your items.",
"block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side", "block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side",
"block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.", "block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.",
"block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering", "block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 48", "_": "Missing Localizations: 55",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -162,6 +162,8 @@
"block.create.gabbro_cobblestone_stairs": "반려암 조약돌 계단", "block.create.gabbro_cobblestone_stairs": "반려암 조약돌 계단",
"block.create.gabbro_cobblestone_wall": "반려암 조약돌 담장", "block.create.gabbro_cobblestone_wall": "반려암 조약돌 담장",
"block.create.gabbro_pillar": "반려암 기둥", "block.create.gabbro_pillar": "반려암 기둥",
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
"block.create.gearbox": "기어박스", "block.create.gearbox": "기어박스",
"block.create.gearshift": "기어쉬프트", "block.create.gearshift": "기어쉬프트",
"block.create.glass_fluid_pipe": "액체 파이프", "block.create.glass_fluid_pipe": "액체 파이프",
@ -368,6 +370,7 @@
"block.create.sequenced_gearshift": "순서 기어쉬프트", "block.create.sequenced_gearshift": "순서 기어쉬프트",
"block.create.shadow_steel_casing": "그림자 케이스", "block.create.shadow_steel_casing": "그림자 케이스",
"block.create.shaft": "축", "block.create.shaft": "축",
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
"block.create.smart_fluid_pipe": "스마트 액체 파이프", "block.create.smart_fluid_pipe": "스마트 액체 파이프",
"block.create.speedometer": "속도 계측기", "block.create.speedometer": "속도 계측기",
"block.create.spout": "수도꼭지", "block.create.spout": "수도꼭지",
@ -404,12 +407,11 @@
"block.create.zinc_ore": "아연 광석", "block.create.zinc_ore": "아연 광석",
"entity.create.contraption": "장치", "entity.create.contraption": "장치",
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
"entity.create.seat": "좌석", "entity.create.seat": "좌석",
"entity.create.stationary_contraption": "고정된 장치", "entity.create.stationary_contraption": "고정된 장치",
"entity.create.super_glue": "강력 접착제", "entity.create.super_glue": "강력 접착제",
"fluid.create.chocolate": "초콜릿",
"fluid.create.honey": "꿀",
"fluid.create.milk": "우유", "fluid.create.milk": "우유",
"fluid.create.potion": "포션", "fluid.create.potion": "포션",
"fluid.create.tea": "건축가의 차", "fluid.create.tea": "건축가의 차",
@ -1084,7 +1086,10 @@
"create.tooltip.chute.fans_push_down": "선풍기가 위에서 밈", "create.tooltip.chute.fans_push_down": "선풍기가 위에서 밈",
"create.tooltip.chute.fans_pull_up": "선풍기가 위에서 당김", "create.tooltip.chute.fans_pull_up": "선풍기가 위에서 당김",
"create.tooltip.chute.fans_pull_down": "선풍기가 아래에서 당김", "create.tooltip.chute.fans_pull_down": "선풍기가 아래에서 당김",
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
"create.hint.mechanical_arm_no_targets.title": "목표 없음", "create.hint.mechanical_arm_no_targets.title": "목표 없음",
"create.hint.mechanical_arm_no_targets": "이 _기계 팔_은 _목표_가 설정되지 않은 것 같습니다. _기계 팔을 손에 들고_ 벨트, 아이템 거치대, 깔때기를 _우클릭_하여 목표로 지정하세요.", "create.hint.mechanical_arm_no_targets": "이 _기계 팔_은 _목표_가 설정되지 않은 것 같습니다. _기계 팔을 손에 들고_ 벨트, 아이템 거치대, 깔때기를 _우클릭_하여 목표로 지정하세요.",
"create.hint.horizontal_funnel.title": "깔때기가 수평임", "create.hint.horizontal_funnel.title": "깔때기가 수평임",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1150", "_": "Missing Localizations: 1155",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -162,6 +162,8 @@
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs", "block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall", "block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar", "block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
"block.create.gearbox": "Versnellingsbak", "block.create.gearbox": "Versnellingsbak",
"block.create.gearshift": "Versnellingspook", "block.create.gearshift": "Versnellingspook",
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe", "block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
@ -368,6 +370,7 @@
"block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift", "block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift",
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing", "block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
"block.create.shaft": "Drijfas", "block.create.shaft": "Drijfas",
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe", "block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
"block.create.speedometer": "Snelheidsmeter", "block.create.speedometer": "Snelheidsmeter",
"block.create.spout": "UNLOCALIZED: Spout", "block.create.spout": "UNLOCALIZED: Spout",
@ -404,12 +407,11 @@
"block.create.zinc_ore": "UNLOCALIZED: Zinc Ore", "block.create.zinc_ore": "UNLOCALIZED: Zinc Ore",
"entity.create.contraption": "UNLOCALIZED: Contraption", "entity.create.contraption": "UNLOCALIZED: Contraption",
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
"entity.create.seat": "UNLOCALIZED: Seat", "entity.create.seat": "UNLOCALIZED: Seat",
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
"entity.create.super_glue": "UNLOCALIZED: Super Glue", "entity.create.super_glue": "UNLOCALIZED: Super Glue",
"fluid.create.chocolate": "UNLOCALIZED: Chocolate",
"fluid.create.honey": "UNLOCALIZED: Honey",
"fluid.create.milk": "UNLOCALIZED: Milk", "fluid.create.milk": "UNLOCALIZED: Milk",
"fluid.create.potion": "UNLOCALIZED: Potion", "fluid.create.potion": "UNLOCALIZED: Potion",
"fluid.create.tea": "UNLOCALIZED: Builder's Tea", "fluid.create.tea": "UNLOCALIZED: Builder's Tea",
@ -1084,7 +1086,10 @@
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above", "create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above", "create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below", "create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
"create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets",
"create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.title": "UNLOCALIZED: Horizontal Funnels",
@ -1161,7 +1166,7 @@
"block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL", "block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL",
"block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Belts_ and a great way to cover the holes left in your wall because of them.", "block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Mechanical_ _Belts!_ _Andesite Tunnels_ can split off one item from a stack when another belt or depot is placed at the side of the main belt.",
"block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side", "block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side",
"block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.", "block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.",
@ -1175,7 +1180,7 @@
"block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL", "block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL",
"block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: _Brass Tunnels_ come with a number of _Filtering_ and _Splitting_ options for your _Belts_.", "block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: A fancy protective cover for your _Mechanical_ _Belts!_ _Brass Tunnels_ also come with a number of _Filtering_ and _Splitting_ options for your items.",
"block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side", "block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side",
"block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.", "block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.",
"block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering", "block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1216", "_": "Missing Localizations: 1221",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -162,6 +162,8 @@
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs", "block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall", "block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar", "block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
"block.create.gearbox": "Caixa de Transmissão", "block.create.gearbox": "Caixa de Transmissão",
"block.create.gearshift": "Câmbio", "block.create.gearshift": "Câmbio",
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe", "block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
@ -368,6 +370,7 @@
"block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift", "block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift",
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing", "block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
"block.create.shaft": "Eixo", "block.create.shaft": "Eixo",
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe", "block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
"block.create.speedometer": "UNLOCALIZED: Speedometer", "block.create.speedometer": "UNLOCALIZED: Speedometer",
"block.create.spout": "UNLOCALIZED: Spout", "block.create.spout": "UNLOCALIZED: Spout",
@ -404,12 +407,11 @@
"block.create.zinc_ore": "UNLOCALIZED: Zinc Ore", "block.create.zinc_ore": "UNLOCALIZED: Zinc Ore",
"entity.create.contraption": "UNLOCALIZED: Contraption", "entity.create.contraption": "UNLOCALIZED: Contraption",
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
"entity.create.seat": "UNLOCALIZED: Seat", "entity.create.seat": "UNLOCALIZED: Seat",
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
"entity.create.super_glue": "UNLOCALIZED: Super Glue", "entity.create.super_glue": "UNLOCALIZED: Super Glue",
"fluid.create.chocolate": "UNLOCALIZED: Chocolate",
"fluid.create.honey": "UNLOCALIZED: Honey",
"fluid.create.milk": "UNLOCALIZED: Milk", "fluid.create.milk": "UNLOCALIZED: Milk",
"fluid.create.potion": "UNLOCALIZED: Potion", "fluid.create.potion": "UNLOCALIZED: Potion",
"fluid.create.tea": "UNLOCALIZED: Builder's Tea", "fluid.create.tea": "UNLOCALIZED: Builder's Tea",
@ -1084,7 +1086,10 @@
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above", "create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above", "create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below", "create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
"create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets",
"create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _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.title": "UNLOCALIZED: Horizontal Funnels",
@ -1161,7 +1166,7 @@
"block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.andesite_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL", "block.create.andesite_tunnel.tooltip": "UNLOCALIZED: ANDESITE TUNNEL",
"block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Belts_ and a great way to cover the holes left in your wall because of them.", "block.create.andesite_tunnel.tooltip.summary": "UNLOCALIZED: A protective cover for your _Mechanical_ _Belts!_ _Andesite Tunnels_ can split off one item from a stack when another belt or depot is placed at the side of the main belt.",
"block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side", "block.create.andesite_tunnel.tooltip.control1": "UNLOCALIZED: R-Click with Wrench on Side",
"block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.", "block.create.andesite_tunnel.tooltip.action1": "UNLOCALIZED: _Adjusts window shutters_ if the tunnel has a window on that face.",
@ -1175,7 +1180,7 @@
"block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.", "block.create.brass_funnel.tooltip.behaviour3": "UNLOCALIZED: Will _transfer_ items _downward_, much like a buffer-less hopper.",
"block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL", "block.create.brass_tunnel.tooltip": "UNLOCALIZED: BRASS TUNNEL",
"block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: _Brass Tunnels_ come with a number of _Filtering_ and _Splitting_ options for your _Belts_.", "block.create.brass_tunnel.tooltip.summary": "UNLOCALIZED: A fancy protective cover for your _Mechanical_ _Belts!_ _Brass Tunnels_ also come with a number of _Filtering_ and _Splitting_ options for your items.",
"block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side", "block.create.brass_tunnel.tooltip.condition1": "UNLOCALIZED: When placed side by side",
"block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.", "block.create.brass_tunnel.tooltip.behaviour1": "UNLOCALIZED: _Brass Tunnels_ connect to each other allowing for content from one _Belt_ to be redirected to another.",
"block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering", "block.create.brass_tunnel.tooltip.condition2": "UNLOCALIZED: Filtering",
@ -1504,7 +1509,7 @@
"block.create.reinforced_rail.tooltip.summary": "UNLOCALIZED: A timber stabilized rail, _does not need supports_.", "block.create.reinforced_rail.tooltip.summary": "UNLOCALIZED: A timber stabilized rail, _does not need supports_.",
"block.create.mechanical_mixer.tooltip": "UNLOCALIZED: MECHANICAL MIXER", "block.create.mechanical_mixer.tooltip": "UNLOCALIZED: MECHANICAL MIXER",
"block.create.mechanical_mixer.tooltip.summary": "UNLOCALIZED: A kinetic whisk for applying any shapeless crafting recipes to items beneath it. Requires constant _Rotational Force_ and a _Basin_ placed below (with a gap in between).", "block.create.mechanical_mixer.tooltip.summary": "UNLOCALIZED: A kinetic whisk providing automated shapeless crafting recipes of multiple ingredients. Requires constant _Rotational Force_ and a _Basin_ placed below (with a gap in between).",
"block.create.mechanical_mixer.tooltip.condition1": "UNLOCALIZED: When above Basin", "block.create.mechanical_mixer.tooltip.condition1": "UNLOCALIZED: When above Basin",
"block.create.mechanical_mixer.tooltip.behaviour1": "UNLOCALIZED: Starts to mix items in the basin whenever all necessary ingredients are present. To prevent unwanted recipes, use the filter slot on the basin or cut the rotational force until all desired ingredients have been added.", "block.create.mechanical_mixer.tooltip.behaviour1": "UNLOCALIZED: Starts to mix items in the basin whenever all necessary ingredients are present. To prevent unwanted recipes, use the filter slot on the basin or cut the rotational force until all desired ingredients have been added.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1", "_": "Missing Localizations: 8",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -162,6 +162,8 @@
"block.create.gabbro_cobblestone_stairs": "辉长岩圆石楼梯", "block.create.gabbro_cobblestone_stairs": "辉长岩圆石楼梯",
"block.create.gabbro_cobblestone_wall": "辉长岩圆石墙", "block.create.gabbro_cobblestone_wall": "辉长岩圆石墙",
"block.create.gabbro_pillar": "竖纹辉长岩", "block.create.gabbro_pillar": "竖纹辉长岩",
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
"block.create.gearbox": "十字齿轮箱", "block.create.gearbox": "十字齿轮箱",
"block.create.gearshift": "换挡齿轮箱", "block.create.gearshift": "换挡齿轮箱",
"block.create.glass_fluid_pipe": "玻璃流体管道", "block.create.glass_fluid_pipe": "玻璃流体管道",
@ -368,6 +370,7 @@
"block.create.sequenced_gearshift": "可编程齿轮箱", "block.create.sequenced_gearshift": "可编程齿轮箱",
"block.create.shadow_steel_casing": "暗影机壳", "block.create.shadow_steel_casing": "暗影机壳",
"block.create.shaft": "传动杆", "block.create.shaft": "传动杆",
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
"block.create.smart_fluid_pipe": "智能流体管道", "block.create.smart_fluid_pipe": "智能流体管道",
"block.create.speedometer": "速度表", "block.create.speedometer": "速度表",
"block.create.spout": "注液器", "block.create.spout": "注液器",
@ -404,12 +407,11 @@
"block.create.zinc_ore": "锌矿石", "block.create.zinc_ore": "锌矿石",
"entity.create.contraption": "结构", "entity.create.contraption": "结构",
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
"entity.create.seat": "坐垫", "entity.create.seat": "坐垫",
"entity.create.stationary_contraption": "固定结构", "entity.create.stationary_contraption": "固定结构",
"entity.create.super_glue": "强力胶", "entity.create.super_glue": "强力胶",
"fluid.create.chocolate": "巧克力",
"fluid.create.honey": "蜂蜜",
"fluid.create.milk": "牛奶", "fluid.create.milk": "牛奶",
"fluid.create.potion": "药水", "fluid.create.potion": "药水",
"fluid.create.tea": "茶", "fluid.create.tea": "茶",
@ -1084,7 +1086,10 @@
"create.tooltip.chute.fans_push_down": "鼓风机从上方进行推动", "create.tooltip.chute.fans_push_down": "鼓风机从上方进行推动",
"create.tooltip.chute.fans_pull_up": "鼓风机从下方进行吸引", "create.tooltip.chute.fans_pull_up": "鼓风机从下方进行吸引",
"create.tooltip.chute.fans_pull_down": "鼓风机从上方进行吸引", "create.tooltip.chute.fans_pull_down": "鼓风机从上方进行吸引",
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
"create.hint.mechanical_arm_no_targets.title": "没有目标", "create.hint.mechanical_arm_no_targets.title": "没有目标",
"create.hint.mechanical_arm_no_targets": "看起来这个_动力臂_没有被分配任何_目标_。在手持机械臂的同时右键选取传送带、置物台、漏斗或其他设备来设置目标。", "create.hint.mechanical_arm_no_targets": "看起来这个_动力臂_没有被分配任何_目标_。在手持机械臂的同时右键选取传送带、置物台、漏斗或其他设备来设置目标。",
"create.hint.horizontal_funnel.title": "水平漏斗", "create.hint.horizontal_funnel.title": "水平漏斗",

View file

@ -1,9 +0,0 @@
{
"parent": "create:block/funnel/block",
"textures": {
"0": "create:block/andesite_funnel_plating",
"1": "create:block/andesite_casing",
"2": "create:block/andesite_funnel",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -1,9 +0,0 @@
{
"parent": "create:block/funnel/block",
"textures": {
"0": "create:block/andesite_funnel_plating",
"1": "create:block/andesite_casing",
"2": "create:block/andesite_funnel_powered",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View file

@ -1,9 +0,0 @@
{
"parent": "create:block/funnel/block",
"textures": {
"0": "create:block/brass_funnel_plating",
"1": "create:block/brass_casing",
"2": "create:block/brass_funnel",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -1,9 +0,0 @@
{
"parent": "create:block/funnel/block",
"textures": {
"0": "create:block/brass_funnel_plating",
"1": "create:block/brass_casing",
"2": "create:block/brass_funnel_powered",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,11 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_end",
"textures": {
"2": "create:block/gantry_shaft_flipped"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_end",
"textures": {
"2": "create:block/gantry_shaft_powered"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_end",
"textures": {
"2": "create:block/gantry_shaft_powered_flipped"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_middle",
"textures": {
"2": "create:block/gantry_shaft_flipped"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_middle",
"textures": {
"2": "create:block/gantry_shaft_powered"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_middle",
"textures": {
"2": "create:block/gantry_shaft_powered_flipped"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_single",
"textures": {
"2": "create:block/gantry_shaft_flipped"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_single",
"textures": {
"2": "create:block/gantry_shaft_powered"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_single",
"textures": {
"2": "create:block/gantry_shaft_powered_flipped"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_start",
"textures": {
"2": "create:block/gantry_shaft_flipped"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_start",
"textures": {
"2": "create:block/gantry_shaft_powered"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "create:block/gantry_shaft/block_start",
"textures": {
"2": "create:block/gantry_shaft_powered_flipped"
}
}

View file

@ -1,9 +1,11 @@
{ {
"parent": "create:block/funnel/item", "parent": "create:block/funnel/item",
"textures": { "textures": {
"0": "create:block/andesite_funnel_plating", "particle": "create:block/andesite_casing",
"1": "create:block/andesite_casing", "7": "create:block/andesite_funnel_plating",
"2": "create:block/andesite_funnel", "2": "create:block/andesite_funnel_neutral",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"3": "create:block/andesite_funnel_back" "3": "create:block/andesite_funnel_back"
} }
} }

View file

@ -1,9 +1,11 @@
{ {
"parent": "create:block/funnel/item", "parent": "create:block/funnel/item",
"textures": { "textures": {
"0": "create:block/brass_funnel_plating", "particle": "create:block/brass_casing",
"1": "create:block/brass_casing", "7": "create:block/brass_funnel_plating",
"2": "create:block/brass_funnel", "2": "create:block/brass_funnel_neutral",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"3": "create:block/brass_funnel_back" "3": "create:block/brass_funnel_back"
} }
} }

View file

@ -0,0 +1,3 @@
{
"parent": "create:block/gantry_pinion/item"
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:block/gantry_shaft/block_single"
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:block/smart_chute/block"
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:crafting/kinetics/gantry_pinion"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"item": "create:andesite_casing"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:crafting/kinetics/gantry_pinion"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:crafting/kinetics/gantry_shaft"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"item": "create:andesite_alloy"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:crafting/kinetics/gantry_shaft"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:crafting/kinetics/smart_chute"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"item": "create:chute"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:crafting/kinetics/smart_chute"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:gantry_pinion"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:gantry_shaft"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:smart_chute"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,25 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
" B ",
"ICI",
" S "
],
"key": {
"B": {
"tag": "minecraft:planks"
},
"S": {
"item": "create:cogwheel"
},
"C": {
"item": "create:andesite_casing"
},
"I": {
"item": "create:shaft"
}
},
"result": {
"item": "create:gantry_pinion"
}
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"A",
"R",
"A"
],
"key": {
"A": {
"item": "create:andesite_alloy"
},
"R": {
"tag": "forge:dusts/redstone"
}
},
"result": {
"item": "create:gantry_shaft",
"count": 8
}
}

View file

@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"I",
"S",
"P"
],
"key": {
"P": {
"item": "create:electron_tube"
},
"S": {
"item": "create:chute"
},
"I": {
"tag": "forge:plates/brass"
}
},
"result": {
"item": "create:smart_chute"
}
}

View file

@ -0,0 +1,14 @@
{
"type": "create:milling",
"ingredients": [
{
"item": "minecraft:sandstone"
}
],
"results": [
{
"item": "minecraft:sand"
}
],
"processingTime": 150
}

View file

@ -58,7 +58,8 @@ public class AllBlockPartials {
HARVESTER_BLADE = get("mechanical_harvester/blade"), DEPLOYER_POLE = get("deployer/pole"), HARVESTER_BLADE = get("mechanical_harvester/blade"), DEPLOYER_POLE = get("deployer/pole"),
DEPLOYER_HAND_POINTING = get("deployer/hand_pointing"), DEPLOYER_HAND_PUNCHING = get("deployer/hand_punching"), DEPLOYER_HAND_POINTING = get("deployer/hand_pointing"), DEPLOYER_HAND_PUNCHING = get("deployer/hand_punching"),
DEPLOYER_HAND_HOLDING = get("deployer/hand_holding"), ANALOG_LEVER_HANDLE = get("analog_lever/handle"), DEPLOYER_HAND_HOLDING = get("deployer/hand_holding"), ANALOG_LEVER_HANDLE = get("analog_lever/handle"),
ANALOG_LEVER_INDICATOR = get("analog_lever/indicator"), BELT_FUNNEL_FLAP = get("belt_funnel/flap"), ANALOG_LEVER_INDICATOR = get("analog_lever/indicator"), FUNNEL_FLAP = get("funnel/flap"),
BELT_FUNNEL_FLAP = get("belt_funnel/flap"),
BELT_TUNNEL_FLAP = get("belt_tunnel/flap"), FLEXPEATER_INDICATOR = get("diodes/indicator"), BELT_TUNNEL_FLAP = get("belt_tunnel/flap"), FLEXPEATER_INDICATOR = get("diodes/indicator"),
FLYWHEEL = get("flywheel/wheel"), FLYWHEEL_UPPER_ROTATING = get("flywheel/upper_rotating_connector"), FLYWHEEL = get("flywheel/wheel"), FLYWHEEL_UPPER_ROTATING = get("flywheel/upper_rotating_connector"),
@ -70,6 +71,8 @@ public class AllBlockPartials {
CUCKOO_RIGHT_DOOR = get("cuckoo_clock/right_door"), CUCKOO_PIG = get("cuckoo_clock/pig"), CUCKOO_RIGHT_DOOR = get("cuckoo_clock/right_door"), CUCKOO_PIG = get("cuckoo_clock/pig"),
CUCKOO_CREEPER = get("cuckoo_clock/creeper"), CUCKOO_CREEPER = get("cuckoo_clock/creeper"),
GANTRY_COGS = get("gantry_pinion/wheels"),
ROPE_COIL = get("rope_pulley/rope_coil"), ROPE_COIL = get("rope_pulley/rope_coil"),
ROPE_HALF = get("rope_pulley/rope_half"), ROPE_HALF = get("rope_pulley/rope_half"),
ROPE_HALF_MAGNET = get("rope_pulley/rope_half_magnet"), ROPE_HALF_MAGNET = get("rope_pulley/rope_half_magnet"),
@ -106,6 +109,8 @@ public class AllBlockPartials {
SPOUT_TOP = get("spout/top"), SPOUT_MIDDLE = get("spout/middle"), SPOUT_BOTTOM = get("spout/bottom"), SPOUT_TOP = get("spout/top"), SPOUT_MIDDLE = get("spout/middle"), SPOUT_BOTTOM = get("spout/bottom"),
SPEED_CONTROLLER_BRACKET = get("rotation_speed_controller/bracket"),
COUPLING_ATTACHMENT = getEntity("minecart_coupling/attachment"), COUPLING_ATTACHMENT = getEntity("minecart_coupling/attachment"),
COUPLING_RING = getEntity("minecart_coupling/ring"), COUPLING_RING = getEntity("minecart_coupling/ring"),
COUPLING_CONNECTOR = getEntity("minecart_coupling/connector") COUPLING_CONNECTOR = getEntity("minecart_coupling/connector")

View file

@ -54,6 +54,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.bea
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock.ChassisCTBehaviour; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock.ChassisCTBehaviour;
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.RadialChassisBlock; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.RadialChassisBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryPinionBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock.MinecartAnchorBlock; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock.MinecartAnchorBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlockItem; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlockItem;
@ -90,11 +91,11 @@ import com.simibubi.create.content.contraptions.processing.BasinMovementBehaviou
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlockItem; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlockItem;
import com.simibubi.create.content.contraptions.processing.burner.LitBlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.LitBlazeBurnerBlock;
import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock;
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock;
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftBlock; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftBlock;
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftGenerator; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftGenerator;
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
import com.simibubi.create.content.contraptions.relays.belt.BeltColor;
import com.simibubi.create.content.contraptions.relays.belt.BeltGenerator; import com.simibubi.create.content.contraptions.relays.belt.BeltGenerator;
import com.simibubi.create.content.contraptions.relays.belt.BeltModel; import com.simibubi.create.content.contraptions.relays.belt.BeltModel;
import com.simibubi.create.content.contraptions.relays.elementary.BracketedKineticBlockModel; import com.simibubi.create.content.contraptions.relays.elementary.BracketedKineticBlockModel;
@ -117,6 +118,7 @@ import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelCTBeh
import com.simibubi.create.content.logistics.block.chute.ChuteBlock; import com.simibubi.create.content.logistics.block.chute.ChuteBlock;
import com.simibubi.create.content.logistics.block.chute.ChuteGenerator; import com.simibubi.create.content.logistics.block.chute.ChuteGenerator;
import com.simibubi.create.content.logistics.block.chute.ChuteItem; import com.simibubi.create.content.logistics.block.chute.ChuteItem;
import com.simibubi.create.content.logistics.block.chute.SmartChuteBlock;
import com.simibubi.create.content.logistics.block.depot.DepotBlock; import com.simibubi.create.content.logistics.block.depot.DepotBlock;
import com.simibubi.create.content.logistics.block.diodes.AbstractDiodeGenerator; import com.simibubi.create.content.logistics.block.diodes.AbstractDiodeGenerator;
import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterBlock; import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterBlock;
@ -127,10 +129,9 @@ import com.simibubi.create.content.logistics.block.diodes.PulseRepeaterBlock;
import com.simibubi.create.content.logistics.block.diodes.PulseRepeaterGenerator; import com.simibubi.create.content.logistics.block.diodes.PulseRepeaterGenerator;
import com.simibubi.create.content.logistics.block.diodes.ToggleLatchBlock; import com.simibubi.create.content.logistics.block.diodes.ToggleLatchBlock;
import com.simibubi.create.content.logistics.block.diodes.ToggleLatchGenerator; import com.simibubi.create.content.logistics.block.diodes.ToggleLatchGenerator;
import com.simibubi.create.content.logistics.block.funnel.AndesiteBeltFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.AndesiteFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.AndesiteFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelGenerator; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelGenerator;
import com.simibubi.create.content.logistics.block.funnel.BrassBeltFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.BrassFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.BrassFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.FunnelMovementBehaviour; import com.simibubi.create.content.logistics.block.funnel.FunnelMovementBehaviour;
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock;
@ -172,8 +173,10 @@ import net.minecraft.item.Item;
import net.minecraft.state.properties.PistonType; import net.minecraft.state.properties.PistonType;
import net.minecraft.tags.BlockTags; import net.minecraft.tags.BlockTags;
import net.minecraft.tags.ItemTags; import net.minecraft.tags.ItemTags;
import net.minecraft.util.Direction.AxisDirection;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.generators.ConfiguredModel; import net.minecraftforge.client.model.generators.ConfiguredModel;
import net.minecraftforge.client.model.generators.ModelFile;
import net.minecraftforge.common.Tags; import net.minecraftforge.common.Tags;
import net.minecraftforge.common.ToolType; import net.minecraftforge.common.ToolType;
@ -298,7 +301,8 @@ public class AllBlocks {
.blockstate((c, p) -> new EncasedBeltGenerator((state, suffix) -> { .blockstate((c, p) -> new EncasedBeltGenerator((state, suffix) -> {
String powered = state.get(AdjustablePulleyBlock.POWERED) ? "_powered" : ""; String powered = state.get(AdjustablePulleyBlock.POWERED) ? "_powered" : "";
return p.models() return p.models()
.withExistingParent(c.getName() + "_" + suffix + powered, p.modLoc("block/encased_chain_drive/" + suffix)) .withExistingParent(c.getName() + "_" + suffix + powered,
p.modLoc("block/encased_chain_drive/" + suffix))
.texture("side", p.modLoc("block/" + c.getName() + powered)); .texture("side", p.modLoc("block/" + c.getName() + powered));
}).generate(c, p)) }).generate(c, p))
.item() .item()
@ -313,7 +317,6 @@ public class AllBlocks {
.properties(p -> p.hardnessAndResistance(0.8F)) .properties(p -> p.hardnessAndResistance(0.8F))
.blockstate(new BeltGenerator()::generate) .blockstate(new BeltGenerator()::generate)
.transform(StressConfigDefaults.setImpact(1.0)) .transform(StressConfigDefaults.setImpact(1.0))
.onRegister(CreateRegistrate.blockColors(() -> BeltColor::new))
.onRegister(CreateRegistrate.blockModel(() -> BeltModel::new)) .onRegister(CreateRegistrate.blockModel(() -> BeltModel::new))
.register(); .register();
@ -479,6 +482,13 @@ public class AllBlocks {
.transform(customItemModel("_", "block")) .transform(customItemModel("_", "block"))
.register(); .register();
public static final BlockEntry<SmartChuteBlock> SMART_CHUTE = REGISTRATE.block("smart_chute", SmartChuteBlock::new)
.initialProperties(SharedProperties::softMetal)
.blockstate((c, p) -> BlockStateGen.simpleBlock(c, p, AssetLookup.forPowered(c, p)))
.item()
.transform(customItemModel("_", "block"))
.register();
public static final BlockEntry<GaugeBlock> SPEEDOMETER = REGISTRATE.block("speedometer", GaugeBlock::speed) public static final BlockEntry<GaugeBlock> SPEEDOMETER = REGISTRATE.block("speedometer", GaugeBlock::speed)
.initialProperties(SharedProperties::wooden) .initialProperties(SharedProperties::wooden)
.transform(StressConfigDefaults.setNoImpact()) .transform(StressConfigDefaults.setNoImpact())
@ -680,6 +690,38 @@ public class AllBlocks {
.getName() + "/head")))) .getName() + "/head"))))
.register(); .register();
public static final BlockEntry<GantryPinionBlock> GANTRY_PINION =
REGISTRATE.block("gantry_pinion", GantryPinionBlock::new)
.initialProperties(SharedProperties::stone)
.properties(Block.Properties::nonOpaque)
.blockstate(BlockStateGen.directionalAxisBlockProvider())
.item()
.transform(customItemModel())
.register();
public static final BlockEntry<GantryShaftBlock> GANTRY_SHAFT =
REGISTRATE.block("gantry_shaft", GantryShaftBlock::new)
.initialProperties(SharedProperties::stone)
.blockstate((c, p) -> p.directionalBlock(c.get(), s -> {
boolean isPowered = s.get(GantryShaftBlock.POWERED);
boolean isFlipped = s.get(GantryShaftBlock.FACING)
.getAxisDirection() == AxisDirection.NEGATIVE;
String partName = s.get(GantryShaftBlock.PART)
.getName();
String flipped = isFlipped ? "_flipped" : "";
String powered = isPowered ? "_powered" : "";
ModelFile existing = AssetLookup.partialBaseModel(c, p, partName);
if (!isPowered && !isFlipped)
return existing;
return p.models()
.withExistingParent("block/" + c.getName() + "_" + partName + powered + flipped,
existing.getLocation())
.texture("2", p.modLoc("block/" + c.getName() + powered + flipped));
}))
.item()
.transform(customItemModel("_", "block_single"))
.register();
public static final BlockEntry<WindmillBearingBlock> WINDMILL_BEARING = public static final BlockEntry<WindmillBearingBlock> WINDMILL_BEARING =
REGISTRATE.block("windmill_bearing", WindmillBearingBlock::new) REGISTRATE.block("windmill_bearing", WindmillBearingBlock::new)
.transform(BuilderTransformers.bearing("windmill", "gearbox", true)) .transform(BuilderTransformers.bearing("windmill", "gearbox", true))
@ -1042,8 +1084,8 @@ public class AllBlocks {
.transform(BuilderTransformers.funnel("andesite", Create.asResource("block/andesite_casing"))) .transform(BuilderTransformers.funnel("andesite", Create.asResource("block/andesite_casing")))
.register(); .register();
public static final BlockEntry<AndesiteBeltFunnelBlock> ANDESITE_BELT_FUNNEL = public static final BlockEntry<BeltFunnelBlock> ANDESITE_BELT_FUNNEL =
REGISTRATE.block("andesite_belt_funnel", AndesiteBeltFunnelBlock::new) REGISTRATE.block("andesite_belt_funnel", p -> new BeltFunnelBlock(AllBlocks.ANDESITE_FUNNEL, p))
.initialProperties(SharedProperties::stone) .initialProperties(SharedProperties::stone)
.tag(AllBlockTags.SAFE_NBT.tag) .tag(AllBlockTags.SAFE_NBT.tag)
.blockstate(new BeltFunnelGenerator("andesite", new ResourceLocation("block/polished_andesite"))::generate) .blockstate(new BeltFunnelGenerator("andesite", new ResourceLocation("block/polished_andesite"))::generate)
@ -1058,8 +1100,8 @@ public class AllBlocks {
.transform(BuilderTransformers.funnel("brass", Create.asResource("block/brass_casing"))) .transform(BuilderTransformers.funnel("brass", Create.asResource("block/brass_casing")))
.register(); .register();
public static final BlockEntry<BrassBeltFunnelBlock> BRASS_BELT_FUNNEL = public static final BlockEntry<BeltFunnelBlock> BRASS_BELT_FUNNEL =
REGISTRATE.block("brass_belt_funnel", BrassBeltFunnelBlock::new) REGISTRATE.block("brass_belt_funnel", p -> new BeltFunnelBlock(AllBlocks.BRASS_FUNNEL, p))
.initialProperties(SharedProperties::softMetal) .initialProperties(SharedProperties::softMetal)
.tag(AllBlockTags.SAFE_NBT.tag) .tag(AllBlockTags.SAFE_NBT.tag)
.blockstate(new BeltFunnelGenerator("brass", Create.asResource("block/brass_block"))::generate) .blockstate(new BeltFunnelGenerator("brass", Create.asResource("block/brass_block"))::generate)

View file

@ -6,6 +6,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Con
import com.simibubi.create.content.contraptions.components.structureMovement.ControlledContraptionEntityRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.ControlledContraptionEntityRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntityRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntityRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryContraptionEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryContraptionEntityRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueRenderer;
import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.Lang;
@ -23,16 +25,27 @@ import net.minecraftforge.fml.client.registry.RenderingRegistry;
public class AllEntityTypes { public class AllEntityTypes {
public static final RegistryEntry<EntityType<OrientedContraptionEntity>> ORIENTED_CONTRAPTION = public static final RegistryEntry<EntityType<OrientedContraptionEntity>> ORIENTED_CONTRAPTION =
register("contraption", OrientedContraptionEntity::new, EntityClassification.MISC, 5, 3, true, contraption("contraption", OrientedContraptionEntity::new, 5, 3, true);
AbstractContraptionEntity::build);
public static final RegistryEntry<EntityType<ControlledContraptionEntity>> CONTROLLED_CONTRAPTION = public static final RegistryEntry<EntityType<ControlledContraptionEntity>> CONTROLLED_CONTRAPTION =
register("stationary_contraption", ControlledContraptionEntity::new, EntityClassification.MISC, 20, 40, false, contraption("stationary_contraption", ControlledContraptionEntity::new, 20, 40, false);
AbstractContraptionEntity::build); public static final RegistryEntry<EntityType<GantryContraptionEntity>> GANTRY_CONTRAPTION =
contraption("gantry_contraption", GantryContraptionEntity::new, 10, 40, false);
public static final RegistryEntry<EntityType<SuperGlueEntity>> SUPER_GLUE = register("super_glue", public static final RegistryEntry<EntityType<SuperGlueEntity>> SUPER_GLUE = register("super_glue",
SuperGlueEntity::new, EntityClassification.MISC, 10, Integer.MAX_VALUE, false, SuperGlueEntity::build); SuperGlueEntity::new, EntityClassification.MISC, 10, Integer.MAX_VALUE, false, SuperGlueEntity::build);
public static final RegistryEntry<EntityType<SeatEntity>> SEAT = public static final RegistryEntry<EntityType<SeatEntity>> SEAT =
register("seat", SeatEntity::new, EntityClassification.MISC, 0, Integer.MAX_VALUE, false, SeatEntity::build); register("seat", SeatEntity::new, EntityClassification.MISC, 0, Integer.MAX_VALUE, false, SeatEntity::build);
//
public static void register() {}
private static <T extends Entity> RegistryEntry<EntityType<T>> contraption(String name, IFactory<T> factory,
int range, int updateFrequency, boolean sendVelocity) {
return register(name, factory, EntityClassification.MISC, range, updateFrequency, sendVelocity,
AbstractContraptionEntity::build);
}
private static <T extends Entity> RegistryEntry<EntityType<T>> register(String name, IFactory<T> factory, private static <T extends Entity> RegistryEntry<EntityType<T>> register(String name, IFactory<T> factory,
EntityClassification group, int range, int updateFrequency, boolean sendVelocity, EntityClassification group, int range, int updateFrequency, boolean sendVelocity,
NonNullConsumer<EntityType.Builder<T>> propertyBuilder) { NonNullConsumer<EntityType.Builder<T>> propertyBuilder) {
@ -46,14 +59,14 @@ public class AllEntityTypes {
.register(); .register();
} }
public static void register() {}
@OnlyIn(value = Dist.CLIENT) @OnlyIn(value = Dist.CLIENT)
public static void registerRenderers() { public static void registerRenderers() {
RenderingRegistry.registerEntityRenderingHandler(CONTROLLED_CONTRAPTION.get(), RenderingRegistry.registerEntityRenderingHandler(CONTROLLED_CONTRAPTION.get(),
ControlledContraptionEntityRenderer::new); ControlledContraptionEntityRenderer::new);
RenderingRegistry.registerEntityRenderingHandler(ORIENTED_CONTRAPTION.get(), RenderingRegistry.registerEntityRenderingHandler(ORIENTED_CONTRAPTION.get(),
OrientedContraptionEntityRenderer::new); OrientedContraptionEntityRenderer::new);
RenderingRegistry.registerEntityRenderingHandler(GANTRY_CONTRAPTION.get(),
GantryContraptionEntityRenderer::new);
RenderingRegistry.registerEntityRenderingHandler(SUPER_GLUE.get(), SuperGlueRenderer::new); RenderingRegistry.registerEntityRenderingHandler(SUPER_GLUE.get(), SuperGlueRenderer::new);
RenderingRegistry.registerEntityRenderingHandler(SEAT.get(), SeatEntity.Render::new); RenderingRegistry.registerEntityRenderingHandler(SEAT.get(), SeatEntity.Render::new);
} }

View file

@ -41,10 +41,6 @@ public class AllShapes {
SAIL_FRAME_COLLISION = shape(0, 5, 0, 16, 9, 16).erase(2, 0, 2, 14, 16, 14) SAIL_FRAME_COLLISION = shape(0, 5, 0, 16, 9, 16).erase(2, 0, 2, 14, 16, 14)
.forDirectional(), .forDirectional(),
SAIL_FRAME = shape(0, 5, 0, 16, 9, 16).forDirectional(), SAIL = shape(0, 5, 0, 16, 10, 16).forDirectional(), SAIL_FRAME = shape(0, 5, 0, 16, 9, 16).forDirectional(), SAIL = shape(0, 5, 0, 16, 10, 16).forDirectional(),
SPEED_CONTROLLER = shape(0, 0, 0, 16, 2, 16).add(1, 1, 1, 15, 15, 15)
.erase(0, 8, 5, 16, 16, 11)
.add(2, 9, 2, 14, 14, 14)
.forHorizontalAxis(),
HARVESTER_BASE = shape(0, 2, 0, 16, 14, 3).forDirectional(SOUTH), HARVESTER_BASE = shape(0, 2, 0, 16, 14, 3).forDirectional(SOUTH),
NOZZLE = shape(2, 0, 2, 14, 14, 14).add(1, 13, 1, 15, 15, 15) NOZZLE = shape(2, 0, 2, 14, 14, 14).add(1, 13, 1, 15, 15, 15)
.erase(3, 13, 3, 13, 15, 13) .erase(3, 13, 3, 13, 15, 13)
@ -68,34 +64,26 @@ public class AllShapes {
NIXIE_TUBE_CEILING = shape(0, 12, 0, 16, 16, 16).add(9, 1, 5, 15, 16, 11) NIXIE_TUBE_CEILING = shape(0, 12, 0, 16, 16, 16).add(9, 1, 5, 15, 16, 11)
.add(1, 1, 5, 7, 16, 11) .add(1, 1, 5, 7, 16, 11)
.forHorizontalAxis(), .forHorizontalAxis(),
FUNNEL = shape(2, -2, 2, 14, 2, 14).add(3, 2, 3, 13, 6, 13) FUNNEL_COLLISION = shape(0, 0, 0, 16, 4, 16).forDirectional(UP),
.add(2, 6, 2, 14, 10, 14)
.add(0, 10, 0, 16, 16, 16)
.forDirectional(UP),
FUNNEL_COLLISION = shape(2, -2, 2, 14, 2, 14).add(3, 2, 3, 13, 6, 13)
.add(2, 6, 2, 14, 10, 14)
.add(0, 10, 0, 16, 13, 16)
.forDirectional(UP),
BELT_FUNNEL_RETRACTED = shape(2, -2, 14, 14, 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), .forHorizontal(NORTH),
BELT_FUNNEL_EXTENDED = shape(2, -2, 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(2, -4, 6, 14, 14, 10)
.add(0, -5, 0, 16, 16, 6) .add(0, -5, 0, 16, 16, 6)
.forHorizontal(NORTH), .forHorizontal(NORTH),
BELT_FUNNEL_PERPENDICULAR = BELT_FUNNEL_PERPENDICULAR = shape(2, -2, 14, 14, 14, 18).add(1, 8, 12, 15, 15, 14)
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, 13, 7, 15.9, 15, 11)
.add(0.1, 9, 8, 15.9, 13, 12) .add(0.1, 9, 8, 15.9, 13, 12)
.add(0.1, 5, 9, 15.9, 9, 13) .add(0.1, 5, 9, 15.9, 9, 13)
.add(0.1, 1, 10, 15.9, 5, 14) .add(0.1, 1, 10, 15.9, 5, 14)
.add(0.1, -3, 11, 15.9, 1, 15) .add(0.1, -3, 11, 15.9, 1, 15)
.forHorizontal(NORTH), .forHorizontal(NORTH),
BELT_FUNNEL_CONNECTED = FUNNEL = shape(2, 2, 14, 14, 14, 18).add(1, 8, 12, 15, 15, 14)
shape(2, -2, 14, 14, 14, 18) .add(0.1, 13, 7, 15.9, 15, 11)
.add(0, -5, 5, 16, 16, 11) .add(0.1, 9, 8, 15.9, 13, 12)
.add(2, -4, 2, 14, 14, -2) .add(0.1, 5, 9, 15.9, 9, 13)
.add(3, -2, 0, 13, 13, 16) .add(0.1, 1, 10, 15.9, 5, 14)
.add(0.1, -1, 11, 15.9, 1, 15)
.forHorizontal(NORTH), .forHorizontal(NORTH),
FLUID_VALVE = shape(3, -1, 3, 13, 17, 13).add(2, 2, 2, 14, 14, 14) FLUID_VALVE = shape(3, -1, 3, 13, 17, 13).add(2, 2, 2, 14, 14, 14)
.forAxis(), .forAxis(),
@ -152,6 +140,8 @@ public class AllShapes {
BASIN_COLLISION_SHAPE = shape(0, 2, 0, 16, 13, 16).erase(2, 5, 2, 14, 16, 14) BASIN_COLLISION_SHAPE = shape(0, 2, 0, 16, 13, 16).erase(2, 5, 2, 14, 16, 14)
.add(2, 0, 2, 14, 2, 14) .add(2, 0, 2, 14, 2, 14)
.build(), .build(),
SPEED_CONTROLLER = shape(0, 0, 0, 16, 4, 16).add(1, 1, 1, 15, 13, 15)
.add(0, 8, 0, 16, 14, 16).build(),
HEATER_BLOCK_SHAPE = shape(2, 0, 2, 14, 14, 14).add(0, 0, 0, 16, 4, 16) HEATER_BLOCK_SHAPE = shape(2, 0, 2, 14, 14, 14).add(0, 0, 0, 16, 4, 16)
.build(), .build(),
HEATER_BLOCK_SPECIAL_COLLISION_SHAPE = shape(0, 0, 0, 16, 4, 16).build(), HEATER_BLOCK_SPECIAL_COLLISION_SHAPE = shape(0, 0, 0, 16, 4, 16).build(),
@ -183,6 +173,9 @@ public class AllShapes {
.build(), .build(),
CHUTE = shape(1, 8, 1, 15, 16, 15).add(2, 0, 2, 14, 8, 14) CHUTE = shape(1, 8, 1, 15, 16, 15).add(2, 0, 2, 14, 8, 14)
.build(), .build(),
SMART_CHUTE = shape(0, 0, 0, 16, 5, 16).add(0, 9, 0, 16, 15, 16)
.add(1, 0, 1, 15, 16, 15)
.build(),
TANK = shape(1, 0, 1, 15, 16, 15).build(), TANK_TOP = shape(TANK_TOP_LID).add(TANK) TANK = shape(1, 0, 1, 15, 16, 15).build(), TANK_TOP = shape(TANK_TOP_LID).add(TANK)
.build(), .build(),
TANK_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK) TANK_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK)
@ -190,6 +183,12 @@ public class AllShapes {
TANK_TOP_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK_TOP_LID) TANK_TOP_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK_TOP_LID)
.add(TANK) .add(TANK)
.build(), .build(),
FUNNEL_FLOOR = shape(2, -2, 2, 14, 8, 14).add(1, 2, 1, 15, 8, 15)
.add(0, 4, 0, 16, 10, 16)
.build(),
FUNNEL_CEILING = shape(2, 8, 2, 14, 18, 14).add(1, 8, 1, 15, 14, 15)
.add(0, 6, 0, 16, 12, 16)
.build(),
DEPOT = shape(CASING_11PX.get(Direction.UP)).add(1, 11, 1, 15, 13, 15) DEPOT = shape(CASING_11PX.get(Direction.UP)).add(1, 11, 1, 15, 13, 15)
.build() .build()

View file

@ -18,44 +18,40 @@ import com.simibubi.create.foundation.block.render.SpriteShifter;
import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.block.WoodType; import net.minecraft.block.WoodType;
import net.minecraft.item.DyeColor;
public class AllSpriteShifts { public class AllSpriteShifts {
static final Map<WoodType, CTSpriteShiftEntry> static final Map<WoodType, CTSpriteShiftEntry> WOODEN_WINDOWS = new IdentityHashMap<>();
WOODEN_WINDOWS = new IdentityHashMap<>(); static final Map<PaletteStoneVariants, Map<PaletteBlockPatterns.CTs, CTSpriteShiftEntry>> PALETTE_VARIANT_PATTERNS =
static final Map<PaletteStoneVariants, Map<PaletteBlockPatterns.CTs, CTSpriteShiftEntry>> new IdentityHashMap<>();
PALETTE_VARIANT_PATTERNS = new IdentityHashMap<>();
public static final CTSpriteShiftEntry public static final Map<DyeColor, SpriteShiftEntry> DYED_BELTS = new IdentityHashMap<>(),
FRAMED_GLASS = getCT(OMNIDIRECTIONAL, "palettes/framed_glass", "palettes/framed_glass"), DYED_OFFSET_BELTS = new IdentityHashMap<>(), DYED_DIAGONAL_BELTS = new IdentityHashMap<>();
public static final CTSpriteShiftEntry FRAMED_GLASS =
getCT(OMNIDIRECTIONAL, "palettes/framed_glass", "palettes/framed_glass"),
HORIZONTAL_FRAMED_GLASS = getCT(HORIZONTAL, "palettes/framed_glass", "palettes/horizontal_framed_glass"), HORIZONTAL_FRAMED_GLASS = getCT(HORIZONTAL, "palettes/framed_glass", "palettes/horizontal_framed_glass"),
VERTICAL_FRAMED_GLASS = getCT(VERTICAL, "palettes/framed_glass", "palettes/vertical_framed_glass"), VERTICAL_FRAMED_GLASS = getCT(VERTICAL, "palettes/framed_glass", "palettes/vertical_framed_glass"),
ORNATE_IRON_WINDOW = vertical("palettes/ornate_iron_window"); ORNATE_IRON_WINDOW = vertical("palettes/ornate_iron_window");
public static final CTSpriteShiftEntry public static final CTSpriteShiftEntry CRAFTER_FRONT = getCT(CTType.OMNIDIRECTIONAL, "crafter_top", "brass_casing"),
CRAFTER_FRONT = getCT(CTType.OMNIDIRECTIONAL, "crafter_top", "brass_casing"),
CRAFTER_SIDE = getCT(CTType.VERTICAL, "crafter_side"), CRAFTER_SIDE = getCT(CTType.VERTICAL, "crafter_side"),
CRAFTER_OTHERSIDE = getCT(CTType.HORIZONTAL, "crafter_side"); CRAFTER_OTHERSIDE = getCT(CTType.HORIZONTAL, "crafter_side");
public static final CTSpriteShiftEntry public static final CTSpriteShiftEntry ANDESITE_CASING = omni("andesite_casing"),
ANDESITE_CASING = omni("andesite_casing"), BRASS_CASING = omni("brass_casing"), COPPER_CASING = omni("copper_casing"),
BRASS_CASING = omni("brass_casing"), SHADOW_STEEL_CASING = omni("shadow_steel_casing"), REFINED_RADIANCE_CASING = omni("refined_radiance_casing"),
COPPER_CASING = omni("copper_casing"),
SHADOW_STEEL_CASING = omni("shadow_steel_casing"),
REFINED_RADIANCE_CASING = omni("refined_radiance_casing"),
CREATIVE_CASING = getCT(CTType.CROSS, "creative_casing"); CREATIVE_CASING = getCT(CTType.CROSS, "creative_casing");
public static final CTSpriteShiftEntry public static final CTSpriteShiftEntry CHASSIS = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end"),
CHASSIS = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end"),
CHASSIS_STICKY = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end_sticky"); CHASSIS_STICKY = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end_sticky");
public static final CTSpriteShiftEntry public static final CTSpriteShiftEntry BRASS_TUNNEL_TOP = vertical("brass_tunnel_top"),
BRASS_TUNNEL_TOP = vertical("brass_tunnel_top"),
FLUID_TANK = getCT(CTType.CROSS, "fluid_tank"), FLUID_TANK = getCT(CTType.CROSS, "fluid_tank"),
CREATIVE_FLUID_TANK = getCT(CTType.CROSS, "creative_fluid_tank"); CREATIVE_FLUID_TANK = getCT(CTType.CROSS, "creative_fluid_tank");
public static final SpriteShiftEntry public static final SpriteShiftEntry BELT = SpriteShifter.get("block/belt", "block/belt_animated"),
BELT = SpriteShifter.get("block/belt", "block/belt_animated"),
BELT_OFFSET = SpriteShifter.get("block/belt_offset", "block/belt_animated"), BELT_OFFSET = SpriteShifter.get("block/belt_offset", "block/belt_animated"),
BELT_DIAGONAL = SpriteShifter.get("block/belt_diagonal", "block/belt_diagonal_animated"), BELT_DIAGONAL = SpriteShifter.get("block/belt_diagonal", "block/belt_diagonal_animated"),
ANDESIDE_BELT_CASING = SpriteShifter.get("block/brass_casing_belt", "block/andesite_casing_belt"), ANDESIDE_BELT_CASING = SpriteShifter.get("block/brass_casing_belt", "block/andesite_casing_belt"),
@ -93,6 +89,13 @@ public class AllSpriteShifts {
map.put(texture, getCT(texture.type, target)); map.put(texture, getCT(texture.type, target));
} }
} }
for (DyeColor color : DyeColor.values()) {
String id = color.getName();
DYED_BELTS.put(color, SpriteShifter.get("block/belt", "block/belt/" + id));
DYED_OFFSET_BELTS.put(color, SpriteShifter.get("block/belt_offset", "block/belt/" + id));
DYED_DIAGONAL_BELTS.put(color, SpriteShifter.get("block/belt_diagonal", "block/belt/" + id + "_diagonal"));
}
} }
// //

View file

@ -40,6 +40,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.bea
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.WindmillBearingTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.WindmillBearingTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryPinionRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryPinionTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonTileEntity;
@ -68,6 +70,7 @@ import com.simibubi.create.content.contraptions.processing.BasinRenderer;
import com.simibubi.create.content.contraptions.processing.BasinTileEntity; import com.simibubi.create.content.contraptions.processing.BasinTileEntity;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerRenderer; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerRenderer;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerTileEntity; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerTileEntity;
import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftTileEntity;
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerRenderer; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerRenderer;
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity;
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftTileEntity; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftTileEntity;
@ -90,6 +93,8 @@ import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelTileEn
import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelTileEntity; import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelTileEntity;
import com.simibubi.create.content.logistics.block.chute.ChuteRenderer; import com.simibubi.create.content.logistics.block.chute.ChuteRenderer;
import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity; import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity;
import com.simibubi.create.content.logistics.block.chute.SmartChuteRenderer;
import com.simibubi.create.content.logistics.block.chute.SmartChuteTileEntity;
import com.simibubi.create.content.logistics.block.depot.DepotRenderer; import com.simibubi.create.content.logistics.block.depot.DepotRenderer;
import com.simibubi.create.content.logistics.block.depot.DepotTileEntity; import com.simibubi.create.content.logistics.block.depot.DepotTileEntity;
import com.simibubi.create.content.logistics.block.diodes.AdjustablePulseRepeaterTileEntity; import com.simibubi.create.content.logistics.block.diodes.AdjustablePulseRepeaterTileEntity;
@ -202,6 +207,18 @@ public class AllTileEntities {
.renderer(() -> CuckooClockRenderer::new) .renderer(() -> CuckooClockRenderer::new)
.register(); .register();
public static final TileEntityEntry<GantryShaftTileEntity> GANTRY_SHAFT = Create.registrate()
.tileEntity("gantry_shaft", GantryShaftTileEntity::new)
.validBlocks(AllBlocks.GANTRY_SHAFT)
.renderer(() -> KineticTileEntityRenderer::new)
.register();
public static final TileEntityEntry<GantryPinionTileEntity> GANTRY_PINION = Create.registrate()
.tileEntity("gantry_pinion", GantryPinionTileEntity::new)
.validBlocks(AllBlocks.GANTRY_PINION)
.renderer(() -> GantryPinionRenderer::new)
.register();
public static final TileEntityEntry<PumpTileEntity> MECHANICAL_PUMP = Create.registrate() public static final TileEntityEntry<PumpTileEntity> MECHANICAL_PUMP = Create.registrate()
.tileEntity("mechanical_pump", PumpTileEntity::new) .tileEntity("mechanical_pump", PumpTileEntity::new)
.validBlocks(AllBlocks.MECHANICAL_PUMP) .validBlocks(AllBlocks.MECHANICAL_PUMP)
@ -278,6 +295,12 @@ public class AllTileEntities {
.renderer(() -> ChuteRenderer::new) .renderer(() -> ChuteRenderer::new)
.register(); .register();
public static final TileEntityEntry<SmartChuteTileEntity> SMART_CHUTE = Create.registrate()
.tileEntity("smart_chute", SmartChuteTileEntity::new)
.validBlocks(AllBlocks.SMART_CHUTE)
.renderer(() -> SmartChuteRenderer::new)
.register();
public static final TileEntityEntry<BeltTunnelTileEntity> ANDESITE_TUNNEL = Create.registrate() public static final TileEntityEntry<BeltTunnelTileEntity> ANDESITE_TUNNEL = Create.registrate()
.tileEntity("andesite_tunnel", BeltTunnelTileEntity::new) .tileEntity("andesite_tunnel", BeltTunnelTileEntity::new)
.validBlocks(AllBlocks.ANDESITE_TUNNEL) .validBlocks(AllBlocks.ANDESITE_TUNNEL)

View file

@ -14,6 +14,7 @@ import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler;
import com.simibubi.create.content.palettes.AllPaletteBlocks; import com.simibubi.create.content.palettes.AllPaletteBlocks;
import com.simibubi.create.content.palettes.PalettesItemGroup; import com.simibubi.create.content.palettes.PalettesItemGroup;
import com.simibubi.create.content.schematics.ServerSchematicLoader; import com.simibubi.create.content.schematics.ServerSchematicLoader;
import com.simibubi.create.content.schematics.filtering.SchematicInstances;
import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.advancement.AllAdvancements;
import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.advancement.AllTriggers;
import com.simibubi.create.foundation.command.ChunkUtil; import com.simibubi.create.foundation.command.ChunkUtil;
@ -24,7 +25,6 @@ import com.simibubi.create.foundation.data.LangMerger;
import com.simibubi.create.foundation.data.recipe.MechanicalCraftingRecipeGen; import com.simibubi.create.foundation.data.recipe.MechanicalCraftingRecipeGen;
import com.simibubi.create.foundation.data.recipe.ProcessingRecipeGen; import com.simibubi.create.foundation.data.recipe.ProcessingRecipeGen;
import com.simibubi.create.foundation.data.recipe.StandardRecipeGen; import com.simibubi.create.foundation.data.recipe.StandardRecipeGen;
import com.simibubi.create.foundation.entity.CreateDataSerializers;
import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.AllPackets;
import com.simibubi.create.foundation.worldgen.AllWorldFeatures; import com.simibubi.create.foundation.worldgen.AllWorldFeatures;
import com.tterrag.registrate.util.NonNullLazyValue; import com.tterrag.registrate.util.NonNullLazyValue;
@ -51,7 +51,7 @@ public class Create {
public static final String ID = "create"; public static final String ID = "create";
public static final String NAME = "Create"; public static final String NAME = "Create";
public static final String VERSION = "0.3"; public static final String VERSION = "0.3.1";
public static Logger logger = LogManager.getLogger(); public static Logger logger = LogManager.getLogger();
public static ItemGroup baseCreativeTab = new CreateItemGroup(); public static ItemGroup baseCreativeTab = new CreateItemGroup();
@ -93,7 +93,6 @@ public class Create {
modEventBus.addListener(EventPriority.LOWEST, this::gatherData); modEventBus.addListener(EventPriority.LOWEST, this::gatherData);
AllConfigs.register(); AllConfigs.register();
CreateDataSerializers.register();
random = new Random(); random = new Random();
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> CreateClient.addClientListeners(modEventBus)); DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> CreateClient.addClientListeners(modEventBus));
@ -101,6 +100,7 @@ public class Create {
public static void init(final FMLCommonSetupEvent event) { public static void init(final FMLCommonSetupEvent event) {
CapabilityMinecartController.register(); CapabilityMinecartController.register();
SchematicInstances.register();
schematicReceiver = new ServerSchematicLoader(); schematicReceiver = new ServerSchematicLoader();
redstoneLinkNetworkHandler = new RedstoneLinkNetworkHandler(); redstoneLinkNetworkHandler = new RedstoneLinkNetworkHandler();
torquePropagator = new TorquePropagator(); torquePropagator = new TorquePropagator();

View file

@ -114,8 +114,9 @@ public class CreateJEI implements IModPlugin {
.build(), .build(),
autoShapeless = register("automatic_shapeless", MixingCategory::autoShapeless) autoShapeless = register("automatic_shapeless", MixingCategory::autoShapeless)
.recipes(r -> r.getSerializer() == IRecipeSerializer.CRAFTING_SHAPELESS .recipes(r -> r.getSerializer() == IRecipeSerializer.CRAFTING_SHAPELESS && r.getIngredients()
&& !MechanicalPressTileEntity.canCompress(r.getIngredients()), BasinRecipe::convertShapeless) .size() > 1 && !MechanicalPressTileEntity.canCompress(r.getIngredients()),
BasinRecipe::convertShapeless)
.catalyst(AllBlocks.MECHANICAL_MIXER::get) .catalyst(AllBlocks.MECHANICAL_MIXER::get)
.catalyst(AllBlocks.BASIN::get) .catalyst(AllBlocks.BASIN::get)
.enableWhen(c -> c.allowShapelessInMixer) .enableWhen(c -> c.allowShapelessInMixer)
@ -171,6 +172,8 @@ public class CreateJEI implements IModPlugin {
.build(), .build(),
autoShaped = register("automatic_shaped", MechanicalCraftingCategory::new) autoShaped = register("automatic_shaped", MechanicalCraftingCategory::new)
.recipes(r -> r.getSerializer() == IRecipeSerializer.CRAFTING_SHAPELESS && r.getIngredients()
.size() == 1)
.recipes( .recipes(
r -> (r.getType() == IRecipeType.CRAFTING && r.getType() != AllRecipeTypes.MECHANICAL_CRAFTING.type) r -> (r.getType() == IRecipeType.CRAFTING && r.getType() != AllRecipeTypes.MECHANICAL_CRAFTING.type)
&& (r instanceof ShapedRecipe)) && (r instanceof ShapedRecipe))

View file

@ -46,20 +46,20 @@ public class BlockCuttingCategory extends CreateRecipeCategory<CondensedBlockCut
itemStacks.init(0, true, 4, 4); itemStacks.init(0, true, 4, 4);
itemStacks.set(0, Arrays.asList(recipe.getIngredients().get(0).getMatchingStacks())); itemStacks.set(0, Arrays.asList(recipe.getIngredients().get(0).getMatchingStacks()));
List<ItemStack> results = recipe.getOutputs(); List<List<ItemStack>> results = recipe.getCondensedOutputs();
for (int outputIndex = 0; outputIndex < results.size(); outputIndex++) { for (int outputIndex = 0; outputIndex < results.size(); outputIndex++) {
int xOffset = (outputIndex % 5) * 19; int xOffset = (outputIndex % 5) * 19;
int yOffset = (outputIndex / 5) * -19; int yOffset = (outputIndex / 5) * -19;
itemStacks.init(outputIndex + 1, false, 77 + xOffset, 47 + yOffset); itemStacks.init(outputIndex + 1, false, 77 + xOffset, 47 + yOffset);
itemStacks.set(outputIndex + 1, results.get(outputIndex).getStack()); itemStacks.set(outputIndex + 1, results.get(outputIndex));
} }
} }
@Override @Override
public void draw(CondensedBlockCuttingRecipe recipe, double mouseX, double mouseY) { public void draw(CondensedBlockCuttingRecipe recipe, double mouseX, double mouseY) {
AllGuiTextures.JEI_SLOT.draw(4, 4); AllGuiTextures.JEI_SLOT.draw(4, 4);
int size = recipe.getOutputs().size(); int size = Math.min(recipe.getOutputs().size(), 15);
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
int xOffset = (i % 5) * 19; int xOffset = (i % 5) * 19;
int yOffset = (i / 5) * -19; int yOffset = (i / 5) * -19;
@ -85,6 +85,23 @@ public class BlockCuttingCategory extends CreateRecipeCategory<CondensedBlockCut
return outputs; return outputs;
} }
public List<List<ItemStack>> getCondensedOutputs() {
List<List<ItemStack>> result = new ArrayList<>();
int index = 0;
boolean firstPass = true;
for (ItemStack itemStack : outputs) {
if (firstPass)
result.add(new ArrayList<>());
result.get(index).add(itemStack);
index++;
if (index >= 15) {
index = 0;
firstPass = false;
}
}
return result;
}
public static List<CondensedBlockCuttingRecipe> condenseRecipes(List<IRecipe<?>> stoneCuttingRecipes) { public static List<CondensedBlockCuttingRecipe> condenseRecipes(List<IRecipe<?>> stoneCuttingRecipes) {
List<CondensedBlockCuttingRecipe> condensed = new ArrayList<>(); List<CondensedBlockCuttingRecipe> condensed = new ArrayList<>();
Recipes: for (IRecipe<?> recipe : stoneCuttingRecipes) { Recipes: for (IRecipe<?> recipe : stoneCuttingRecipes) {

View file

@ -8,6 +8,7 @@ import java.util.stream.Collectors;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.compat.jei.category.animations.AnimatedCrafter; import com.simibubi.create.compat.jei.category.animations.AnimatedCrafter;
import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics;
import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllGuiTextures;
import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.constants.VanillaTypes;
@ -23,13 +24,14 @@ import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.Rarity; import net.minecraft.item.Rarity;
import net.minecraft.item.crafting.ICraftingRecipe;
import net.minecraft.item.crafting.Ingredient; import net.minecraft.item.crafting.Ingredient;
import net.minecraft.item.crafting.ShapedRecipe; import net.minecraft.item.crafting.ShapedRecipe;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
public class MechanicalCraftingCategory extends CreateRecipeCategory<ShapedRecipe> { public class MechanicalCraftingCategory extends CreateRecipeCategory<ICraftingRecipe> {
private final AnimatedCrafter crafter = new AnimatedCrafter(); private final AnimatedCrafter crafter = new AnimatedCrafter();
@ -38,13 +40,13 @@ public class MechanicalCraftingCategory extends CreateRecipeCategory<ShapedRecip
} }
@Override @Override
public void setIngredients(ShapedRecipe recipe, IIngredients ingredients) { public void setIngredients(ICraftingRecipe recipe, IIngredients ingredients) {
ingredients.setInputIngredients(recipe.getIngredients()); ingredients.setInputIngredients(recipe.getIngredients());
ingredients.setOutput(VanillaTypes.ITEM, recipe.getRecipeOutput()); ingredients.setOutput(VanillaTypes.ITEM, recipe.getRecipeOutput());
} }
@Override @Override
public void setRecipe(IRecipeLayout recipeLayout, ShapedRecipe recipe, IIngredients ingredients) { public void setRecipe(IRecipeLayout recipeLayout, ICraftingRecipe recipe, IIngredients ingredients) {
IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks(); IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks();
NonNullList<Ingredient> recipeIngredients = recipe.getIngredients(); NonNullList<Ingredient> recipeIngredients = recipe.getIngredients();
@ -61,8 +63,8 @@ public class MechanicalCraftingCategory extends CreateRecipeCategory<ShapedRecip
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
float f = 19 * scale; float f = 19 * scale;
int slotSize = (int) (16 * scale); int slotSize = (int) (16 * scale);
int xPosition = (int) (x + 1 + (i % recipe.getWidth()) * f); int xPosition = (int) (x + 1 + (i % getWidth(recipe)) * f);
int yPosition = (int) (y + 1 + (i / recipe.getWidth()) * f); int yPosition = (int) (y + 1 + (i / getWidth(recipe)) * f);
itemStacks.init(i + 1, true, renderer, xPosition, yPosition, slotSize, slotSize, 0, 0); itemStacks.init(i + 1, true, renderer, xPosition, yPosition, slotSize, slotSize, 0, 0);
itemStacks.set(i + 1, Arrays.asList(recipeIngredients.get(i) itemStacks.set(i + 1, Arrays.asList(recipeIngredients.get(i)
.getMatchingStacks())); .getMatchingStacks()));
@ -72,30 +74,38 @@ public class MechanicalCraftingCategory extends CreateRecipeCategory<ShapedRecip
static int maxSize = 100; static int maxSize = 100;
public static float getScale(ShapedRecipe recipe) { public static float getScale(ICraftingRecipe recipe) {
int w = recipe.getWidth(); int w = getWidth(recipe);
int h = recipe.getHeight(); int h = getHeight(recipe);
return Math.min(1, maxSize / (19f * Math.max(w, h))); return Math.min(1, maxSize / (19f * Math.max(w, h)));
} }
public static int getYPadding(ShapedRecipe recipe) { public static int getYPadding(ICraftingRecipe recipe) {
return 3 + 50 - (int) (getScale(recipe) * recipe.getHeight() * 19 * .5); return 3 + 50 - (int) (getScale(recipe) * getHeight(recipe) * 19 * .5);
} }
public static int getXPadding(ShapedRecipe recipe) { public static int getXPadding(ICraftingRecipe recipe) {
return 3 + 50 - (int) (getScale(recipe) * recipe.getWidth() * 19 * .5); return 3 + 50 - (int) (getScale(recipe) * getWidth(recipe) * 19 * .5);
}
private static int getWidth(ICraftingRecipe recipe) {
return recipe instanceof ShapedRecipe ? ((ShapedRecipe) recipe).getWidth() : 1;
}
private static int getHeight(ICraftingRecipe recipe) {
return recipe instanceof ShapedRecipe ? ((ShapedRecipe) recipe).getHeight() : 1;
} }
@Override @Override
public void draw(ShapedRecipe recipe, double mouseX, double mouseY) { public void draw(ICraftingRecipe recipe, double mouseX, double mouseY) {
RenderSystem.pushMatrix(); RenderSystem.pushMatrix();
float scale = getScale(recipe); float scale = getScale(recipe);
RenderSystem.translated(getXPadding(recipe), getYPadding(recipe), 0); RenderSystem.translated(getXPadding(recipe), getYPadding(recipe), 0);
for (int row = 0; row < recipe.getHeight(); row++) for (int row = 0; row < getHeight(recipe); row++)
for (int col = 0; col < recipe.getWidth(); col++) for (int col = 0; col < getWidth(recipe); col++)
if (!recipe.getIngredients() if (!recipe.getIngredients()
.get(row * recipe.getWidth() + col) .get(row * getWidth(recipe) + col)
.hasNoMatchingItems()) { .hasNoMatchingItems()) {
RenderSystem.pushMatrix(); RenderSystem.pushMatrix();
RenderSystem.translated(col * 19 * scale, row * 19 * scale, 0); RenderSystem.translated(col * 19 * scale, row * 19 * scale, 0);
@ -126,15 +136,15 @@ public class MechanicalCraftingCategory extends CreateRecipeCategory<ShapedRecip
} }
@Override @Override
public Class<? extends ShapedRecipe> getRecipeClass() { public Class<? extends ICraftingRecipe> getRecipeClass() {
return ShapedRecipe.class; return ICraftingRecipe.class;
} }
private static final class CrafterIngredientRenderer implements IIngredientRenderer<ItemStack> { private static final class CrafterIngredientRenderer implements IIngredientRenderer<ItemStack> {
private final ShapedRecipe recipe; private final ICraftingRecipe recipe;
public CrafterIngredientRenderer(ShapedRecipe recipe) { public CrafterIngredientRenderer(ICraftingRecipe recipe) {
this.recipe = recipe; this.recipe = recipe;
} }

View file

@ -11,7 +11,6 @@ import com.simibubi.create.content.contraptions.base.IRotate;
import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock;
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity;
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock; import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock;
import com.simibubi.create.content.contraptions.relays.encased.DirectionalShaftHalvesTileEntity; import com.simibubi.create.content.contraptions.relays.encased.DirectionalShaftHalvesTileEntity;
import com.simibubi.create.content.contraptions.relays.encased.EncasedBeltBlock; import com.simibubi.create.content.contraptions.relays.encased.EncasedBeltBlock;
@ -70,11 +69,9 @@ public class RotationPropagator {
boolean connectedByGears = definitionFrom.hasIntegratedCogwheel(world, from.getPos(), stateFrom) boolean connectedByGears = definitionFrom.hasIntegratedCogwheel(world, from.getPos(), stateFrom)
&& definitionTo.hasIntegratedCogwheel(world, to.getPos(), stateTo); && definitionTo.hasIntegratedCogwheel(world, to.getPos(), stateTo);
// Belt <-> Belt float custom = from.propagateRotationTo(to, stateFrom, stateTo, diff, connectedByAxis, connectedByGears);
if (from instanceof BeltTileEntity && to instanceof BeltTileEntity && !connectedByAxis) { if (custom != 0)
return ((BeltTileEntity) from).getController() return custom;
.equals(((BeltTileEntity) to).getController()) ? 1 : 0;
}
// Axis <-> Axis // Axis <-> Axis
if (connectedByAxis) { if (connectedByAxis) {
@ -230,6 +227,9 @@ public class RotationPropagator {
float newSpeed = getConveyedSpeed(currentTE, neighbourTE); float newSpeed = getConveyedSpeed(currentTE, neighbourTE);
float oppositeSpeed = getConveyedSpeed(neighbourTE, currentTE); float oppositeSpeed = getConveyedSpeed(neighbourTE, currentTE);
if (newSpeed == 0 && oppositeSpeed == 0)
continue;
boolean incompatible = boolean incompatible =
Math.signum(newSpeed) != Math.signum(speedOfNeighbour) && (newSpeed != 0 && speedOfNeighbour != 0); Math.signum(newSpeed) != Math.signum(speedOfNeighbour) && (newSpeed != 0 && speedOfNeighbour != 0);
@ -395,7 +395,7 @@ public class RotationPropagator {
if (!(neighbourKTE.getBlockState() if (!(neighbourKTE.getBlockState()
.getBlock() instanceof IRotate)) .getBlock() instanceof IRotate))
return null; return null;
if (!isConnected(currentTE, neighbourKTE)) if (!isConnected(currentTE, neighbourKTE) && !isConnected(neighbourKTE, currentTE))
return null; return null;
return neighbourKTE; return neighbourKTE;
} }
@ -403,14 +403,9 @@ public class RotationPropagator {
public static boolean isConnected(KineticTileEntity from, KineticTileEntity to) { public static boolean isConnected(KineticTileEntity from, KineticTileEntity to) {
final BlockState stateFrom = from.getBlockState(); final BlockState stateFrom = from.getBlockState();
final BlockState stateTo = to.getBlockState(); final BlockState stateTo = to.getBlockState();
return isLargeCogToSpeedController(stateFrom, stateTo, to.getPos()
if (isLargeCogToSpeedController(stateFrom, stateTo, to.getPos() .subtract(from.getPos())) || getRotationSpeedModifier(from, to) != 0
.subtract(from.getPos()))) || from.isCustomConnection(to, stateFrom, stateTo);
return true;
if (isLargeCogToSpeedController(stateTo, stateFrom, from.getPos()
.subtract(to.getPos())))
return true;
return getRotationSpeedModifier(from, to) != 0;
} }
private static List<KineticTileEntity> getConnectedNeighbours(KineticTileEntity te) { private static List<KineticTileEntity> getConnectedNeighbours(KineticTileEntity te) {
@ -436,30 +431,11 @@ public class RotationPropagator {
neighbours.add(te.getPos() neighbours.add(te.getPos()
.offset(facing)); .offset(facing));
// Some Blocks can interface diagonally
BlockState blockState = te.getBlockState(); BlockState blockState = te.getBlockState();
boolean isLargeWheel = isLargeCog(blockState);
if (!(blockState.getBlock() instanceof IRotate)) if (!(blockState.getBlock() instanceof IRotate))
return neighbours; return neighbours;
IRotate block = (IRotate) blockState.getBlock(); IRotate block = (IRotate) blockState.getBlock();
return te.addPropagationLocations(block, blockState, neighbours);
if (block.hasIntegratedCogwheel(te.getWorld(), te.getPos(), blockState) || isLargeWheel
|| AllBlocks.BELT.has(blockState)) {
Axis axis = block.getRotationAxis(blockState);
BlockPos.getAllInBox(new BlockPos(-1, -1, -1), new BlockPos(1, 1, 1))
.forEach(offset -> {
if (!isLargeWheel && axis.getCoordinate(offset.getX(), offset.getY(), offset.getZ()) != 0)
return;
if (offset.distanceSq(0, 0, 0, false) != BlockPos.ZERO.distanceSq(1, 1, 0, false))
return;
neighbours.add(te.getPos()
.add(offset));
});
}
return neighbours;
} }
} }

View file

@ -31,7 +31,8 @@ public abstract class KineticBlock extends Block implements IRotate {
@Override @Override
public boolean canHarvestBlock(BlockState state, IBlockReader world, BlockPos pos, PlayerEntity player) { public boolean canHarvestBlock(BlockState state, IBlockReader world, BlockPos pos, PlayerEntity player) {
for (ToolType toolType : player.getHeldItemMainhand().getToolTypes()) { for (ToolType toolType : player.getHeldItemMainhand()
.getToolTypes()) {
if (isToolEffective(state, toolType)) if (isToolEffective(state, toolType))
return true; return true;
} }
@ -46,6 +47,24 @@ public abstract class KineticBlock extends Block implements IRotate {
@Override @Override
public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) { public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) {
// onBlockAdded is useless for init, as sometimes the TE gets re-instantiated // onBlockAdded is useless for init, as sometimes the TE gets re-instantiated
// however, if a block change occurs that does not change kinetic connections,
// we can prevent a major re-propagation here
TileEntity tileEntity = worldIn.getTileEntity(pos);
if (tileEntity instanceof KineticTileEntity) {
KineticTileEntity kineticTileEntity = (KineticTileEntity) tileEntity;
kineticTileEntity.preventSpeedUpdate = false;
if (oldState.getBlock() != state.getBlock())
return;
if (state.hasTileEntity() != oldState.hasTileEntity())
return;
if (!areStatesKineticallyEquivalent(oldState, state))
return;
kineticTileEntity.preventSpeedUpdate = true;
}
} }
@Override @Override
@ -63,6 +82,10 @@ public abstract class KineticBlock extends Block implements IRotate {
return true; return true;
} }
protected boolean areStatesKineticallyEquivalent(BlockState oldState, BlockState newState) {
return getRotationAxis(newState) == getRotationAxis(oldState);
}
@Override @Override
public abstract TileEntity createTileEntity(BlockState state, IBlockReader world); public abstract TileEntity createTileEntity(BlockState state, IBlockReader world);
@ -76,9 +99,14 @@ public abstract class KineticBlock extends Block implements IRotate {
TileEntity tileEntity = worldIn.getTileEntity(pos); TileEntity tileEntity = worldIn.getTileEntity(pos);
if (!(tileEntity instanceof KineticTileEntity)) if (!(tileEntity instanceof KineticTileEntity))
return; return;
KineticTileEntity kte = (KineticTileEntity) tileEntity;
if (kte.preventSpeedUpdate) {
kte.preventSpeedUpdate = false;
return;
}
// Remove previous information when block is added // Remove previous information when block is added
KineticTileEntity kte = (KineticTileEntity) tileEntity;
kte.warnOfMovement(); kte.warnOfMovement();
kte.clearKineticInformation(); kte.clearKineticInformation();
kte.updateSpeed = true; kte.updateSpeed = true;

View file

@ -30,6 +30,7 @@ import net.minecraft.tileentity.ITickableTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityType; import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.Direction.Axis;
import net.minecraft.util.Direction.AxisDirection; import net.minecraft.util.Direction.AxisDirection;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
@ -42,6 +43,7 @@ public abstract class KineticTileEntity extends SmartTileEntity
public @Nullable BlockPos source; public @Nullable BlockPos source;
public boolean networkDirty; public boolean networkDirty;
public boolean updateSpeed; public boolean updateSpeed;
public boolean preventSpeedUpdate;
protected KineticEffectHandler effects; protected KineticEffectHandler effects;
protected float speed; protected float speed;
@ -361,11 +363,15 @@ public abstract class KineticTileEntity extends SmartTileEntity
} }
KineticTileEntity tileEntity = (KineticTileEntity) tileEntityIn; KineticTileEntity tileEntity = (KineticTileEntity) tileEntityIn;
if (state.getBlock() instanceof KineticBlock
&& !((KineticBlock) state.getBlock()).areStatesKineticallyEquivalent(currentState, state)) {
if (tileEntity.hasNetwork()) if (tileEntity.hasNetwork())
tileEntity.getOrCreateNetwork() tileEntity.getOrCreateNetwork()
.remove(tileEntity); .remove(tileEntity);
tileEntity.detachKinetics(); tileEntity.detachKinetics();
tileEntity.removeSource(); tileEntity.removeSource();
}
world.setBlockState(pos, state, 3); world.setBlockState(pos, state, 3);
} }
@ -417,8 +423,8 @@ public abstract class KineticTileEntity extends SmartTileEntity
String stressString = String stressString =
spacing + "%s%s" + Lang.translate("generic.unit.stress") + " " + TextFormatting.DARK_GRAY + "%s"; spacing + "%s%s" + Lang.translate("generic.unit.stress") + " " + TextFormatting.DARK_GRAY + "%s";
tooltip.add(" " + String.format(stressString, TextFormatting.AQUA, IHaveGoggleInformation.format(stressTotal), tooltip.add(" " + String.format(stressString, TextFormatting.AQUA,
Lang.translate("gui.goggles.at_current_speed"))); IHaveGoggleInformation.format(stressTotal), Lang.translate("gui.goggles.at_current_speed")));
added = true; added = true;
} }
@ -454,4 +460,72 @@ public abstract class KineticTileEntity extends SmartTileEntity
return overStressed; return overStressed;
} }
// Custom Propagation
/**
* Specify ratio of transferred rotation from this kinetic component to a
* specific other.
*
* @param target other Kinetic TE to transfer to
* @param stateFrom this TE's blockstate
* @param stateTo other TE's blockstate
* @param diff difference in position (to.pos - from.pos)
* @param connectedViaAxes whether these kinetic blocks are connected via mutual
* IRotate.hasShaftTowards()
* @param connectedViaCogs whether these kinetic blocks are connected via mutual
* IRotate.hasIntegratedCogwheel()
* @return factor of rotation speed from this TE to other. 0 if no rotation is
* transferred, or the standard rules apply (integrated shafts/cogs)
*/
public float propagateRotationTo(KineticTileEntity target, BlockState stateFrom, BlockState stateTo, BlockPos diff,
boolean connectedViaAxes, boolean connectedViaCogs) {
return 0;
}
/**
* Specify additional locations the rotation propagator should look for
* potentially connected components. Neighbour list contains offset positions in
* all 6 directions by default.
*
* @param block
* @param state
* @param neighbours
* @return
*/
public List<BlockPos> addPropagationLocations(IRotate block, BlockState state, List<BlockPos> neighbours) {
if (!canPropagateDiagonally(block, state))
return neighbours;
Axis axis = block.getRotationAxis(state);
BlockPos.getAllInBox(new BlockPos(-1, -1, -1), new BlockPos(1, 1, 1))
.forEach(offset -> {
if (axis.getCoordinate(offset.getX(), offset.getY(), offset.getZ()) != 0)
return;
if (offset.distanceSq(0, 0, 0, false) != BlockPos.ZERO.distanceSq(1, 1, 0, false))
return;
neighbours.add(pos.add(offset));
});
return neighbours;
}
/**
* Specify whether this component can propagate speed to the other in any
* circumstance. Shaft and cogwheel connections are already handled by internal
* logic. Does not have to be specified on both ends, it is assumed that this
* relation is symmetrical.
*
* @param other
* @param state
* @param otherState
* @return true if this and the other component should check their propagation
* factor and are not already connected via integrated cogs or shafts
*/
public boolean isCustomConnection(KineticTileEntity other, BlockState state, BlockState otherState) {
return false;
}
protected boolean canPropagateDiagonally(IRotate block, BlockState state) {
return block.hasIntegratedCogwheel(world, pos, state);
}
} }

View file

@ -3,6 +3,7 @@ package com.simibubi.create.content.contraptions.components.fan;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllTileEntities; import com.simibubi.create.AllTileEntities;
import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock; import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock;
import com.simibubi.create.content.logistics.block.chute.AbstractChuteBlock;
import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.ITE;
import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld;
@ -57,9 +58,9 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE<Enca
BlockState placedOn = world.getBlockState(pos.offset(face.getOpposite())); BlockState placedOn = world.getBlockState(pos.offset(face.getOpposite()));
BlockState placedOnOpposite = world.getBlockState(pos.offset(face)); BlockState placedOnOpposite = world.getBlockState(pos.offset(face));
if (AllBlocks.CHUTE.has(placedOn)) if (AbstractChuteBlock.isChute(placedOn))
return getDefaultState().with(FACING, face.getOpposite()); return getDefaultState().with(FACING, face.getOpposite());
if (AllBlocks.CHUTE.has(placedOnOpposite)) if (AbstractChuteBlock.isChute(placedOnOpposite))
return getDefaultState().with(FACING, face); return getDefaultState().with(FACING, face);
Direction preferredFacing = getPreferredFacing(context); Direction preferredFacing = getPreferredFacing(context);

View file

@ -206,7 +206,9 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity {
@Override @Override
protected <C extends IInventory> boolean matchStaticFilters(IRecipe<C> r) { protected <C extends IInventory> boolean matchStaticFilters(IRecipe<C> r) {
return ((r.getSerializer() == IRecipeSerializer.CRAFTING_SHAPELESS return ((r.getSerializer() == IRecipeSerializer.CRAFTING_SHAPELESS
&& AllConfigs.SERVER.recipes.allowShapelessInMixer.get()) || r.getType() == AllRecipeTypes.MIXING.type); && AllConfigs.SERVER.recipes.allowShapelessInMixer.get() && r.getIngredients()
.size() > 1)
|| r.getType() == AllRecipeTypes.MIXING.type);
} }
@Override @Override

View file

@ -27,8 +27,8 @@ public class CreativeMotorTileEntity extends GeneratingKineticTileEntity {
super.addBehaviours(behaviours); super.addBehaviours(behaviours);
Integer max = AllConfigs.SERVER.kinetics.maxMotorSpeed.get(); Integer max = AllConfigs.SERVER.kinetics.maxMotorSpeed.get();
CenteredSideValueBoxTransform slot = CenteredSideValueBoxTransform slot = new CenteredSideValueBoxTransform(
new CenteredSideValueBoxTransform((motor, side) -> motor.get(CreativeMotorBlock.FACING) == side.getOpposite()); (motor, side) -> motor.get(CreativeMotorBlock.FACING) == side.getOpposite());
generatedSpeed = new ScrollValueBehaviour(Lang.translate("generic.speed"), this, slot); generatedSpeed = new ScrollValueBehaviour(Lang.translate("generic.speed"), this, slot);
generatedSpeed.between(-max, max); generatedSpeed.between(-max, max);
@ -55,20 +55,21 @@ public class CreativeMotorTileEntity extends GeneratingKineticTileEntity {
} }
public static int step(StepContext context) { public static int step(StepContext context) {
if (context.shift)
return 1;
int current = context.currentValue; int current = context.currentValue;
int magnitude = Math.abs(current) - (context.forward == current > 0 ? 0 : 1);
int step = 1; int step = 1;
if (!context.shift) {
int magnitude = Math.abs(current) - (context.forward == current > 0 ? 0 : 1);
if (magnitude >= 4) if (magnitude >= 4)
step *= 4; step *= 4;
if (magnitude >= 32) if (magnitude >= 32)
step *= 4; step *= 4;
if (magnitude >= 128) if (magnitude >= 128)
step *= 4; step *= 4;
return step; }
return (int) (current + (context.forward ? step : -step) == 0 ? step + 1 : step);
} }
} }

View file

@ -93,8 +93,9 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
boolean moving = te.inventory.recipeDuration != 0; boolean moving = te.inventory.recipeDuration != 0;
float offset = moving ? (float) (te.inventory.remainingTime) / te.inventory.recipeDuration : 0; float offset = moving ? (float) (te.inventory.remainingTime) / te.inventory.recipeDuration : 0;
float processingSpeed = MathHelper.clamp(Math.abs(te.getSpeed()) / 32, 1, 128);
if (moving) if (moving)
offset = MathHelper.clamp(offset + (-partialTicks + .5f) / te.inventory.recipeDuration, 0, 1); offset = MathHelper.clamp(offset + ((-partialTicks + .5f) * processingSpeed) / te.inventory.recipeDuration, 0, 1);
if (te.getSpeed() == 0) if (te.getSpeed() == 0)
offset = .5f; offset = .5f;

View file

@ -74,6 +74,10 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
contraption.onEntityCreated(this); contraption.onEntityCreated(this);
} }
public boolean supportsTerrainCollision() {
return contraption instanceof TranslatingContraption;
}
protected void contraptionInitialize() { protected void contraptionInitialize() {
contraption.onEntityInitialize(world, this); contraption.onEntityInitialize(world, this);
initialized = true; initialized = true;
@ -594,7 +598,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
} }
public static class ContraptionRotationState { public static class ContraptionRotationState {
static final ContraptionRotationState NONE = new ContraptionRotationState(); public static final ContraptionRotationState NONE = new ContraptionRotationState();
float xRotation = 0; float xRotation = 0;
float yRotation = 0; float yRotation = 0;

View file

@ -46,7 +46,9 @@ public abstract class AbstractContraptionEntityRenderer<C extends AbstractContra
ms.push(); ms.push();
transform(entity, partialTicks, matrixStacks); transform(entity, partialTicks, matrixStacks);
ContraptionRenderer.render(entity.world, entity.getContraption(), ms, msLocal, buffers); Contraption contraption = entity.getContraption();
if (contraption != null)
ContraptionRenderer.render(entity.world, contraption, ms, msLocal, buffers);
ms.pop(); ms.pop();
} }

View file

@ -1,39 +0,0 @@
package com.simibubi.create.content.contraptions.components.structureMovement;
import java.util.function.Supplier;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MountedContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyContraption;
import com.simibubi.create.foundation.utility.Lang;
public enum AllContraptionTypes {
PISTON(PistonContraption::new),
BEARING(BearingContraption::new),
PULLEY(PulleyContraption::new),
CLOCKWORK(ClockworkContraption::new),
MOUNTED(MountedContraption::new),
STABILIZED(StabilizedContraption::new),
;
Supplier<? extends Contraption> factory;
String id;
private AllContraptionTypes(Supplier<? extends Contraption> factory) {
this.factory = factory;
id = Lang.asId(name());
}
public static Contraption fromType(String type) {
for (AllContraptionTypes allContraptionTypes : values())
if (type.equals(allContraptionTypes.id))
return allContraptionTypes.factory.get();
return null;
}
}

View file

@ -30,6 +30,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.bea
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryPinionBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueHandler; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueHandler;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock;
@ -40,6 +41,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.pul
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.RopeBlock; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.RopeBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity;
import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock;
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock;
import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock; import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock;
@ -136,7 +138,7 @@ public abstract class Contraption {
protected abstract boolean canAxisBeStabilized(Axis axis); protected abstract boolean canAxisBeStabilized(Axis axis);
protected abstract AllContraptionTypes getType(); protected abstract ContraptionType getType();
protected boolean customBlockPlacement(IWorld world, BlockPos pos, BlockState state) { protected boolean customBlockPlacement(IWorld world, BlockPos pos, BlockState state) {
return false; return false;
@ -153,7 +155,7 @@ public abstract class Contraption {
public static Contraption fromNBT(World world, CompoundNBT nbt, boolean spawnData) { public static Contraption fromNBT(World world, CompoundNBT nbt, boolean spawnData) {
String type = nbt.getString("Type"); String type = nbt.getString("Type");
Contraption contraption = AllContraptionTypes.fromType(type); Contraption contraption = ContraptionType.fromType(type);
contraption.readNBT(world, nbt, spawnData); contraption.readNBT(world, nbt, spawnData);
return contraption; return contraption;
} }
@ -264,6 +266,26 @@ public abstract class Contraption {
if (AllBlocks.BELT.has(state)) if (AllBlocks.BELT.has(state))
moveBelt(pos, frontier, visited, state); moveBelt(pos, frontier, visited, state);
if (AllBlocks.GANTRY_PINION.has(state)) {
BlockPos offset = pos.offset(state.get(GantryPinionBlock.FACING));
if (!visited.contains(offset))
frontier.add(offset);
}
if (AllBlocks.GANTRY_SHAFT.has(state))
for (Direction d : Iterate.directions) {
BlockPos offset = pos.offset(d);
if (!visited.contains(offset)) {
BlockState offsetState = world.getBlockState(offset);
Direction facing = state.get(GantryShaftBlock.FACING);
if (d.getAxis() == facing.getAxis() && AllBlocks.GANTRY_SHAFT.has(offsetState)
&& offsetState.get(GantryShaftBlock.FACING) == facing)
frontier.add(offset);
else if (AllBlocks.GANTRY_PINION.has(offsetState) && offsetState.get(GantryPinionBlock.FACING) == d)
frontier.add(offset);
}
}
// Bearings potentially create stabilized sub-contraptions // Bearings potentially create stabilized sub-contraptions
if (AllBlocks.MECHANICAL_BEARING.has(state)) if (AllBlocks.MECHANICAL_BEARING.has(state))
moveBearing(pos, frontier, visited, state); moveBearing(pos, frontier, visited, state);
@ -726,7 +748,8 @@ public abstract class Contraption {
if (brittles != BlockMovementTraits.isBrittle(block.state)) if (brittles != BlockMovementTraits.isBrittle(block.state))
continue; continue;
BlockPos add = block.pos.add(anchor).add(offset); BlockPos add = block.pos.add(anchor)
.add(offset);
if (customBlockRemoval(world, add, block.state)) if (customBlockRemoval(world, add, block.state))
continue; continue;
BlockState oldState = world.getBlockState(add); BlockState oldState = world.getBlockState(add);
@ -735,7 +758,8 @@ public abstract class Contraption {
iterator.remove(); iterator.remove();
world.getWorld() world.getWorld()
.removeTileEntity(add); .removeTileEntity(add);
int flags = BlockFlags.IS_MOVING | BlockFlags.NO_NEIGHBOR_DROPS | BlockFlags.UPDATE_NEIGHBORS; int flags = BlockFlags.IS_MOVING | BlockFlags.NO_NEIGHBOR_DROPS | BlockFlags.UPDATE_NEIGHBORS
| BlockFlags.BLOCK_UPDATE;
if (blockIn instanceof IWaterLoggable && oldState.has(BlockStateProperties.WATERLOGGED) if (blockIn instanceof IWaterLoggable && oldState.has(BlockStateProperties.WATERLOGGED)
&& oldState.get(BlockStateProperties.WATERLOGGED) && oldState.get(BlockStateProperties.WATERLOGGED)
.booleanValue()) { .booleanValue()) {
@ -746,8 +770,12 @@ public abstract class Contraption {
} }
} }
for (BlockInfo block : blocks.values()) { for (BlockInfo block : blocks.values()) {
BlockPos add = block.pos.add(anchor).add(offset); BlockPos add = block.pos.add(anchor)
world.markAndNotifyBlock(add, null, block.state, Blocks.AIR.getDefaultState(), BlockFlags.IS_MOVING | BlockFlags.DEFAULT); .add(offset);
if (!shouldUpdateAfterMovement(block))
continue;
world.markAndNotifyBlock(add, null, block.state, Blocks.AIR.getDefaultState(),
BlockFlags.IS_MOVING | BlockFlags.DEFAULT);
} }
} }
@ -826,6 +854,13 @@ public abstract class Contraption {
} }
} }
} }
for (BlockInfo block : blocks.values()) {
BlockPos targetPos = transform.apply(block.pos);
if (!shouldUpdateAfterMovement(block))
continue;
world.markAndNotifyBlock(targetPos, null, block.state, block.state,
BlockFlags.IS_MOVING | BlockFlags.DEFAULT);
}
for (int i = 0; i < inventory.getSlots(); i++) for (int i = 0; i < inventory.getSlots(); i++)
inventory.setStackInSlot(i, ItemStack.EMPTY); inventory.setStackInSlot(i, ItemStack.EMPTY);
@ -884,6 +919,10 @@ public abstract class Contraption {
callBack.accept(AllMovementBehaviours.of(pair.getLeft().state), pair.getRight()); callBack.accept(AllMovementBehaviours.of(pair.getLeft().state), pair.getRight());
} }
protected boolean shouldUpdateAfterMovement(BlockInfo info) {
return true;
}
public void expandBoundsAroundAxis(Axis axis) { public void expandBoundsAroundAxis(Axis axis) {
AxisAlignedBB bb = bounds; AxisAlignedBB bb = bounds;
double maxXDiff = Math.max(bb.maxX - 1, -bb.minX); double maxXDiff = Math.max(bb.maxX - 1, -bb.minX);

View file

@ -348,7 +348,7 @@ public class ContraptionCollider {
return potentialHits; return potentialHits;
} }
public static boolean collideBlocks(ControlledContraptionEntity contraptionEntity) { public static boolean collideBlocks(AbstractContraptionEntity contraptionEntity) {
if (!contraptionEntity.supportsTerrainCollision()) if (!contraptionEntity.supportsTerrainCollision())
return false; return false;

View file

@ -0,0 +1,49 @@
package com.simibubi.create.content.contraptions.components.structureMovement;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.function.Supplier;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MountedContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyContraption;
public class ContraptionType {
public static Map<String, ContraptionType> entries = new HashMap<>();
public static ContraptionType
PISTON = register("piston", PistonContraption::new),
BEARING = register("bearing", BearingContraption::new),
PULLEY = register("pulley", PulleyContraption::new),
CLOCKWORK = register("clockwork", ClockworkContraption::new),
MOUNTED = register("mounted", MountedContraption::new),
STABILIZED = register("stabilized", StabilizedContraption::new),
GANTRY = register("gantry", GantryContraption::new);
Supplier<? extends Contraption> factory;
String id;
public static ContraptionType register(String id, Supplier<? extends Contraption> factory) {
ContraptionType value = new ContraptionType(id, factory);
entries.put(id, value);
return value;
}
private ContraptionType(String id, Supplier<? extends Contraption> factory) {
this.factory = factory;
this.id = id;
}
public static Contraption fromType(String type) {
for (Entry<String, ContraptionType> allContraptionTypes : entries.entrySet())
if (type.equals(allContraptionTypes.getKey()))
return allContraptionTypes.getValue().factory.get();
return null;
}
}

View file

@ -46,10 +46,6 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity {
return entity; return entity;
} }
public boolean supportsTerrainCollision() {
return contraption instanceof TranslatingContraption;
}
@Override @Override
public Vec3d getContactPointMotion(Vec3d globalContactPoint) { public Vec3d getContactPointMotion(Vec3d globalContactPoint) {
if (contraption instanceof TranslatingContraption) if (contraption instanceof TranslatingContraption)
@ -151,8 +147,6 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity {
} }
Vec3d motion = getMotion(); Vec3d motion = getMotion();
if (motion.length() < 1 / 4098f)
setMotion(Vec3d.ZERO);
move(motion.x, motion.y, motion.z); move(motion.x, motion.y, motion.z);
if (ContraptionCollider.collideBlocks(this)) if (ContraptionCollider.collideBlocks(this))
getController().collided(); getController().collided();

View file

@ -120,7 +120,7 @@ public class MountedFluidStorage {
return; return;
SmartFluidTank inv = (SmartFluidTank) teHandler; SmartFluidTank inv = (SmartFluidTank) teHandler;
inv.setFluid(tank.getFluid()); inv.setFluid(tank.getFluid().copy());
} }
public IFluidHandler getFluidHandler() { public IFluidHandler getFluidHandler() {

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