diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index bc34d5944..8690e0e40 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -407,19 +407,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json 768a724d6c921cb92790364cf7a692fe8742a885 assets/create/lang/en_ud.json -900d337c7dab1b79c842e7ebc33844900e8caa42 assets/create/lang/en_us.json -c1420042a70e66de459e9c621b2fd141338dddd7 assets/create/lang/unfinished/de_de.json -e6aefcddb48f51f66cd91d36247e3aa5cbdba76a assets/create/lang/unfinished/es_es.json -671eb2555a62c1726dc63a02643a9fd5c7c73410 assets/create/lang/unfinished/es_mx.json -418f0a37de376eb97d7801a72c7b984e589f8736 assets/create/lang/unfinished/fr_fr.json -7831ce35531e76bd1c6eb2902072ef2945bb1f9b assets/create/lang/unfinished/it_it.json -c9ec5aca9c2b57efff7863b6781a1c0a3c7a2a20 assets/create/lang/unfinished/ja_jp.json -36d6decedef0921ed6db504a1b52a3c013072202 assets/create/lang/unfinished/ko_kr.json -5c373cd9c2db0214d9cf763a07b579da110e2c20 assets/create/lang/unfinished/nl_nl.json -0dc551e818fcffb086e9ca1d98df645a605d3679 assets/create/lang/unfinished/pt_br.json -430943447a11762cd5a5d74f20ef75de6cbe1808 assets/create/lang/unfinished/ru_ru.json -5062ede649b6153cfe44b795fe7ed1da8f726c55 assets/create/lang/unfinished/zh_cn.json -b14c82179c5a90962c187f3e2ac07d1cd339fab2 assets/create/lang/unfinished/zh_tw.json +3060ba1eee371d642e0590c3d6e99c2be397c7f5 assets/create/lang/en_us.json +4da96bffe4f68f364977bd3b0a0e5d43a850e90b assets/create/lang/unfinished/de_de.json +3b3e7b694b75ab50acfe911935f80da0b3234010 assets/create/lang/unfinished/es_es.json +20d7a808b485b9140bce1c4c483c7fc2218a0611 assets/create/lang/unfinished/es_mx.json +1e9f530d590556eac0c4d08750d3ebbd83b504f2 assets/create/lang/unfinished/fr_fr.json +a604e3bf8d1b28d4f77cd4fb5b63f5d58988a507 assets/create/lang/unfinished/it_it.json +371ef25dcdbd268d1f96d19ccd56413c93425ced assets/create/lang/unfinished/ja_jp.json +7206826ff926de6a04145a17928c00ea28762404 assets/create/lang/unfinished/ko_kr.json +411d5197f3b5eb75ef7033685fb24df1c02a959f assets/create/lang/unfinished/nl_nl.json +59756083e6d04f649e860fed9b13657fa12f919b assets/create/lang/unfinished/pt_br.json +184e6225f8a752a526e61fd6cd1f47506efd846b assets/create/lang/unfinished/ru_ru.json +58fb522692bf7b15d8fb851f0a807fab04620d45 assets/create/lang/unfinished/zh_cn.json +1e2f8564c19f2fe35ce91e65831b72ab44bedea1 assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.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 057c889b0a306f44b8835c896663154ccd9ff12f data/create/recipes/crafting/kinetics/vertical_gearboxfrom_conversion.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 d80a741d2f0d4f742217b43d7e4d37f003ec9f9d data/create/recipes/crafting/kinetics/white_sail.json f4d88aa2edea548d29cf2678a111d8bb5db7720a data/create/recipes/crafting/kinetics/white_seat.json diff --git a/src/generated/resources/assets/create/blockstates/radial_chassis.json b/src/generated/resources/assets/create/blockstates/radial_chassis.json index 8bd829ffc..f97d8c8bc 100644 --- a/src/generated/resources/assets/create/blockstates/radial_chassis.json +++ b/src/generated/resources/assets/create/blockstates/radial_chassis.json @@ -89,8 +89,8 @@ }, { "when": { - "axis": "x", - "sticky_west": "true" + "sticky_west": "true", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -99,8 +99,8 @@ }, { "when": { - "axis": "y", - "sticky_west": "true" + "sticky_west": "true", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -109,8 +109,8 @@ }, { "when": { - "axis": "z", - "sticky_west": "true" + "sticky_west": "true", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky", @@ -119,8 +119,8 @@ }, { "when": { - "axis": "x", - "sticky_west": "false" + "sticky_west": "false", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -129,8 +129,8 @@ }, { "when": { - "axis": "y", - "sticky_west": "false" + "sticky_west": "false", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -139,8 +139,8 @@ }, { "when": { - "axis": "z", - "sticky_west": "false" + "sticky_west": "false", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z", @@ -149,8 +149,8 @@ }, { "when": { - "axis": "x", - "sticky_north": "true" + "sticky_north": "true", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky" @@ -158,8 +158,8 @@ }, { "when": { - "axis": "y", - "sticky_north": "true" + "sticky_north": "true", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -168,8 +168,8 @@ }, { "when": { - "axis": "z", - "sticky_north": "true" + "sticky_north": "true", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -178,8 +178,8 @@ }, { "when": { - "axis": "x", - "sticky_north": "false" + "sticky_north": "false", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x" @@ -187,8 +187,8 @@ }, { "when": { - "axis": "y", - "sticky_north": "false" + "sticky_north": "false", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -197,8 +197,8 @@ }, { "when": { - "axis": "z", - "sticky_north": "false" + "sticky_north": "false", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -207,8 +207,8 @@ }, { "when": { - "axis": "x", - "sticky_east": "true" + "sticky_east": "true", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -217,8 +217,8 @@ }, { "when": { - "axis": "y", - "sticky_east": "true" + "sticky_east": "true", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -227,8 +227,8 @@ }, { "when": { - "axis": "z", - "sticky_east": "true" + "sticky_east": "true", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky" @@ -236,8 +236,8 @@ }, { "when": { - "axis": "x", - "sticky_east": "false" + "sticky_east": "false", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -246,8 +246,8 @@ }, { "when": { - "axis": "y", - "sticky_east": "false" + "sticky_east": "false", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -256,8 +256,8 @@ }, { "when": { - "axis": "z", - "sticky_east": "false" + "sticky_east": "false", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z" diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 262edd73f..518dafa17 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1742,7 +1742,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 04b5f036b..f8eed9bde 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1135", + "_": "Missing Localizations: 1138", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index ae4a5c0e4..bc5243a6f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 602", + "_": "Missing Localizations: 605", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_mx.json b/src/generated/resources/assets/create/lang/unfinished/es_mx.json index 7338aac9b..3762a7784 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_mx.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_mx.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1262", + "_": "Missing Localizations: 1265", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 95f440b6c..5483fc944 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1159", + "_": "Missing Localizations: 1162", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 8a98bb375..eb2b66aa9 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 619", + "_": "Missing Localizations: 622", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 087e4a697..6d72dd15e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 601", + "_": "Missing Localizations: 604", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 1caa355cb..eaf34157c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 672", + "_": "Missing Localizations: 675", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index f85fa83ad..5e5a64a3b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1551", + "_": "Missing Localizations: 1554", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index a7e70c05a..0dc83de7c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1605", + "_": "Missing Localizations: 1608", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index cef77da44..4afde13db 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 618", + "_": "Missing Localizations: 621", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 745bb3152..dbc9bb269 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 616", + "_": "Missing Localizations: 619", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 8b461802c..9920312ed 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 621", + "_": "Missing Localizations: 624", "_": "->------------------------] Game Elements [------------------------<-", @@ -1743,7 +1743,7 @@ "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_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.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_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.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", diff --git a/src/generated/resources/data/create/advancements/aesthetics.json b/src/generated/resources/data/create/advancements/aesthetics.json index d723cbe38..59a86f429 100644 --- a/src/generated/resources/data/create/advancements/aesthetics.json +++ b/src/generated/resources/data/create/advancements/aesthetics.json @@ -28,8 +28,8 @@ "trigger": "create:bracket_apply", "conditions": { "accepted_entries": [ - "create:cogwheel", - "create:large_cogwheel" + "create:large_cogwheel", + "create:cogwheel" ] } }, diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/weighted_ejector.json b/src/generated/resources/data/create/recipes/crafting/kinetics/weighted_ejector.json index f1b065cd8..45f15793d 100644 --- a/src/generated/resources/data/create/recipes/crafting/kinetics/weighted_ejector.json +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/weighted_ejector.json @@ -7,7 +7,7 @@ ], "key": { "A": { - "item": "create:golden_sheet" + "tag": "forge:plates/gold" }, "D": { "item": "create:depot" diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java index a6a16d9d9..fc2568ffb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java @@ -89,8 +89,10 @@ public abstract class KineticTileEntity extends SmartTileEntity super.tick(); effects.tick(); - if (world.isRemote) + if (world.isRemote) { + cachedBoundingBox = null; // cache the bounding box for every frame between ticks return; + } if (validationCountdown-- <= 0) { validationCountdown = AllConfigs.SERVER.kinetics.kineticValidationFrequency.get(); @@ -220,7 +222,6 @@ public abstract class KineticTileEntity extends SmartTileEntity boolean overStressedBefore = overStressed; clearKineticInformation(); - cachedBoundingBox = null; // DO NOT READ kinetic information when placed after movement if (wasMoved) { super.fromTag(state, compound, clientPacket); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java index 567a2a07b..18342b131 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java @@ -32,7 +32,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, protected OrientedData hand; AllBlockPartials currentHand; - float progress = Float.NaN; + float progress; private boolean newHand = false; public DeployerInstance(InstancedTileRenderer dispatcher, KineticTileEntity tile) { @@ -52,9 +52,9 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, updateHandPose(); relight(pos, pole); + progress = getProgress(AnimationTickHolder.getPartialTicks()); updateRotation(pole, hand, yRot, zRot, zRotPole); - - beginFrame(); + updatePosition(); } @Override @@ -72,19 +72,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, progress = newProgress; newHand = false; - 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); - + updatePosition(); } @Override @@ -112,6 +100,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, relight(pos, hand); updateRotation(pole, hand, yRot, zRot, zRotPole); + updatePosition(); return true; } @@ -124,6 +113,21 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, 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) { Quaternion q = Direction.SOUTH.getUnitVector().getDegreesQuaternion(zRot); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java index 1ac2d8fac..493bb143c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java @@ -275,7 +275,6 @@ public class BeltTileEntity extends KineticTileEntity implements LightUpdateList public void setController(BlockPos controller) { this.controller = controller; - cachedBoundingBox = null; } public BlockPos getController() { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java index 1b21ee48b..6c173cc0a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java @@ -329,40 +329,25 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor private void handleInputFromAbove() { if (!capAbove.isPresent()) capAbove = grabCapability(Direction.UP); - if (!capAbove.isPresent()) - return; - - int count = getExtractionAmount(); - IItemHandler inv = capAbove.orElse(null); - Predicate 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); + handleInput(capAbove.orElse(null)); } private void handleInputFromBelow() { if (!capBelow.isPresent()) capBelow = grabCapability(Direction.DOWN); - if (!capBelow.isPresent()) - return; + handleInput(capBelow.orElse(null)); + } - int count = getExtractionAmount(); - IItemHandler inv = capBelow.orElse(null); + private void handleInput(IItemHandler inv) { + if (inv == null) + return; Predicate 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) + int count = getExtractionAmount(); + ExtractionCountMode mode = getExtractionMode(); + if (mode == ExtractionCountMode.UPTO || !ItemHelper.extract(inv, canAccept, mode, count, true) .isEmpty()) - item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.EXACTLY, count, false); + item = ItemHelper.extract(inv, canAccept, mode, count, false); + } private boolean handleDownwardOutput(boolean simulate) { @@ -480,7 +465,11 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor } protected int getExtractionAmount() { - return 0; + return 16; + } + + protected ExtractionCountMode getExtractionMode() { + return ExtractionCountMode.UPTO; } protected boolean canCollectItemsFromBelow() { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java index dafa8fa93..585c7f10b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java @@ -2,6 +2,7 @@ package com.simibubi.create.content.logistics.block.chute; 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.behaviour.filtering.FilteringBehaviour; @@ -26,7 +27,13 @@ public class SmartChuteTileEntity extends ChuteTileEntity { @Override 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 diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java index 387ad758f..60f4f8971 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java @@ -106,7 +106,8 @@ public abstract class FunnelBlock extends AbstractDirectionalFunnelBlock { Direction direction = getFunnelFacing(state); Vector3d diff = entityIn.getPositionVec() - .subtract(VecHelper.getCenterOf(pos)); + .subtract(VecHelper.getCenterOf(pos) + .add(Vector3d.of(direction.getDirectionVec()).scale(-.325f))); double projectedDiff = direction.getAxis() .getCoordinate(diff.x, diff.y, diff.z); if (projectedDiff < 0 == (direction.getAxisDirection() == AxisDirection.POSITIVE)) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java index 4cb3ea694..3eaeb507a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java @@ -63,12 +63,12 @@ public class NixieTubeBlock extends HorizontalBlock implements ITE copperSheet() { return AllTags.forgeItemTag("plates/copper"); } - + static ITag.INamedTag copperNugget() { return AllTags.forgeItemTag("nuggets/copper"); } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index b3189af72..9f0be9e2f 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -589,7 +589,7 @@ public class StandardRecipeGen extends CreateRecipeProvider { .patternLine("I")), 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('I', I.cog()) .patternLine("A") diff --git a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java index 13096722a..2510cca53 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java @@ -20,6 +20,7 @@ import net.minecraft.client.renderer.Rectangle2d; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.client.util.InputMappings; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.container.Container; import net.minecraft.item.ItemStack; @@ -87,6 +88,13 @@ public abstract class AbstractSimiContainerScreen extends C if (widget.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_)) 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_); } @@ -96,8 +104,6 @@ public abstract class AbstractSimiContainerScreen extends C if (widget.charTyped(character, code)) return true; } - if (character == 'e') - onClose(); return super.charTyped(character, code); } diff --git a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java index 76c4b9151..c30a954d5 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java @@ -10,6 +10,7 @@ import com.simibubi.create.foundation.gui.widgets.AbstractSimiWidget; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.Widget; +import net.minecraft.client.util.InputMappings; import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -70,6 +71,13 @@ public abstract class AbstractSimiScreen extends Screen { for (Widget widget : widgets) if (widget.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_)) 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_); } @@ -79,8 +87,6 @@ public abstract class AbstractSimiScreen extends Screen { if (widget.charTyped(character, code)) return true; } - if (character == 'e') - onClose(); return super.charTyped(character, code); } diff --git a/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java b/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java index 2d7c65352..9687042ab 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java +++ b/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java @@ -89,8 +89,13 @@ public class ScreenOpener { private static void openScreen(Screen screen) { Minecraft.getInstance() - .enqueue(() -> Minecraft.getInstance() - .displayGuiScreen(screen)); + .enqueue(() -> { + Minecraft.getInstance() + .displayGuiScreen(screen); + Screen previouslyRenderedScreen = getPreviouslyRenderedScreen(); + if (previouslyRenderedScreen != null && screen instanceof NavigatableSimiScreen) + previouslyRenderedScreen.init(Minecraft.getInstance(), screen.width, screen.height); + }); } } diff --git a/src/main/java/com/simibubi/create/foundation/mixin/StepSoundMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/EntityContraptionInteractionMixin.java similarity index 68% rename from src/main/java/com/simibubi/create/foundation/mixin/StepSoundMixin.java rename to src/main/java/com/simibubi/create/foundation/mixin/EntityContraptionInteractionMixin.java index 26a3ee18a..a4ae369e3 100644 --- a/src/main/java/com/simibubi/create/foundation/mixin/StepSoundMixin.java +++ b/src/main/java/com/simibubi/create/foundation/mixin/EntityContraptionInteractionMixin.java @@ -1,20 +1,11 @@ package com.simibubi.create.foundation.mixin; -import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; -import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; -import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionCollider; -import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionHandler; -import net.minecraft.block.BlockRenderType; -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 java.lang.ref.Reference; +import java.util.Random; +import java.util.Set; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.stream.Collectors; + import org.apache.logging.log4j.util.TriConsumer; import org.spongepowered.asm.mixin.Final; 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.callback.CallbackInfo; -import java.lang.ref.Reference; -import java.util.Random; -import java.util.Set; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.stream.Collectors; +import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; +import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; +import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionCollider; +import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionHandler; + +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) -public abstract class StepSoundMixin { +public abstract class EntityContraptionInteractionMixin extends CapabilityProvider { + private EntityContraptionInteractionMixin(Class baseClass) { + super(baseClass); + } + private final Entity self = (Entity) (Object) this; - @Shadow - public World world; + private AbstractContraptionEntity contraption; @Final @Shadow @@ -43,30 +49,21 @@ public abstract class StepSoundMixin { @Shadow private float nextStepDistance; - @Shadow - public abstract BlockPos getBlockPos(); - - @Shadow - public abstract Vector3d getPositionVec(); - @Shadow protected abstract float determineNextStepDistance(); - @Shadow - public abstract AxisAlignedBB getBoundingBox(); - @Shadow protected abstract void playStepSound(BlockPos p_180429_1_, BlockState p_180429_2_); private Set getIntersectingContraptions() { - Set contraptions = ContraptionHandler.loadedContraptions.get(this.world) + Set contraptions = ContraptionHandler.loadedContraptions.get(self.world) .values() .stream() .map(Reference::get) .filter(cEntity -> cEntity != null && cEntity.collidingEntities.containsKey(self)) .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; } @@ -95,20 +92,18 @@ public abstract class StepSoundMixin { method = "move" ) private void movementMixin(MoverType mover, Vector3d movement, CallbackInfo ci) { - World entityWorld = world; Vector3d worldPos = self.getPositionVec().add(0, -0.2, 0); AtomicBoolean stepped = new AtomicBoolean(false); forCollision(worldPos, (contraption, blockstate, blockPos) -> { - this.world = contraption.getContraptionWorld(); - this.playStepSound(blockPos, blockstate); + bindContraption(contraption); + playStepSound(blockPos, blockstate); + unbindContraption(); stepped.set(true); }); if (stepped.get()) this.nextStepDistance = this.determineNextStepDistance(); - - world = entityWorld; } @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 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(); - 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.getY() + 0.1D, self.getZ() + ((double) rand.nextFloat() - 0.5D) * (double) self.getWidth(), 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; + } } + diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java index 85b728ee4..030f0ce6e 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java @@ -498,7 +498,7 @@ public class FunnelScenes { scene.world.showSection(util.select.fromTo(0, 2, 2, 4, 2, 2), Direction.DOWN); scene.overlay.showText(120) .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)) .placeNearTarget(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java index 4871477ff..ef4a004be 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java @@ -617,7 +617,7 @@ public class RedstoneScenes { } 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.world.showSection(util.select.layer(0) .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.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); scene.idle(7); @@ -673,8 +673,9 @@ public class RedstoneScenes { scene.idle(20); scene.overlay.showText(80) .attachKeyFrame() + .placeNearTarget() .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)); scene.idle(70); } diff --git a/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java b/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java index 2cbff0055..cd916fd4a 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java @@ -40,11 +40,7 @@ public class FilesHelper { } public static String slug(String name) { - return Lang.asId(name) - .replace(' ', '_') - .replace('!', '_') - .replace(':', '_') - .replace('?', '_'); + return Lang.asId(name).replaceAll("\\W+", "_"); } public static boolean saveTagCompoundAsJson(CompoundNBT compound, String path) { diff --git a/src/main/java/com/simibubi/create/foundation/utility/NBTProcessors.java b/src/main/java/com/simibubi/create/foundation/utility/NBTProcessors.java index 4cbf86483..73077cc17 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/NBTProcessors.java +++ b/src/main/java/com/simibubi/create/foundation/utility/NBTProcessors.java @@ -11,6 +11,7 @@ import com.simibubi.create.content.logistics.item.filter.FilterItem; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.tileentity.MobSpawnerTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.text.ITextComponent; @@ -61,6 +62,8 @@ public final class NBTProcessors { compound = survivalProcessors.get(type).apply(compound); if (compound != null && processors.containsKey(type)) return processors.get(type).apply(compound); + if (tileEntity instanceof MobSpawnerTileEntity) + return compound; if (tileEntity.onlyOpsCanSetNbt()) return null; return compound; diff --git a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java index cebfede73..39b762cfc 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java +++ b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java @@ -259,7 +259,7 @@ public class PlacementHelpers { RenderSystem.shadeModel(GL11.GL_SMOOTH); 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(12, 12, 1); diff --git a/src/main/resources/assets/create/models/block/furnace_engine/item.json b/src/main/resources/assets/create/models/block/furnace_engine/item.json index ac8647000..3ec9466c0 100644 --- a/src/main/resources/assets/create/models/block/furnace_engine/item.json +++ b/src/main/resources/assets/create/models/block/furnace_engine/item.json @@ -2,7 +2,6 @@ "credit": "Made with Blockbench", "textures": { "5": "create:block/brass_casing", - "particle": "create:block/brass_block", "1_1": "create:block/furnace_cylinder" }, "elements": [ @@ -55,6 +54,20 @@ "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", "from": [4, 4, 15.8], @@ -104,7 +117,7 @@ { "name": "SteamCylinder", "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4] + "children": [0, 1, 2, 3, 4, 5] } ] } \ No newline at end of file diff --git a/src/main/resources/create.mixins.json b/src/main/resources/create.mixins.json index 3ee1cb74c..81b7d6c55 100644 --- a/src/main/resources/create.mixins.json +++ b/src/main/resources/create.mixins.json @@ -13,7 +13,7 @@ "RenderHooksMixin", "ShaderCloseMixin", "TileRemoveMixin", - "StepSoundMixin" + "EntityContraptionInteractionMixin" ], "injectors": { "defaultRequire": 1