Merge branch 'mc1.15/dev' into mc1.16/dev

This commit is contained in:
simibubi 2021-04-04 00:58:14 +02:00
commit 47bd1d9c93
37 changed files with 301 additions and 194 deletions

View file

@ -407,19 +407,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
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
768a724d6c921cb92790364cf7a692fe8742a885 assets/create/lang/en_ud.json 768a724d6c921cb92790364cf7a692fe8742a885 assets/create/lang/en_ud.json
900d337c7dab1b79c842e7ebc33844900e8caa42 assets/create/lang/en_us.json 3060ba1eee371d642e0590c3d6e99c2be397c7f5 assets/create/lang/en_us.json
c1420042a70e66de459e9c621b2fd141338dddd7 assets/create/lang/unfinished/de_de.json 4da96bffe4f68f364977bd3b0a0e5d43a850e90b assets/create/lang/unfinished/de_de.json
e6aefcddb48f51f66cd91d36247e3aa5cbdba76a assets/create/lang/unfinished/es_es.json 3b3e7b694b75ab50acfe911935f80da0b3234010 assets/create/lang/unfinished/es_es.json
671eb2555a62c1726dc63a02643a9fd5c7c73410 assets/create/lang/unfinished/es_mx.json 20d7a808b485b9140bce1c4c483c7fc2218a0611 assets/create/lang/unfinished/es_mx.json
418f0a37de376eb97d7801a72c7b984e589f8736 assets/create/lang/unfinished/fr_fr.json 1e9f530d590556eac0c4d08750d3ebbd83b504f2 assets/create/lang/unfinished/fr_fr.json
7831ce35531e76bd1c6eb2902072ef2945bb1f9b assets/create/lang/unfinished/it_it.json a604e3bf8d1b28d4f77cd4fb5b63f5d58988a507 assets/create/lang/unfinished/it_it.json
c9ec5aca9c2b57efff7863b6781a1c0a3c7a2a20 assets/create/lang/unfinished/ja_jp.json 371ef25dcdbd268d1f96d19ccd56413c93425ced assets/create/lang/unfinished/ja_jp.json
36d6decedef0921ed6db504a1b52a3c013072202 assets/create/lang/unfinished/ko_kr.json 7206826ff926de6a04145a17928c00ea28762404 assets/create/lang/unfinished/ko_kr.json
5c373cd9c2db0214d9cf763a07b579da110e2c20 assets/create/lang/unfinished/nl_nl.json 411d5197f3b5eb75ef7033685fb24df1c02a959f assets/create/lang/unfinished/nl_nl.json
0dc551e818fcffb086e9ca1d98df645a605d3679 assets/create/lang/unfinished/pt_br.json 59756083e6d04f649e860fed9b13657fa12f919b assets/create/lang/unfinished/pt_br.json
430943447a11762cd5a5d74f20ef75de6cbe1808 assets/create/lang/unfinished/ru_ru.json 184e6225f8a752a526e61fd6cd1f47506efd846b assets/create/lang/unfinished/ru_ru.json
5062ede649b6153cfe44b795fe7ed1da8f726c55 assets/create/lang/unfinished/zh_cn.json 58fb522692bf7b15d8fb851f0a807fab04620d45 assets/create/lang/unfinished/zh_cn.json
b14c82179c5a90962c187f3e2ac07d1cd339fab2 assets/create/lang/unfinished/zh_tw.json 1e2f8564c19f2fe35ce91e65831b72ab44bedea1 assets/create/lang/unfinished/zh_tw.json
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
@ -2970,7 +2970,7 @@ af5854ee2fa3be195ad9abcdeebe6ed7306b651c data/create/recipes/crafting/kinetics/s
8494f5fcd85a740fa0f0384e3522d8cdd905ce49 data/create/recipes/crafting/kinetics/turntable.json 8494f5fcd85a740fa0f0384e3522d8cdd905ce49 data/create/recipes/crafting/kinetics/turntable.json
057c889b0a306f44b8835c896663154ccd9ff12f data/create/recipes/crafting/kinetics/vertical_gearboxfrom_conversion.json 057c889b0a306f44b8835c896663154ccd9ff12f data/create/recipes/crafting/kinetics/vertical_gearboxfrom_conversion.json
4fb009b86a51b2e259bd1f73848803f6276dd820 data/create/recipes/crafting/kinetics/water_wheel.json 4fb009b86a51b2e259bd1f73848803f6276dd820 data/create/recipes/crafting/kinetics/water_wheel.json
254265966b3c7c7a307e908c313a15ce92d20c83 data/create/recipes/crafting/kinetics/weighted_ejector.json 06b5b371ae9dd81df8fd3dee6d3559b1ed0db35c data/create/recipes/crafting/kinetics/weighted_ejector.json
f508d510576c93712e7f5265345a32e8818bbf0d data/create/recipes/crafting/kinetics/whisk.json f508d510576c93712e7f5265345a32e8818bbf0d data/create/recipes/crafting/kinetics/whisk.json
d80a741d2f0d4f742217b43d7e4d37f003ec9f9d data/create/recipes/crafting/kinetics/white_sail.json d80a741d2f0d4f742217b43d7e4d37f003ec9f9d data/create/recipes/crafting/kinetics/white_sail.json
f4d88aa2edea548d29cf2678a111d8bb5db7720a data/create/recipes/crafting/kinetics/white_seat.json f4d88aa2edea548d29cf2678a111d8bb5db7720a data/create/recipes/crafting/kinetics/white_seat.json

View file

@ -89,8 +89,8 @@
}, },
{ {
"when": { "when": {
"axis": "x", "sticky_west": "true",
"sticky_west": "true" "axis": "x"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x_sticky", "model": "create:block/radial_chassis_side_x_sticky",
@ -99,8 +99,8 @@
}, },
{ {
"when": { "when": {
"axis": "y", "sticky_west": "true",
"sticky_west": "true" "axis": "y"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_y_sticky", "model": "create:block/radial_chassis_side_y_sticky",
@ -109,8 +109,8 @@
}, },
{ {
"when": { "when": {
"axis": "z", "sticky_west": "true",
"sticky_west": "true" "axis": "z"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_z_sticky", "model": "create:block/radial_chassis_side_z_sticky",
@ -119,8 +119,8 @@
}, },
{ {
"when": { "when": {
"axis": "x", "sticky_west": "false",
"sticky_west": "false" "axis": "x"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x", "model": "create:block/radial_chassis_side_x",
@ -129,8 +129,8 @@
}, },
{ {
"when": { "when": {
"axis": "y", "sticky_west": "false",
"sticky_west": "false" "axis": "y"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_y", "model": "create:block/radial_chassis_side_y",
@ -139,8 +139,8 @@
}, },
{ {
"when": { "when": {
"axis": "z", "sticky_west": "false",
"sticky_west": "false" "axis": "z"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_z", "model": "create:block/radial_chassis_side_z",
@ -149,8 +149,8 @@
}, },
{ {
"when": { "when": {
"axis": "x", "sticky_north": "true",
"sticky_north": "true" "axis": "x"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x_sticky" "model": "create:block/radial_chassis_side_x_sticky"
@ -158,8 +158,8 @@
}, },
{ {
"when": { "when": {
"axis": "y", "sticky_north": "true",
"sticky_north": "true" "axis": "y"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_y_sticky", "model": "create:block/radial_chassis_side_y_sticky",
@ -168,8 +168,8 @@
}, },
{ {
"when": { "when": {
"axis": "z", "sticky_north": "true",
"sticky_north": "true" "axis": "z"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x_sticky", "model": "create:block/radial_chassis_side_x_sticky",
@ -178,8 +178,8 @@
}, },
{ {
"when": { "when": {
"axis": "x", "sticky_north": "false",
"sticky_north": "false" "axis": "x"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x" "model": "create:block/radial_chassis_side_x"
@ -187,8 +187,8 @@
}, },
{ {
"when": { "when": {
"axis": "y", "sticky_north": "false",
"sticky_north": "false" "axis": "y"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_y", "model": "create:block/radial_chassis_side_y",
@ -197,8 +197,8 @@
}, },
{ {
"when": { "when": {
"axis": "z", "sticky_north": "false",
"sticky_north": "false" "axis": "z"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x", "model": "create:block/radial_chassis_side_x",
@ -207,8 +207,8 @@
}, },
{ {
"when": { "when": {
"axis": "x", "sticky_east": "true",
"sticky_east": "true" "axis": "x"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x_sticky", "model": "create:block/radial_chassis_side_x_sticky",
@ -217,8 +217,8 @@
}, },
{ {
"when": { "when": {
"axis": "y", "sticky_east": "true",
"sticky_east": "true" "axis": "y"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_y_sticky", "model": "create:block/radial_chassis_side_y_sticky",
@ -227,8 +227,8 @@
}, },
{ {
"when": { "when": {
"axis": "z", "sticky_east": "true",
"sticky_east": "true" "axis": "z"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_z_sticky" "model": "create:block/radial_chassis_side_z_sticky"
@ -236,8 +236,8 @@
}, },
{ {
"when": { "when": {
"axis": "x", "sticky_east": "false",
"sticky_east": "false" "axis": "x"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_x", "model": "create:block/radial_chassis_side_x",
@ -246,8 +246,8 @@
}, },
{ {
"when": { "when": {
"axis": "y", "sticky_east": "false",
"sticky_east": "false" "axis": "y"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_y", "model": "create:block/radial_chassis_side_y",
@ -256,8 +256,8 @@
}, },
{ {
"when": { "when": {
"axis": "z", "sticky_east": "false",
"sticky_east": "false" "axis": "z"
}, },
"apply": { "apply": {
"model": "create:block/radial_chassis_side_z" "model": "create:block/radial_chassis_side_z"

View file

@ -1742,7 +1742,7 @@
"create.ponder.funnel_transfer.header": "Direct transfer", "create.ponder.funnel_transfer.header": "Direct transfer",
"create.ponder.funnel_transfer.text_1": "Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1932,6 +1932,10 @@
"create.ponder.millstone.text_4": "After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "Piston Extension Poles", "create.ponder.piston_pole.header": "Piston Extension Poles",
"create.ponder.piston_pole.text_1": "Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1135", "_": "Missing Localizations: 1138",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 602", "_": "Missing Localizations: 605",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1262", "_": "Missing Localizations: 1265",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1159", "_": "Missing Localizations: 1162",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 619", "_": "Missing Localizations: 622",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 601", "_": "Missing Localizations: 604",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 672", "_": "Missing Localizations: 675",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1551", "_": "Missing Localizations: 1554",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1605", "_": "Missing Localizations: 1608",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 618", "_": "Missing Localizations: 621",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 616", "_": "Missing Localizations: 619",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 621", "_": "Missing Localizations: 624",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -1743,7 +1743,7 @@
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
@ -1933,6 +1933,10 @@
"create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click",
"create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation",
"create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes",
"create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength",
"create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed",
"create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles",
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",

View file

@ -28,8 +28,8 @@
"trigger": "create:bracket_apply", "trigger": "create:bracket_apply",
"conditions": { "conditions": {
"accepted_entries": [ "accepted_entries": [
"create:cogwheel", "create:large_cogwheel",
"create:large_cogwheel" "create:cogwheel"
] ]
} }
}, },

View file

@ -7,7 +7,7 @@
], ],
"key": { "key": {
"A": { "A": {
"item": "create:golden_sheet" "tag": "forge:plates/gold"
}, },
"D": { "D": {
"item": "create:depot" "item": "create:depot"

View file

@ -89,8 +89,10 @@ public abstract class KineticTileEntity extends SmartTileEntity
super.tick(); super.tick();
effects.tick(); effects.tick();
if (world.isRemote) if (world.isRemote) {
cachedBoundingBox = null; // cache the bounding box for every frame between ticks
return; return;
}
if (validationCountdown-- <= 0) { if (validationCountdown-- <= 0) {
validationCountdown = AllConfigs.SERVER.kinetics.kineticValidationFrequency.get(); validationCountdown = AllConfigs.SERVER.kinetics.kineticValidationFrequency.get();
@ -220,7 +222,6 @@ public abstract class KineticTileEntity extends SmartTileEntity
boolean overStressedBefore = overStressed; boolean overStressedBefore = overStressed;
clearKineticInformation(); clearKineticInformation();
cachedBoundingBox = null;
// DO NOT READ kinetic information when placed after movement // DO NOT READ kinetic information when placed after movement
if (wasMoved) { if (wasMoved) {
super.fromTag(state, compound, clientPacket); super.fromTag(state, compound, clientPacket);

View file

@ -32,7 +32,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance,
protected OrientedData hand; protected OrientedData hand;
AllBlockPartials currentHand; AllBlockPartials currentHand;
float progress = Float.NaN; float progress;
private boolean newHand = false; private boolean newHand = false;
public DeployerInstance(InstancedTileRenderer<?> dispatcher, KineticTileEntity tile) { public DeployerInstance(InstancedTileRenderer<?> dispatcher, KineticTileEntity tile) {
@ -52,9 +52,9 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance,
updateHandPose(); updateHandPose();
relight(pos, pole); relight(pos, pole);
progress = getProgress(AnimationTickHolder.getPartialTicks());
updateRotation(pole, hand, yRot, zRot, zRotPole); updateRotation(pole, hand, yRot, zRot, zRotPole);
updatePosition();
beginFrame();
} }
@Override @Override
@ -72,19 +72,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance,
progress = newProgress; progress = newProgress;
newHand = false; newHand = false;
float handLength = currentHand == AllBlockPartials.DEPLOYER_HAND_POINTING ? 0 updatePosition();
: currentHand == AllBlockPartials.DEPLOYER_HAND_HOLDING ? 4 / 16f : 3 / 16f;
float distance = Math.min(MathHelper.clamp(progress, 0, 1) * (tile.reach + handLength), 21 / 16f);
Vector3i facingVec = facing.getDirectionVec();
BlockPos blockPos = getInstancePosition();
float x = blockPos.getX() + ((float) facingVec.getX()) * distance;
float y = blockPos.getY() + ((float) facingVec.getY()) * distance;
float z = blockPos.getZ() + ((float) facingVec.getZ()) * distance;
pole.setPosition(x, y, z);
hand.setPosition(x, y, z);
} }
@Override @Override
@ -112,6 +100,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance,
relight(pos, hand); relight(pos, hand);
updateRotation(pole, hand, yRot, zRot, zRotPole); updateRotation(pole, hand, yRot, zRot, zRotPole);
updatePosition();
return true; return true;
} }
@ -124,6 +113,21 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance,
return 0; return 0;
} }
private void updatePosition() {
float handLength = currentHand == AllBlockPartials.DEPLOYER_HAND_POINTING ? 0
: currentHand == AllBlockPartials.DEPLOYER_HAND_HOLDING ? 4 / 16f : 3 / 16f;
float distance = Math.min(MathHelper.clamp(progress, 0, 1) * (tile.reach + handLength), 21 / 16f);
Vector3i facingVec = facing.getDirectionVec();
BlockPos blockPos = getInstancePosition();
float x = blockPos.getX() + ((float) facingVec.getX()) * distance;
float y = blockPos.getY() + ((float) facingVec.getY()) * distance;
float z = blockPos.getZ() + ((float) facingVec.getZ()) * distance;
pole.setPosition(x, y, z);
hand.setPosition(x, y, z);
}
static void updateRotation(OrientedData pole, OrientedData hand, float yRot, float zRot, float zRotPole) { static void updateRotation(OrientedData pole, OrientedData hand, float yRot, float zRot, float zRotPole) {
Quaternion q = Direction.SOUTH.getUnitVector().getDegreesQuaternion(zRot); Quaternion q = Direction.SOUTH.getUnitVector().getDegreesQuaternion(zRot);

View file

@ -275,7 +275,6 @@ public class BeltTileEntity extends KineticTileEntity implements LightUpdateList
public void setController(BlockPos controller) { public void setController(BlockPos controller) {
this.controller = controller; this.controller = controller;
cachedBoundingBox = null;
} }
public BlockPos getController() { public BlockPos getController() {

View file

@ -329,40 +329,25 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor
private void handleInputFromAbove() { private void handleInputFromAbove() {
if (!capAbove.isPresent()) if (!capAbove.isPresent())
capAbove = grabCapability(Direction.UP); capAbove = grabCapability(Direction.UP);
if (!capAbove.isPresent()) handleInput(capAbove.orElse(null));
return;
int count = getExtractionAmount();
IItemHandler inv = capAbove.orElse(null);
Predicate<ItemStack> canAccept = this::canAcceptItem;
if (count == 0) {
item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.UPTO, 16, false);
return;
}
if (!ItemHelper.extract(inv, canAccept, ExtractionCountMode.EXACTLY, count, true)
.isEmpty())
item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.EXACTLY, count, false);
} }
private void handleInputFromBelow() { private void handleInputFromBelow() {
if (!capBelow.isPresent()) if (!capBelow.isPresent())
capBelow = grabCapability(Direction.DOWN); capBelow = grabCapability(Direction.DOWN);
if (!capBelow.isPresent()) handleInput(capBelow.orElse(null));
return; }
int count = getExtractionAmount(); private void handleInput(IItemHandler inv) {
IItemHandler inv = capBelow.orElse(null); if (inv == null)
return;
Predicate<ItemStack> canAccept = this::canAcceptItem; Predicate<ItemStack> canAccept = this::canAcceptItem;
int count = getExtractionAmount();
if (count == 0) { ExtractionCountMode mode = getExtractionMode();
item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.UPTO, 16, false); if (mode == ExtractionCountMode.UPTO || !ItemHelper.extract(inv, canAccept, mode, count, true)
return;
}
if (!ItemHelper.extract(inv, canAccept, ExtractionCountMode.EXACTLY, count, true)
.isEmpty()) .isEmpty())
item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.EXACTLY, count, false); item = ItemHelper.extract(inv, canAccept, mode, count, false);
} }
private boolean handleDownwardOutput(boolean simulate) { private boolean handleDownwardOutput(boolean simulate) {
@ -480,7 +465,11 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor
} }
protected int getExtractionAmount() { protected int getExtractionAmount() {
return 0; return 16;
}
protected ExtractionCountMode getExtractionMode() {
return ExtractionCountMode.UPTO;
} }
protected boolean canCollectItemsFromBelow() { protected boolean canCollectItemsFromBelow() {

View file

@ -2,6 +2,7 @@ package com.simibubi.create.content.logistics.block.chute;
import java.util.List; import java.util.List;
import com.simibubi.create.foundation.item.ItemHelper.ExtractionCountMode;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
@ -26,7 +27,13 @@ public class SmartChuteTileEntity extends ChuteTileEntity {
@Override @Override
protected int getExtractionAmount() { protected int getExtractionAmount() {
return filtering.isCountVisible() ? filtering.getAmount() : 0; return filtering.isCountVisible() && !filtering.anyAmount() ? filtering.getAmount() : 64;
}
@Override
protected ExtractionCountMode getExtractionMode() {
return filtering.isCountVisible() && !filtering.anyAmount() ? ExtractionCountMode.EXACTLY
: ExtractionCountMode.UPTO;
} }
@Override @Override

View file

@ -106,7 +106,8 @@ public abstract class FunnelBlock extends AbstractDirectionalFunnelBlock {
Direction direction = getFunnelFacing(state); Direction direction = getFunnelFacing(state);
Vector3d diff = entityIn.getPositionVec() Vector3d diff = entityIn.getPositionVec()
.subtract(VecHelper.getCenterOf(pos)); .subtract(VecHelper.getCenterOf(pos)
.add(Vector3d.of(direction.getDirectionVec()).scale(-.325f)));
double projectedDiff = direction.getAxis() double projectedDiff = direction.getAxis()
.getCoordinate(diff.x, diff.y, diff.z); .getCoordinate(diff.x, diff.y, diff.z);
if (projectedDiff < 0 == (direction.getAxisDirection() == AxisDirection.POSITIVE)) if (projectedDiff < 0 == (direction.getAxisDirection() == AxisDirection.POSITIVE))

View file

@ -63,12 +63,12 @@ public class NixieTubeBlock extends HorizontalBlock implements ITE<NixieTubeTile
return ActionResultType.SUCCESS; return ActionResultType.SUCCESS;
BlockPos currentPos = pos; BlockPos currentPos = pos;
while (true) { // while (true) {
BlockPos nextPos = currentPos.offset(left); // BlockPos nextPos = currentPos.offset(left);
if (world.getBlockState(nextPos) != state) // if (world.getBlockState(nextPos) != state)
break; // break;
currentPos = nextPos; // currentPos = nextPos;
} // }
int index = 0; int index = 0;

View file

@ -134,7 +134,7 @@ public abstract class CreateRecipeProvider extends RecipeProvider {
static ITag.INamedTag<Item> copperSheet() { static ITag.INamedTag<Item> copperSheet() {
return AllTags.forgeItemTag("plates/copper"); return AllTags.forgeItemTag("plates/copper");
} }
static ITag.INamedTag<Item> copperNugget() { static ITag.INamedTag<Item> copperNugget() {
return AllTags.forgeItemTag("nuggets/copper"); return AllTags.forgeItemTag("nuggets/copper");
} }

View file

@ -589,7 +589,7 @@ public class StandardRecipeGen extends CreateRecipeProvider {
.patternLine("I")), .patternLine("I")),
WEIGHTED_EJECTOR = create(AllBlocks.WEIGHTED_EJECTOR).unlockedBy(I::andesiteCasing) WEIGHTED_EJECTOR = create(AllBlocks.WEIGHTED_EJECTOR).unlockedBy(I::andesiteCasing)
.viaShaped(b -> b.key('A', AllItems.GOLDEN_SHEET.get()) .viaShaped(b -> b.key('A', I.goldSheet())
.key('D', AllBlocks.DEPOT.get()) .key('D', AllBlocks.DEPOT.get())
.key('I', I.cog()) .key('I', I.cog())
.patternLine("A") .patternLine("A")

View file

@ -20,6 +20,7 @@ import net.minecraft.client.renderer.Rectangle2d;
import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.client.util.InputMappings;
import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.container.Container; import net.minecraft.inventory.container.Container;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -87,6 +88,13 @@ public abstract class AbstractSimiContainerScreen<T extends Container> extends C
if (widget.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_)) if (widget.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_))
return true; return true;
} }
InputMappings.Input mouseKey = InputMappings.getInputByCode(code, p_keyPressed_2_);
if (code == 256 || this.minecraft.gameSettings.keyBindInventory.isActiveAndMatches(mouseKey)) {
this.minecraft.player.closeScreen();
return true;
}
return super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_); return super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_);
} }
@ -96,8 +104,6 @@ public abstract class AbstractSimiContainerScreen<T extends Container> extends C
if (widget.charTyped(character, code)) if (widget.charTyped(character, code))
return true; return true;
} }
if (character == 'e')
onClose();
return super.charTyped(character, code); return super.charTyped(character, code);
} }

View file

@ -10,6 +10,7 @@ import com.simibubi.create.foundation.gui.widgets.AbstractSimiWidget;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.Widget; import net.minecraft.client.gui.widget.Widget;
import net.minecraft.client.util.InputMappings;
import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.StringTextComponent;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
@ -70,6 +71,13 @@ public abstract class AbstractSimiScreen extends Screen {
for (Widget widget : widgets) for (Widget widget : widgets)
if (widget.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_)) if (widget.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_))
return true; return true;
InputMappings.Input mouseKey = InputMappings.getInputByCode(code, p_keyPressed_2_);
if (code == 256 || this.minecraft.gameSettings.keyBindInventory.isActiveAndMatches(mouseKey)) {
this.minecraft.player.closeScreen();
return true;
}
return super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_); return super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_);
} }
@ -79,8 +87,6 @@ public abstract class AbstractSimiScreen extends Screen {
if (widget.charTyped(character, code)) if (widget.charTyped(character, code))
return true; return true;
} }
if (character == 'e')
onClose();
return super.charTyped(character, code); return super.charTyped(character, code);
} }

View file

@ -89,8 +89,13 @@ public class ScreenOpener {
private static void openScreen(Screen screen) { private static void openScreen(Screen screen) {
Minecraft.getInstance() Minecraft.getInstance()
.enqueue(() -> Minecraft.getInstance() .enqueue(() -> {
.displayGuiScreen(screen)); Minecraft.getInstance()
.displayGuiScreen(screen);
Screen previouslyRenderedScreen = getPreviouslyRenderedScreen();
if (previouslyRenderedScreen != null && screen instanceof NavigatableSimiScreen)
previouslyRenderedScreen.init(Minecraft.getInstance(), screen.width, screen.height);
});
} }
} }

View file

@ -1,20 +1,11 @@
package com.simibubi.create.foundation.mixin; package com.simibubi.create.foundation.mixin;
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import java.lang.ref.Reference;
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import java.util.Random;
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionCollider; import java.util.Set;
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionHandler; import java.util.concurrent.atomic.AtomicBoolean;
import net.minecraft.block.BlockRenderType; import java.util.stream.Collectors;
import net.minecraft.block.BlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.MoverType;
import net.minecraft.particles.BlockParticleData;
import net.minecraft.particles.ParticleTypes;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.template.Template;
import org.apache.logging.log4j.util.TriConsumer; import org.apache.logging.log4j.util.TriConsumer;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@ -23,18 +14,33 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.lang.ref.Reference; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
import java.util.Random; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
import java.util.Set; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionCollider;
import java.util.concurrent.atomic.AtomicBoolean; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionHandler;
import java.util.stream.Collectors;
import net.minecraft.block.BlockRenderType;
import net.minecraft.block.BlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.MoverType;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.particles.BlockParticleData;
import net.minecraft.particles.ParticleTypes;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.gen.feature.template.Template;
import net.minecraftforge.common.capabilities.CapabilityProvider;
@Mixin(Entity.class) @Mixin(Entity.class)
public abstract class StepSoundMixin { public abstract class EntityContraptionInteractionMixin extends CapabilityProvider<Entity> {
private EntityContraptionInteractionMixin(Class<Entity> baseClass) {
super(baseClass);
}
private final Entity self = (Entity) (Object) this; private final Entity self = (Entity) (Object) this;
@Shadow private AbstractContraptionEntity contraption;
public World world;
@Final @Final
@Shadow @Shadow
@ -43,30 +49,21 @@ public abstract class StepSoundMixin {
@Shadow @Shadow
private float nextStepDistance; private float nextStepDistance;
@Shadow
public abstract BlockPos getBlockPos();
@Shadow
public abstract Vector3d getPositionVec();
@Shadow @Shadow
protected abstract float determineNextStepDistance(); protected abstract float determineNextStepDistance();
@Shadow
public abstract AxisAlignedBB getBoundingBox();
@Shadow @Shadow
protected abstract void playStepSound(BlockPos p_180429_1_, BlockState p_180429_2_); protected abstract void playStepSound(BlockPos p_180429_1_, BlockState p_180429_2_);
private Set<AbstractContraptionEntity> getIntersectingContraptions() { private Set<AbstractContraptionEntity> getIntersectingContraptions() {
Set<AbstractContraptionEntity> contraptions = ContraptionHandler.loadedContraptions.get(this.world) Set<AbstractContraptionEntity> contraptions = ContraptionHandler.loadedContraptions.get(self.world)
.values() .values()
.stream() .stream()
.map(Reference::get) .map(Reference::get)
.filter(cEntity -> cEntity != null && cEntity.collidingEntities.containsKey(self)) .filter(cEntity -> cEntity != null && cEntity.collidingEntities.containsKey(self))
.collect(Collectors.toSet()); .collect(Collectors.toSet());
contraptions.addAll(this.world.getEntitiesWithinAABB(AbstractContraptionEntity.class, getBoundingBox().grow(1f))); contraptions.addAll(self.world.getEntitiesWithinAABB(AbstractContraptionEntity.class, self.getBoundingBox().grow(1f)));
return contraptions; return contraptions;
} }
@ -95,20 +92,18 @@ public abstract class StepSoundMixin {
method = "move" method = "move"
) )
private void movementMixin(MoverType mover, Vector3d movement, CallbackInfo ci) { private void movementMixin(MoverType mover, Vector3d movement, CallbackInfo ci) {
World entityWorld = world;
Vector3d worldPos = self.getPositionVec().add(0, -0.2, 0); Vector3d worldPos = self.getPositionVec().add(0, -0.2, 0);
AtomicBoolean stepped = new AtomicBoolean(false); AtomicBoolean stepped = new AtomicBoolean(false);
forCollision(worldPos, (contraption, blockstate, blockPos) -> { forCollision(worldPos, (contraption, blockstate, blockPos) -> {
this.world = contraption.getContraptionWorld(); bindContraption(contraption);
this.playStepSound(blockPos, blockstate); playStepSound(blockPos, blockstate);
unbindContraption();
stepped.set(true); stepped.set(true);
}); });
if (stepped.get()) if (stepped.get())
this.nextStepDistance = this.determineNextStepDistance(); this.nextStepDistance = this.determineNextStepDistance();
world = entityWorld;
} }
@Inject(method = {"spawnSprintingParticles"}, at = @At(value = "TAIL")) @Inject(method = {"spawnSprintingParticles"}, at = @At(value = "TAIL"))
@ -117,13 +112,42 @@ public abstract class StepSoundMixin {
BlockPos pos = new BlockPos(worldPos); // pos where particles are spawned BlockPos pos = new BlockPos(worldPos); // pos where particles are spawned
forCollision(worldPos, (contraption, blockstate, blockpos) -> { forCollision(worldPos, (contraption, blockstate, blockpos) -> {
if (!blockstate.addRunningEffects(world, blockpos, self) && blockstate.getRenderType() != BlockRenderType.INVISIBLE) { if (!blockstate.addRunningEffects(self.world, blockpos, self) && blockstate.getRenderType() != BlockRenderType.INVISIBLE) {
Vector3d vec3d = self.getMotion(); Vector3d vec3d = self.getMotion();
this.world.addParticle(new BlockParticleData(ParticleTypes.BLOCK, blockstate).setPos(pos), self.world.addParticle(new BlockParticleData(ParticleTypes.BLOCK, blockstate).setPos(pos),
self.getX() + ((double) rand.nextFloat() - 0.5D) * (double) self.getWidth(), self.getX() + ((double) rand.nextFloat() - 0.5D) * (double) self.getWidth(),
self.getY() + 0.1D, self.getZ() + ((double) rand.nextFloat() - 0.5D) * (double) self.getWidth(), self.getY() + 0.1D, self.getZ() + ((double) rand.nextFloat() - 0.5D) * (double) self.getWidth(),
vec3d.x * -4.0D, 1.5D, vec3d.z * -4.0D); vec3d.x * -4.0D, 1.5D, vec3d.z * -4.0D);
} }
}); });
} }
@Inject(method = "playSound", at = @At("HEAD"), cancellable = true)
private void playSoundShifted(SoundEvent event, float pitch, float volume, CallbackInfo ci) {
if (this.contraption != null && (!self.isSilent() || self instanceof PlayerEntity)) {
double x = self.getX();
double y = self.getY();
double z = self.getZ();
Vector3d worldPos = ContraptionCollider.getWorldToLocalTranslation(new Vector3d(x, y, z), this.contraption);
worldPos = worldPos.add(x, y, z);
self.world.playSound(null, worldPos.x + x, worldPos.y + y, worldPos.z + z, event, self.getSoundCategory(), pitch, volume);
ci.cancel();
}
}
private void bindContraption(Contraption contraption) {
bindContraption(contraption.entity);
}
private void bindContraption(AbstractContraptionEntity contraption) {
this.contraption = contraption;
}
private void unbindContraption() {
this.contraption = null;
}
} }

View file

@ -498,7 +498,7 @@ public class FunnelScenes {
scene.world.showSection(util.select.fromTo(0, 2, 2, 4, 2, 2), Direction.DOWN); scene.world.showSection(util.select.fromTo(0, 2, 2, 4, 2, 2), Direction.DOWN);
scene.overlay.showText(120) scene.overlay.showText(120)
.colored(PonderPalette.GREEN) .colored(PonderPalette.GREEN)
.text("Same applies for horizontal movement.\nA mechanical belt should help here.") .text("Same applies for horizontal movement. A mechanical belt should help here.")
.pointAt(util.vector.topOf(1, 2, 2)) .pointAt(util.vector.topOf(1, 2, 2))
.placeNearTarget(); .placeNearTarget();

View file

@ -617,7 +617,7 @@ public class RedstoneScenes {
} }
public static void nixieTube(SceneBuilder scene, SceneBuildingUtil util) { public static void nixieTube(SceneBuilder scene, SceneBuildingUtil util) {
scene.title("analog_lever", "Using Nixie Tubes"); scene.title("nixie_tube", "Using Nixie Tubes");
scene.configureBasePlate(0, 0, 5); scene.configureBasePlate(0, 0, 5);
scene.world.showSection(util.select.layer(0) scene.world.showSection(util.select.layer(0)
.add(util.select.fromTo(2, 1, 1, 2, 1, 2)), Direction.UP); .add(util.select.fromTo(2, 1, 1, 2, 1, 2)), Direction.UP);
@ -651,7 +651,7 @@ public class RedstoneScenes {
scene.world.showSection(tubes, Direction.DOWN); scene.world.showSection(tubes, Direction.DOWN);
scene.idle(20); scene.idle(20);
scene.overlay.showControls(new InputWindowElement(centerTube.add(0, .35, 0), Pointing.DOWN).rightClick() scene.overlay.showControls(new InputWindowElement(centerTube.add(1, .35, 0), Pointing.DOWN).rightClick()
.withItem(new ItemStack(Items.NAME_TAG)), 40); .withItem(new ItemStack(Items.NAME_TAG)), 40);
scene.idle(7); scene.idle(7);
@ -673,8 +673,9 @@ public class RedstoneScenes {
scene.idle(20); scene.idle(20);
scene.overlay.showText(80) scene.overlay.showText(80)
.attachKeyFrame() .attachKeyFrame()
.placeNearTarget()
.text("Using name tags edited with an anvil, custom text can be displayed") .text("Using name tags edited with an anvil, custom text can be displayed")
.pointAt(util.vector.topOf(util.grid.at(2, 1, 3)) .pointAt(util.vector.topOf(util.grid.at(3, 1, 3))
.add(.25, -.05f, 0)); .add(.25, -.05f, 0));
scene.idle(70); scene.idle(70);
} }

View file

@ -40,11 +40,7 @@ public class FilesHelper {
} }
public static String slug(String name) { public static String slug(String name) {
return Lang.asId(name) return Lang.asId(name).replaceAll("\\W+", "_");
.replace(' ', '_')
.replace('!', '_')
.replace(':', '_')
.replace('?', '_');
} }
public static boolean saveTagCompoundAsJson(CompoundNBT compound, String path) { public static boolean saveTagCompoundAsJson(CompoundNBT compound, String path) {

View file

@ -11,6 +11,7 @@ import com.simibubi.create.content.logistics.item.filter.FilterItem;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.CompoundNBT;
import net.minecraft.tileentity.MobSpawnerTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityType; import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.ITextComponent;
@ -61,6 +62,8 @@ public final class NBTProcessors {
compound = survivalProcessors.get(type).apply(compound); compound = survivalProcessors.get(type).apply(compound);
if (compound != null && processors.containsKey(type)) if (compound != null && processors.containsKey(type))
return processors.get(type).apply(compound); return processors.get(type).apply(compound);
if (tileEntity instanceof MobSpawnerTileEntity)
return compound;
if (tileEntity.onlyOpsCanSetNbt()) if (tileEntity.onlyOpsCanSetNbt())
return null; return null;
return compound; return compound;

View file

@ -259,7 +259,7 @@ public class PlacementHelpers {
RenderSystem.shadeModel(GL11.GL_SMOOTH); RenderSystem.shadeModel(GL11.GL_SMOOTH);
ms.translate(centerX, centerY, 0); ms.translate(centerX, centerY, 0);
float scale = AllConfigs.CLIENT.indicatorScale.get().floatValue(); float scale = AllConfigs.CLIENT.indicatorScale.get().floatValue() * .75f;
ms.scale(scale, scale, 1); ms.scale(scale, scale, 1);
ms.scale(12, 12, 1); ms.scale(12, 12, 1);

View file

@ -2,7 +2,6 @@
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"textures": { "textures": {
"5": "create:block/brass_casing", "5": "create:block/brass_casing",
"particle": "create:block/brass_block",
"1_1": "create:block/furnace_cylinder" "1_1": "create:block/furnace_cylinder"
}, },
"elements": [ "elements": [
@ -55,6 +54,20 @@
"down": {"uv": [3, 13, 4.5, 15], "rotation": 270, "texture": "#1_1"} "down": {"uv": [3, 13, 4.5, 15], "rotation": 270, "texture": "#1_1"}
} }
}, },
{
"name": "LowerPort",
"from": [1.5, 0.1, 13.9],
"to": [5.5, 4.1, 16.9],
"rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]},
"faces": {
"north": {"uv": [14, 0, 10, 4], "texture": "#1_1"},
"east": {"uv": [4.5, 13, 3, 15], "texture": "#1_1"},
"south": {"uv": [4.5, 13, 2.5, 15], "texture": "#1_1"},
"west": {"uv": [4.5, 13, 3, 15], "rotation": 180, "texture": "#1_1"},
"up": {"uv": [3, 15, 4.5, 13], "rotation": 90, "texture": "#1_1"},
"down": {"uv": [3, 15, 4.5, 13], "rotation": 270, "texture": "#1_1"}
}
},
{ {
"name": "Port", "name": "Port",
"from": [4, 4, 15.8], "from": [4, 4, 15.8],
@ -104,7 +117,7 @@
{ {
"name": "SteamCylinder", "name": "SteamCylinder",
"origin": [8, 8, 8], "origin": [8, 8, 8],
"children": [0, 1, 2, 3, 4] "children": [0, 1, 2, 3, 4, 5]
} }
] ]
} }

View file

@ -13,7 +13,7 @@
"RenderHooksMixin", "RenderHooksMixin",
"ShaderCloseMixin", "ShaderCloseMixin",
"TileRemoveMixin", "TileRemoveMixin",
"StepSoundMixin" "EntityContraptionInteractionMixin"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1