mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-14 14:34:16 +01:00
Too much elevation
- Elevator contacts no longer power adjacent elevator contacts - Fixed elevator contraptions travelling to unreachable floors - Switch to redstone palette for controls indicator - Added localised elevator assembly hints - Multiple elevators can no longer be assembled into the same column
This commit is contained in:
parent
945ecefe0d
commit
cd0c748e0b
@ -563,23 +563,23 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
||||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
29da6f08028cfed0f311c8073d7615d6821aaee6 assets/create/lang/en_ud.json
|
||||
f16b180625bb72138bcb57e27b91b1b4b9c71db7 assets/create/lang/en_us.json
|
||||
cab6bdb4325f41b3309bc9f7381dacbe50bc284a assets/create/lang/unfinished/de_de.json
|
||||
52206a7b8357a3ba74b265a87ef01f4f5ccff521 assets/create/lang/unfinished/es_cl.json
|
||||
9dbfe72c9585e0eaec5b185ede7a7f58c2896c31 assets/create/lang/unfinished/es_es.json
|
||||
8cbbfeb3f1697d013517754bcd2a6b08831d4f84 assets/create/lang/unfinished/fr_fr.json
|
||||
218ea3097c9979909d897d978cbad61facfb1b8c assets/create/lang/unfinished/it_it.json
|
||||
ae2dfc2bd8196fce9f30dc1469e94f050a1a49f5 assets/create/lang/unfinished/ja_jp.json
|
||||
271fc874fe49205e3fbcfe1d27148ab4f4cf3d96 assets/create/lang/unfinished/ko_kr.json
|
||||
032e905563d9257b9423c88706ab8a4cfb1b5bb3 assets/create/lang/unfinished/nl_nl.json
|
||||
3012ab3a76e359db944d1d6330772dd15e6e8c5c assets/create/lang/unfinished/pl_pl.json
|
||||
df65548cb9c722b93bee0a570b75aac37442a517 assets/create/lang/unfinished/pt_br.json
|
||||
5cb5a8ab92c155131dfcfc1e593d5a0e04cbd219 assets/create/lang/unfinished/pt_pt.json
|
||||
3afabc1553ae8c007c31c79686d0d36502f54687 assets/create/lang/unfinished/ro_ro.json
|
||||
ccb8e554f34afdd21f9d6920c9a503f275ec676c assets/create/lang/unfinished/ru_ru.json
|
||||
b6ecf4c99b64ecf194253a8595ced0732a53beb3 assets/create/lang/unfinished/uk_ua.json
|
||||
fe13c0665e0359ec356d0656f1b5715b1e6a6213 assets/create/lang/unfinished/zh_cn.json
|
||||
9f80d15820f6d308e31c3a31b2e98251bdc93b01 assets/create/lang/unfinished/zh_tw.json
|
||||
0070b8f388464c998ebdec0dd9ed00f95910922b assets/create/lang/en_us.json
|
||||
819a773dac8b804a497bc798aa5b60011de1f736 assets/create/lang/unfinished/de_de.json
|
||||
ed149274800dbc226bdc3dc0ba5f37fd5aff7e9a assets/create/lang/unfinished/es_cl.json
|
||||
59ba35103b2ec6b30b00c38e6410994eb1050a06 assets/create/lang/unfinished/es_es.json
|
||||
27463977eae36ec876a0a298885f606297c971c1 assets/create/lang/unfinished/fr_fr.json
|
||||
b8f760ee53958b6193350c82a0ad6ec4df0116d9 assets/create/lang/unfinished/it_it.json
|
||||
766d570603a8cb1475002045db8976d7bfae72f1 assets/create/lang/unfinished/ja_jp.json
|
||||
5d585d77810a3bc6b4247eff5a08f0a85fcc0e7c assets/create/lang/unfinished/ko_kr.json
|
||||
1275ee80cc65b49a77c26dbbd3bfba9eac762ead assets/create/lang/unfinished/nl_nl.json
|
||||
9c2210faa1a598567c9b8c6e0529183227afd8de assets/create/lang/unfinished/pl_pl.json
|
||||
4e07b14961b64aa05a60193335663a4ea2cbe4ef assets/create/lang/unfinished/pt_br.json
|
||||
4f27ff82d89d4b25b3cc237118611c385b6bedd9 assets/create/lang/unfinished/pt_pt.json
|
||||
3b76d014cacd40e53e1f8f10545a133e2289ebc7 assets/create/lang/unfinished/ro_ro.json
|
||||
b315407f620e95f376e4b0aab5cc6755c6410227 assets/create/lang/unfinished/ru_ru.json
|
||||
5ec15854ee92e6e463341b226da3682f213ad7a5 assets/create/lang/unfinished/uk_ua.json
|
||||
1be5b9da89c4f22421bda20eae909f69dd8f7554 assets/create/lang/unfinished/zh_cn.json
|
||||
df88975ac97350e6f77355c053f853f14d867ecb 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
|
||||
|
@ -1081,6 +1081,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "The Piston is missing some extension Poles",
|
||||
"create.gui.assembly.exception.not_enough_sails": "Attached structure does not include enough sail-like blocks: %1$s\nA minimum of %2$s are required",
|
||||
"create.gui.assembly.exception.no_contacts": "Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Gauge Information:",
|
||||
"create.gui.speedometer.title": "Rotation Speed",
|
||||
"create.gui.stressometer.title": "Network Stress",
|
||||
@ -1644,6 +1647,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "On",
|
||||
"create.contraption.controls.actor_toggle.off": "Off",
|
||||
"create.contraption.controls.floor_unreachable": "Unreachable",
|
||||
|
||||
"create.display_link.set": "Targeted position selected",
|
||||
"create.display_link.success": "Successfully bound to targeted position",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 866",
|
||||
"_": "Missing Localizations: 870",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "Es sind zu viele Pleuelverlängerungen an diesen Kolben angebracht.\nDas konfigurierte Maximum ist: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "Dem Kolben fehlen ein paar Pleuelverlängerungen",
|
||||
"create.gui.assembly.exception.not_enough_sails": "Angebrachte Struktur enthält nicht genug segelähnliche Blöcke: %1$s\nEin Minimum von %2$s ist erforderlich",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Messgerät Information:",
|
||||
"create.gui.speedometer.title": "Rotationsgeschwindigkeit",
|
||||
"create.gui.stressometer.title": "Netzwerkbelastung",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "Anvisierte Position ausgewählt",
|
||||
"create.display_link.success": "Erfolgreich mit ausgewählter Position gebunden",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 1012",
|
||||
"_": "Missing Localizations: 1016",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "Hay muchos postes de extensión en este pistón.\nEl máximo configurado es: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "Al pistón le faltan algunos postes de extensión",
|
||||
"create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques de vela: %1$s\nUn mínimo de %2$s son requeridos",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Información del medidor:",
|
||||
"create.gui.speedometer.title": "Velocidad de Rotación",
|
||||
"create.gui.stressometer.title": "Estrés de la Red",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "UNLOCALIZED: Targeted position selected",
|
||||
"create.display_link.success": "UNLOCALIZED: Successfully bound to targeted position",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 32",
|
||||
"_": "Missing Localizations: 36",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón",
|
||||
"create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Información sobre el medidor:",
|
||||
"create.gui.speedometer.title": "Velocidad de rotación",
|
||||
"create.gui.stressometer.title": "Estrés de la red",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "Posición objetivo seleccionada",
|
||||
"create.display_link.success": "Posición objetivo vinculada con éxito",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 2150",
|
||||
"_": "Missing Localizations: 2165",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
|
||||
"create.gui.assembly.exception.not_enough_sails": "UNLOCALIZED: Attached structure does not include enough sail-like blocks: %1$s\nA minimum of %2$s are required",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Informations sur la jauge:",
|
||||
"create.gui.speedometer.title": "Vitesse de rotation",
|
||||
"create.gui.stressometer.title": "Stress du réseau",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "UNLOCALIZED: Targeted position selected",
|
||||
"create.display_link.success": "UNLOCALIZED: Successfully bound to targeted position",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 26",
|
||||
"_": "Missing Localizations: 30",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "Ci sono troppi Pali di pistone attaccati a questo Pistone.\nIl massimo èimpostato a: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "Questo Pistone non ha Pali per pistone attaccati",
|
||||
"create.gui.assembly.exception.not_enough_sails": "La struttura attaccata non include abbastanza blocchi simili a vele: %1$s\nNe servono un minimo di %2$s",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Informazioni sul sistema:",
|
||||
"create.gui.speedometer.title": "Velocità di rotazione",
|
||||
"create.gui.stressometer.title": "Stress della rete",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "Bersaglio selezionato",
|
||||
"create.display_link.success": "Connesso con successo alla posizione selezionata",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 28",
|
||||
"_": "Missing Localizations: 32",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "このピストンに取り付けられているピストン延長ポールが多すぎます。\n最大値: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "ピストンにピストン延長ポールがありません。",
|
||||
"create.gui.assembly.exception.not_enough_sails": "このからくりは帆ブロックが足りていません。: %1$s\nが最低でも%2$s個必要です。",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "メーターの情報:",
|
||||
"create.gui.speedometer.title": "回転速度",
|
||||
"create.gui.stressometer.title": "ネットワークの応力",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "対象の位置を選択しました",
|
||||
"create.display_link.success": "対象の位置と結び付けられました",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 32",
|
||||
"_": "Missing Localizations: 36",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "이 피스톤에 너무 많은 연장 축이 부착되어 있습니다.\n설정된 최댓값: %1$s개",
|
||||
"create.gui.assembly.exception.noPistonPoles": "이 피스톤은 연장 축이 없습니다.",
|
||||
"create.gui.assembly.exception.not_enough_sails": "부착된 구조물에 날개 블록이 부족합니다. 현재: %1$s개 \n최소 %2$s개가 필요합니다.",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "계측기 정보:",
|
||||
"create.gui.speedometer.title": "회전 속도",
|
||||
"create.gui.stressometer.title": "네트워크 부하",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "표시할 대상을 선택했습니다",
|
||||
"create.display_link.success": "성공적으로 대상과 연결되었습니다",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 2498",
|
||||
"_": "Missing Localizations: 2513",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
|
||||
"create.gui.assembly.exception.not_enough_sails": "UNLOCALIZED: Attached structure does not include enough sail-like blocks: %1$s\nA minimum of %2$s are required",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "UNLOCALIZED: Gauge Information:",
|
||||
"create.gui.speedometer.title": "UNLOCALIZED: Rotation Speed",
|
||||
"create.gui.stressometer.title": "UNLOCALIZED: Network Stress",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "UNLOCALIZED: Targeted position selected",
|
||||
"create.display_link.success": "UNLOCALIZED: Successfully bound to targeted position",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 36",
|
||||
"_": "Missing Localizations: 40",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "Zbyt dużo przedłużeń tłoka. Ustawione maksimum to: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "Brakuje kilku przedłużeń tłoka",
|
||||
"create.gui.assembly.exception.not_enough_sails": "Przyczepiona struktura nie zawiera wystarczająco żaglo-podobnych bloków: %1$s Wymagane minimum to %2$s",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Informacje miernika:",
|
||||
"create.gui.speedometer.title": "Prędkość obrotu",
|
||||
"create.gui.stressometer.title": "Obciążenie systemu",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "Pozycja docelowa zaznaczona",
|
||||
"create.display_link.success": "Pomyślnie przypisano do pozycji docelowej",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 1355",
|
||||
"_": "Missing Localizations: 1359",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "Tem muitas varetas de extensão colocadas nesse pistão. O limite configurado é: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "O pistão esta faltando algumas varetas de extensão",
|
||||
"create.gui.assembly.exception.not_enough_sails": "A estrutura conectada não possui o número suficiente de blocos tipo vela: %1$s\nUm mínimo de %2$s são requeridos",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Informação do medidor:",
|
||||
"create.gui.speedometer.title": "Velocidade de rotação",
|
||||
"create.gui.stressometer.title": "Estresse do sistema",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "UNLOCALIZED: Targeted position selected",
|
||||
"create.display_link.success": "UNLOCALIZED: Successfully bound to targeted position",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 2220",
|
||||
"_": "Missing Localizations: 2224",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
|
||||
"create.gui.assembly.exception.not_enough_sails": "UNLOCALIZED: Attached structure does not include enough sail-like blocks: %1$s\nA minimum of %2$s are required",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "UNLOCALIZED: Gauge Information:",
|
||||
"create.gui.speedometer.title": "UNLOCALIZED: Rotation Speed",
|
||||
"create.gui.stressometer.title": "UNLOCALIZED: Network Stress",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "UNLOCALIZED: Targeted position selected",
|
||||
"create.display_link.success": "UNLOCALIZED: Successfully bound to targeted position",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 679",
|
||||
"_": "Missing Localizations: 683",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "Sunt prea multe Brațe de extensie atașat la acest Piston.\nMaximul configurat este: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "Pistonului îi lipsesc niște Brațe de extensie",
|
||||
"create.gui.assembly.exception.not_enough_sails": "Structura atașată nu include destule blocuri de pânze: %1$s\nUn minim de %2$s e necesar",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Informație Gabarit:",
|
||||
"create.gui.speedometer.title": "Viteză de Rotație",
|
||||
"create.gui.stressometer.title": "Rețea de Stres",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "UNLOCALIZED: Targeted position selected",
|
||||
"create.display_link.success": "UNLOCALIZED: Successfully bound to targeted position",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 24",
|
||||
"_": "Missing Localizations: 28",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "Слишком много удлинителей прикреплено к этому поршню.\nТекущий максимум: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "Поршню не хватает удлинителей",
|
||||
"create.gui.assembly.exception.not_enough_sails": "Присоединённая структура содержит недостаточно парусоподобных блоков; %1$s из минимум %2$s необходимых",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Калибровочная информация:",
|
||||
"create.gui.speedometer.title": "Скорость вращения",
|
||||
"create.gui.stressometer.title": "Нагрузка на сеть",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "Выбрана целевая позиция",
|
||||
"create.display_link.success": "Успешно привязан к целевой позиции",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 1010",
|
||||
"_": "Missing Localizations: 1014",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "Надто багато Подовжувачів прикріплено до цього поршня.\nПоточний максимум: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "Поршню не вистачає Подовжувачів",
|
||||
"create.gui.assembly.exception.not_enough_sails": "Приєднана структура не містить достатньо парусоподібних блоків: %1$s\nМінімум з %2$s необхідних",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "Калібрувальна інформація:",
|
||||
"create.gui.speedometer.title": "Швидкість обертання",
|
||||
"create.gui.stressometer.title": "Нагрузка на мережу",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "UNLOCALIZED: Targeted position selected",
|
||||
"create.display_link.success": "UNLOCALIZED: Successfully bound to targeted position",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 24",
|
||||
"_": "Missing Localizations: 28",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "活塞加装的活塞杆数量过多\n配置的最大值为:%1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "活塞缺失部分活塞杆",
|
||||
"create.gui.assembly.exception.not_enough_sails": "相接的结构所包含的类风帆方块的数量不足:%1$s\n至少需要 %2$s",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "仪表信息:",
|
||||
"create.gui.speedometer.title": "旋转速度",
|
||||
"create.gui.stressometer.title": "网络应力",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "已选择目标位置",
|
||||
"create.display_link.success": "成功绑定到目标位置",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 32",
|
||||
"_": "Missing Localizations: 36",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1082,6 +1082,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "活塞的活塞桿數量過多\n可放置的數量最大為:%1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "這個活塞遺失了一些活塞桿",
|
||||
"create.gui.assembly.exception.not_enough_sails": "結構中所需的風帆類方塊數量不足:%1$s\n最少需要的數量為:%2$s",
|
||||
"create.gui.assembly.exception.no_contacts": "UNLOCALIZED: Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "UNLOCALIZED: Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "UNLOCALIZED: Another Elevator is already targeting this column of contacts",
|
||||
"create.gui.gauge.info_header": "儀表訊息:",
|
||||
"create.gui.speedometer.title": "旋轉速度",
|
||||
"create.gui.stressometer.title": "網路負荷",
|
||||
@ -1645,6 +1648,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "UNLOCALIZED: All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "UNLOCALIZED: On",
|
||||
"create.contraption.controls.actor_toggle.off": "UNLOCALIZED: Off",
|
||||
"create.contraption.controls.floor_unreachable": "UNLOCALIZED: Unreachable",
|
||||
|
||||
"create.display_link.set": "已選定目標位置",
|
||||
"create.display_link.success": "成功綁定到目標位置",
|
||||
|
@ -1,34 +1,20 @@
|
||||
package com.simibubi.create.content.contraptions.components.actors.controls;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.elevator.ElevatorContraption;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices;
|
||||
import com.simibubi.create.content.logistics.block.redstone.NixieTubeRenderer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.Color;
|
||||
import com.simibubi.create.foundation.utility.Couple;
|
||||
import com.simibubi.create.foundation.utility.DyeHelper;
|
||||
import com.simibubi.create.foundation.utility.IntAttached;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
@ -61,8 +47,6 @@ public class ContraptionControlsMovement implements MovementBehaviour {
|
||||
return ItemHandlerHelper.canItemStacksStack(stack1, stack2);
|
||||
}
|
||||
|
||||
private static Random r = new Random();
|
||||
|
||||
public static ItemStack getFilter(MovementContext ctx) {
|
||||
CompoundTag tileData = ctx.tileData;
|
||||
if (tileData == null)
|
||||
@ -148,6 +132,10 @@ public class ContraptionControlsMovement implements MovementBehaviour {
|
||||
efs.currentLongName = entry.getSecond()
|
||||
.getSecond();
|
||||
efs.targetYEqualsSelection = efs.currentTargetY == ec.clientYTarget;
|
||||
|
||||
if (ec.isTargetUnreachable(efs.currentTargetY))
|
||||
efs.currentLongName = Lang.translate("contraption.controls.floor_unreachable")
|
||||
.string();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -159,73 +147,7 @@ public class ContraptionControlsMovement implements MovementBehaviour {
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void renderInContraption(MovementContext ctx, VirtualRenderWorld renderWorld, ContraptionMatrices matrices,
|
||||
MultiBufferSource buffer) {
|
||||
|
||||
if (!(ctx.temporaryData instanceof ElevatorFloorSelection efs))
|
||||
return;
|
||||
if (!AllBlocks.CONTRAPTION_CONTROLS.has(ctx.state))
|
||||
return;
|
||||
|
||||
Entity cameraEntity = Minecraft.getInstance()
|
||||
.getCameraEntity();
|
||||
float playerDistance = (float) (ctx.position == null || cameraEntity == null ? 0
|
||||
: ctx.position.distanceToSqr(cameraEntity.getEyePosition()));
|
||||
|
||||
float flicker = r.nextFloat();
|
||||
Couple<Integer> couple = DyeHelper.DYE_TABLE.get(efs.targetYEqualsSelection ? DyeColor.WHITE : DyeColor.ORANGE);
|
||||
int brightColor = couple.getFirst();
|
||||
int darkColor = couple.getSecond();
|
||||
int flickeringBrightColor = Color.mixColors(brightColor, darkColor, flicker / 4);
|
||||
Font fontRenderer = Minecraft.getInstance().font;
|
||||
float shadowOffset = .5f;
|
||||
|
||||
String text = efs.currentShortName;
|
||||
String description = efs.currentLongName;
|
||||
PoseStack ms = matrices.getViewProjection();
|
||||
TransformStack msr = TransformStack.cast(ms);
|
||||
|
||||
ms.pushPose();
|
||||
msr.translate(ctx.localPos);
|
||||
msr.rotateCentered(Direction.UP,
|
||||
AngleHelper.rad(AngleHelper.horizontalAngle(ctx.state.getValue(ContraptionControlsBlock.FACING))));
|
||||
ms.translate(0.275f + 0.125f, 1, 0.5f);
|
||||
msr.rotate(Direction.WEST, AngleHelper.rad(67.5f));
|
||||
|
||||
float buttondepth = -.25f;
|
||||
if (ctx.contraption.presentTileEntities.get(ctx.localPos)instanceof ContraptionControlsTileEntity cte)
|
||||
buttondepth += -1 / 24f * cte.button.getValue(AnimationTickHolder.getPartialTicks(renderWorld));
|
||||
|
||||
if (!text.isBlank() && playerDistance < 100) {
|
||||
int actualWidth = fontRenderer.width(text);
|
||||
int width = Math.max(actualWidth, 12);
|
||||
float scale = 1 / (5f * (width - .5f));
|
||||
float heightCentering = (width - 8f) / 2;
|
||||
|
||||
ms.pushPose();
|
||||
ms.translate(0, .15f, buttondepth);
|
||||
ms.scale(scale, -scale, scale);
|
||||
ms.translate(Math.max(0, width - actualWidth) / 2, heightCentering, 0);
|
||||
NixieTubeRenderer.drawInWorldString(ms, buffer, text, flickeringBrightColor);
|
||||
ms.translate(shadowOffset, shadowOffset, -1 / 16f);
|
||||
NixieTubeRenderer.drawInWorldString(ms, buffer, text, Color.mixColors(darkColor, 0, .35f));
|
||||
ms.popPose();
|
||||
}
|
||||
|
||||
if (!description.isBlank() && playerDistance < 20) {
|
||||
int actualWidth = fontRenderer.width(description);
|
||||
int width = Math.max(actualWidth, 55);
|
||||
float scale = 1 / (3f * (width - .5f));
|
||||
float heightCentering = (width - 8f) / 2;
|
||||
|
||||
ms.pushPose();
|
||||
ms.translate(-.0635f, 0.06f, buttondepth);
|
||||
ms.scale(scale, -scale, scale);
|
||||
ms.translate(Math.max(0, width - actualWidth) / 2, heightCentering, 0);
|
||||
NixieTubeRenderer.drawInWorldString(ms, buffer, description, flickeringBrightColor);
|
||||
ms.popPose();
|
||||
}
|
||||
|
||||
ms.popPose();
|
||||
|
||||
ContraptionControlsRenderer.renderInContraption(ctx, renderWorld, matrices, buffer);
|
||||
}
|
||||
|
||||
public static class ElevatorFloorSelection {
|
||||
|
@ -1,23 +1,42 @@
|
||||
package com.simibubi.create.content.contraptions.components.actors.controls;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.components.actors.controls.ContraptionControlsMovement.ElevatorFloorSelection;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices;
|
||||
import com.simibubi.create.content.logistics.block.redstone.NixieTubeRenderer;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.tileEntity.renderer.SmartTileEntityRenderer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.Color;
|
||||
import com.simibubi.create.foundation.utility.Couple;
|
||||
import com.simibubi.create.foundation.utility.DyeHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider.Context;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class ContraptionControlsRenderer extends SmartTileEntityRenderer<ContraptionControlsTileEntity> {
|
||||
|
||||
private static Random r = new Random();
|
||||
|
||||
public ContraptionControlsRenderer(Context context) {
|
||||
super(context);
|
||||
}
|
||||
@ -34,18 +53,88 @@ public class ContraptionControlsRenderer extends SmartTileEntityRenderer<Contrap
|
||||
ms.pushPose();
|
||||
ms.translate(buttonAxis.x, buttonAxis.y, buttonAxis.z);
|
||||
super.renderSafe(tileEntityIn, pt, ms, buffer, light, overlay);
|
||||
|
||||
|
||||
VertexConsumer vc = buffer.getBuffer(RenderType.solid());
|
||||
CachedBufferer.partialFacing(AllBlockPartials.CONTRAPTION_CONTROLS_BUTTON, blockState, facing)
|
||||
.light(light)
|
||||
.renderInto(ms, vc);
|
||||
|
||||
|
||||
ms.popPose();
|
||||
|
||||
int i = (((int) tileEntityIn.indicator.getValue(pt) / 45) % 8) + 8;
|
||||
CachedBufferer.partialFacing(AllBlockPartials.CONTRAPTION_CONTROLS_INDICATOR.get(i % 8), blockState, facing)
|
||||
.light(light)
|
||||
.renderInto(ms, vc);
|
||||
}
|
||||
|
||||
public static void renderInContraption(MovementContext ctx, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {
|
||||
|
||||
if (!(ctx.temporaryData instanceof ElevatorFloorSelection efs))
|
||||
return;
|
||||
if (!AllBlocks.CONTRAPTION_CONTROLS.has(ctx.state))
|
||||
return;
|
||||
|
||||
Entity cameraEntity = Minecraft.getInstance()
|
||||
.getCameraEntity();
|
||||
float playerDistance = (float) (ctx.position == null || cameraEntity == null ? 0
|
||||
: ctx.position.distanceToSqr(cameraEntity.getEyePosition()));
|
||||
|
||||
float flicker = r.nextFloat();
|
||||
Couple<Integer> couple = DyeHelper.DYE_TABLE.get(efs.targetYEqualsSelection ? DyeColor.WHITE : DyeColor.ORANGE);
|
||||
int brightColor = couple.getFirst();
|
||||
int darkColor = couple.getSecond();
|
||||
int flickeringBrightColor = Color.mixColors(brightColor, darkColor, flicker / 4);
|
||||
Font fontRenderer = Minecraft.getInstance().font;
|
||||
float shadowOffset = .5f;
|
||||
|
||||
String text = efs.currentShortName;
|
||||
String description = efs.currentLongName;
|
||||
PoseStack ms = matrices.getViewProjection();
|
||||
TransformStack msr = TransformStack.cast(ms);
|
||||
|
||||
ms.pushPose();
|
||||
msr.translate(ctx.localPos);
|
||||
msr.rotateCentered(Direction.UP,
|
||||
AngleHelper.rad(AngleHelper.horizontalAngle(ctx.state.getValue(ContraptionControlsBlock.FACING))));
|
||||
ms.translate(0.275f + 0.125f, 1, 0.5f);
|
||||
msr.rotate(Direction.WEST, AngleHelper.rad(67.5f));
|
||||
|
||||
float buttondepth = -.25f;
|
||||
if (ctx.contraption.presentTileEntities.get(ctx.localPos)instanceof ContraptionControlsTileEntity cte)
|
||||
buttondepth += -1 / 24f * cte.button.getValue(AnimationTickHolder.getPartialTicks(renderWorld));
|
||||
|
||||
if (!text.isBlank() && playerDistance < 100) {
|
||||
int actualWidth = fontRenderer.width(text);
|
||||
int width = Math.max(actualWidth, 12);
|
||||
float scale = 1 / (5f * (width - .5f));
|
||||
float heightCentering = (width - 8f) / 2;
|
||||
|
||||
ms.pushPose();
|
||||
ms.translate(0, .15f, buttondepth);
|
||||
ms.scale(scale, -scale, scale);
|
||||
ms.translate(Math.max(0, width - actualWidth) / 2, heightCentering, 0);
|
||||
NixieTubeRenderer.drawInWorldString(ms, buffer, text, flickeringBrightColor);
|
||||
ms.translate(shadowOffset, shadowOffset, -1 / 16f);
|
||||
NixieTubeRenderer.drawInWorldString(ms, buffer, text, Color.mixColors(darkColor, 0, .35f));
|
||||
ms.popPose();
|
||||
}
|
||||
|
||||
if (!description.isBlank() && playerDistance < 20) {
|
||||
int actualWidth = fontRenderer.width(description);
|
||||
int width = Math.max(actualWidth, 55);
|
||||
float scale = 1 / (3f * (width - .5f));
|
||||
float heightCentering = (width - 8f) / 2;
|
||||
|
||||
ms.pushPose();
|
||||
ms.translate(-.0635f, 0.06f, buttondepth);
|
||||
ms.scale(scale, -scale, scale);
|
||||
ms.translate(Math.max(0, width - actualWidth) / 2, heightCentering, 0);
|
||||
NixieTubeRenderer.drawInWorldString(ms, buffer, description, flickeringBrightColor);
|
||||
ms.popPose();
|
||||
}
|
||||
|
||||
ms.popPose();
|
||||
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@ import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.components.actors.PortableStorageInterfaceMovement;
|
||||
import com.simibubi.create.content.contraptions.components.actors.SeatBlock;
|
||||
import com.simibubi.create.content.contraptions.components.actors.SeatEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.elevator.ElevatorContraption;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls.ControlsStopControllingPacket;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MountedContraption;
|
||||
@ -129,7 +130,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
|
||||
}
|
||||
|
||||
public boolean supportsTerrainCollision() {
|
||||
return contraption instanceof TranslatingContraption;
|
||||
return contraption instanceof TranslatingContraption && !(contraption instanceof ElevatorContraption);
|
||||
}
|
||||
|
||||
protected void contraptionInitialize() {
|
||||
|
@ -173,6 +173,11 @@ public class ElevatorContactBlock extends WrenchableDirectionalBlock
|
||||
|
||||
@Override
|
||||
public int getSignal(BlockState state, BlockGetter blockAccess, BlockPos pos, Direction side) {
|
||||
if (side == null)
|
||||
return 0;
|
||||
BlockState toState = blockAccess.getBlockState(pos.relative(side.getOpposite()));
|
||||
if (toState.is(this))
|
||||
return 0;
|
||||
return state.getValue(POWERING) ? 15 : 0;
|
||||
}
|
||||
|
||||
@ -209,7 +214,7 @@ public class ElevatorContactBlock extends WrenchableDirectionalBlock
|
||||
if (player instanceof LocalPlayer)
|
||||
ScreenOpener.open(new ElevatorContactScreen(te.getBlockPos(), te.shortName, te.longName));
|
||||
}
|
||||
|
||||
|
||||
public static int getLight(BlockState state) {
|
||||
return state.getValue(POWERING) ? 10 : state.getValue(CALLING) ? 5 : 0;
|
||||
}
|
||||
|
@ -39,6 +39,9 @@ public class ElevatorContraption extends PulleyContraption {
|
||||
private int namesListVersion = -1;
|
||||
public List<IntAttached<Couple<String>>> namesList = ImmutableList.of();
|
||||
public int clientYTarget;
|
||||
|
||||
public int maxContactY;
|
||||
public int minContactY;
|
||||
|
||||
// during assembly only
|
||||
private int contacts;
|
||||
@ -84,7 +87,14 @@ public class ElevatorContraption extends PulleyContraption {
|
||||
ElevatorColumn column = ElevatorColumn.get(level, coords);
|
||||
if (column == null)
|
||||
return null;
|
||||
return column.targetedYLevel;
|
||||
int targetedYLevel = column.targetedYLevel;
|
||||
if (isTargetUnreachable(targetedYLevel))
|
||||
return null;
|
||||
return targetedYLevel;
|
||||
}
|
||||
|
||||
public boolean isTargetUnreachable(int contactY) {
|
||||
return contactY < minContactY || contactY > maxContactY;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -94,9 +104,14 @@ public class ElevatorContraption extends PulleyContraption {
|
||||
if (blocks.size() <= 0)
|
||||
return false;
|
||||
if (contacts == 0)
|
||||
throw new AssemblyException(Lang.translateDirect("elevator_assembly.no_contacts"));
|
||||
throw new AssemblyException(Lang.translateDirect("gui.assembly.exception.no_contacts"));
|
||||
if (contacts > 1)
|
||||
throw new AssemblyException(Lang.translateDirect("train_assembly.too_many_contacts"));
|
||||
throw new AssemblyException(Lang.translateDirect("gui.assembly.exception.too_many_contacts"));
|
||||
|
||||
ElevatorColumn column = ElevatorColumn.get(world, getGlobalColumn());
|
||||
if (column != null && column.isActive())
|
||||
throw new AssemblyException(Lang.translateDirect("gui.assembly.exception.column_conflict"));
|
||||
|
||||
startMoving(world);
|
||||
return true;
|
||||
}
|
||||
@ -138,6 +153,8 @@ public class ElevatorContraption extends PulleyContraption {
|
||||
tag.putBoolean("Arrived", arrived);
|
||||
tag.put("Column", column.write());
|
||||
tag.putInt("ContactY", contactYOffset);
|
||||
tag.putInt("MaxContactY", maxContactY);
|
||||
tag.putInt("MinContactY", minContactY);
|
||||
return tag;
|
||||
}
|
||||
|
||||
@ -146,6 +163,8 @@ public class ElevatorContraption extends PulleyContraption {
|
||||
arrived = nbt.getBoolean("Arrived");
|
||||
column = ColumnCoords.read(nbt.getCompound("Column"));
|
||||
contactYOffset = nbt.getInt("ContactY");
|
||||
maxContactY = nbt.getInt("MaxContactY");
|
||||
minContactY = nbt.getInt("MinContactY");
|
||||
super.readNBT(world, nbt, spawnData);
|
||||
}
|
||||
|
||||
|
@ -74,6 +74,7 @@ public class ElevatorPulleyTileEntity extends PulleyTileEntity {
|
||||
if (level.isClientSide())
|
||||
ec.setClientYTarget(worldPosition.getY() - clientOffsetTarget + ec.contactYOffset - 1);
|
||||
|
||||
waitingForSpeedChange = false;
|
||||
ec.arrived = wasArrived;
|
||||
|
||||
if (!arrived)
|
||||
@ -269,6 +270,8 @@ public class ElevatorPulleyTileEntity extends PulleyTileEntity {
|
||||
contraption.removeBlocksFromWorld(level, BlockPos.ZERO);
|
||||
movedContraption = ControlledContraptionEntity.create(level, this, contraption);
|
||||
movedContraption.setPos(anchor.getX(), anchor.getY(), anchor.getZ());
|
||||
contraption.maxContactY = worldPosition.getY() + contraption.contactYOffset - 1;
|
||||
contraption.minContactY = contraption.maxContactY - maxLength;
|
||||
level.addFreshEntity(movedContraption);
|
||||
forceMove = true;
|
||||
needsContraption = true;
|
||||
|
@ -53,6 +53,8 @@ public class ElevatorTargetFloorPacket extends SimplePacketBase {
|
||||
ElevatorColumn elevatorColumn = ElevatorColumn.get(level, ec.getGlobalColumn());
|
||||
if (!elevatorColumn.contacts.contains(targetY))
|
||||
return;
|
||||
if (ec.isTargetUnreachable(targetY))
|
||||
return;
|
||||
|
||||
for (BlockPos otherPos : elevatorColumn.getContacts()) {
|
||||
BlockState otherState = level.getBlockState(otherPos);
|
||||
|
@ -71,7 +71,6 @@ public abstract class LinearActuatorTileEntity extends KineticTileEntity
|
||||
if (level.isClientSide)
|
||||
clientOffsetDiff *= .75f;
|
||||
|
||||
waitingForSpeedChange = false;//TODO
|
||||
if (waitingForSpeedChange) {
|
||||
if (movedContraption != null) {
|
||||
if (level.isClientSide) {
|
||||
|
@ -220,6 +220,9 @@
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "The Piston is missing some extension Poles",
|
||||
"create.gui.assembly.exception.not_enough_sails": "Attached structure does not include enough sail-like blocks: %1$s\nA minimum of %2$s are required",
|
||||
"create.gui.assembly.exception.no_contacts": "Elevators require a horizontal _Redstone_ _Contact_ attached to the structure",
|
||||
"create.gui.assembly.exception.too_many_contacts": "Cannot attach more than one _Redstone_ _Contact_ to Elevators",
|
||||
"create.gui.assembly.exception.column_conflict": "Another Elevator is already targeting this column of contacts",
|
||||
|
||||
"create.gui.gauge.info_header": "Gauge Information:",
|
||||
"create.gui.speedometer.title": "Rotation Speed",
|
||||
@ -807,6 +810,7 @@
|
||||
"create.contraption.controls.all_actor_toggle": "All Actors: %1$s",
|
||||
"create.contraption.controls.actor_toggle.on": "On",
|
||||
"create.contraption.controls.actor_toggle.off": "Off",
|
||||
"create.contraption.controls.floor_unreachable": "Unreachable",
|
||||
|
||||
"create.display_link.set": "Targeted position selected",
|
||||
"create.display_link.success": "Successfully bound to targeted position",
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Loading…
Reference in New Issue
Block a user