Down the Checklist, Part IV

- added a ponder scene for Display Links
- added ponder tags for Display Sources and Targets
- fixed Nixie Tubes orientation in their ponder scenes
This commit is contained in:
zelophed 2022-06-23 13:40:34 +02:00
parent d11fd6dc48
commit 37a71aed28
25 changed files with 515 additions and 125 deletions

View file

@ -559,22 +559,22 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
f85edc574ee6de0de7693ffb031266643db6724a assets/create/lang/en_ud.json
2fd1ef9375af6d068257f31cfc5e708f122d8360 assets/create/lang/en_us.json
11c5a3201a3c15c342c9f68d33ca460d2f1fde68 assets/create/lang/unfinished/de_de.json
ba66d36b4a9a67a8f0e826aa9c3fb3a31d12959f assets/create/lang/unfinished/es_cl.json
704a322cc044ca04c719a1a08b2321ded2489ef6 assets/create/lang/unfinished/es_es.json
6a3d4587e6b0e245462630acad6940f3349346bd assets/create/lang/unfinished/fr_fr.json
9348d8d8a4d74e550f225764bd76a24293cf95ef assets/create/lang/unfinished/it_it.json
fc4faa5359f05cce4b940635029def93a0a3f1d5 assets/create/lang/unfinished/ja_jp.json
832b57bcb0bf7fc9e81c52e32f7042d7c94bc968 assets/create/lang/unfinished/ko_kr.json
5ac1987c570fd90bf2ef57cbfe12bb4379c9c779 assets/create/lang/unfinished/nl_nl.json
fd78059dc58f805710e83fa5446ef084fc06734c assets/create/lang/unfinished/pl_pl.json
22965c458689766a8d23e1bd5f957b4e2f4eb9b2 assets/create/lang/unfinished/pt_br.json
06e4ab83c9da087ea64e55706a471cd2ba99c11e assets/create/lang/unfinished/pt_pt.json
4d3f2a22c68b35bd8a20ce8d2b7f411bc388db84 assets/create/lang/unfinished/ro_ro.json
fb2c526a98c7f0af30b4f62acad302ea2ea82580 assets/create/lang/unfinished/ru_ru.json
e0fbf7132c91fbce3dd42559518f43ef965c45e8 assets/create/lang/unfinished/zh_cn.json
b37921c2b8d6320d17f6070ac5a426f3fd014784 assets/create/lang/unfinished/zh_tw.json
1dae1310d9826990ebe3c5a2c0229e6ca00b05ff assets/create/lang/en_us.json
552e2a1c69a39abb3d8fdad6dc77c436dac0d095 assets/create/lang/unfinished/de_de.json
354b4dfe3d6a5d384cd43b79068586eef8c8a407 assets/create/lang/unfinished/es_cl.json
5a5a451b9262be0aad5832dd9cfefa624a5635eb assets/create/lang/unfinished/es_es.json
863c0e0781de73acd633e7cf72b6cffda1260dbb assets/create/lang/unfinished/fr_fr.json
78ce0b9469a619661c91204f2596e79285cd4b40 assets/create/lang/unfinished/it_it.json
34e93498cfda555a0dd74624e8d9737491e51539 assets/create/lang/unfinished/ja_jp.json
b06a53e0870498c0818447d36fad5d81746866a3 assets/create/lang/unfinished/ko_kr.json
0946dda62ad0f1011b4ef3aeb362860808d45bcc assets/create/lang/unfinished/nl_nl.json
9c82d73d6ca083814a68a4ca59c8730df3cf085c assets/create/lang/unfinished/pl_pl.json
cbd0c1a891756ff4a535490a058cde99b4feb288 assets/create/lang/unfinished/pt_br.json
f0e79ed9788b5c8ef27466ca7a2bc6d47bb44318 assets/create/lang/unfinished/pt_pt.json
8271678d9098f7ba2118cbb292375cc0ee9ec49b assets/create/lang/unfinished/ro_ro.json
d2a4438332b12f48b7490a1438ce771544dab816 assets/create/lang/unfinished/ru_ru.json
5ea50f171848efb2d8883b42ba1a59ad33551aa4 assets/create/lang/unfinished/zh_cn.json
3587c3011498fe0c8661bd96779d9b024f497651 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

View file

@ -2091,8 +2091,12 @@
"create.ponder.tag.contraption_actor.description": "Components which expose special behaviour when attached to a moving contraption",
"create.ponder.tag.creative": "Creative Mode",
"create.ponder.tag.creative.description": "Components not usually available for Survival Mode",
"create.ponder.tag.display_sources": "Sources for Display Links",
"create.ponder.tag.display_sources.description": "Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "Item Transportation",
"create.ponder.tag.logistics.description": "Components which help moving items around",
"create.ponder.tag.display_targets": "Targets for Display Links",
"create.ponder.tag.display_targets.description": "Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "Controlling signals using the Analog Lever",
"create.ponder.analog_lever.text_1": "Analog Levers make for a compact and precise source of redstone power",
@ -2311,6 +2315,12 @@
"create.ponder.depot.text_3": "Just like Mechanical Belts, it can provide items to processing",
"create.ponder.depot.text_4": "...as well as provide Items to Mechanical Arms",
"create.ponder.display_link.header": "Setting up Display Links",
"create.ponder.display_link.text_1": "Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "Using Empty Blaze Burners",
"create.ponder.empty_blaze_burner.text_1": "Right-click a Blaze with the empty burner to capture it",
"create.ponder.empty_blaze_burner.text_2": "Alternatively, Blazes can be collected from their Spawners directly",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1194",
"_": "Missing Localizations: 1203",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
"create.ponder.tag.creative": "UNLOCALIZED: Creative Mode",
"create.ponder.tag.creative.description": "UNLOCALIZED: Components not usually available for Survival Mode",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever",
"create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 844",
"_": "Missing Localizations: 853",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando se adjuntan a una contrapción en movimiento",
"create.ponder.tag.creative": "Modo Creativo",
"create.ponder.tag.creative.description": "Componentes no usualmente disponibles en Modo Supervivencia",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "Transportación de Objetos",
"create.ponder.tag.logistics.description": "Componentes que ayudan a mover objetos",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "Controlando señales usando la Palanca Análoga",
"create.ponder.analog_lever.text_1": "Las Palancas Análogas son una fuente compacta y precisa de redstone",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "Al igual que las Cintas Mecánicas, pueden proporcionar objetos para procesar.",
"create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "Usando Quemadores Blaze vacíos",
"create.ponder.empty_blaze_burner.text_1": "Haz Click-Derecho en un Blaze con el quemador vacío para capturarlo",
"create.ponder.empty_blaze_burner.text_2": "Alternativamente, los Blazes se pueden conseguir directamente del Spawner",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 508",
"_": "Missing Localizations: 517",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "Componentes que tienen un comportamiento especial cuando están unidos a un artefacto animado",
"create.ponder.tag.creative": "Modo creativo",
"create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "Transporte de objetos",
"create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica",
"create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "Al igual que en las cintas mecánicas, pueden procesarse objetos",
"create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos",
"create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo",
"create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1996",
"_": "Missing Localizations: 2005",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
"create.ponder.tag.creative": "UNLOCALIZED: Creative Mode",
"create.ponder.tag.creative.description": "UNLOCALIZED: Components not usually available for Survival Mode",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever",
"create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1767",
"_": "Missing Localizations: 1776",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
"create.ponder.tag.creative": "UNLOCALIZED: Creative Mode",
"create.ponder.tag.creative.description": "UNLOCALIZED: Components not usually available for Survival Mode",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever",
"create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 510",
"_": "Missing Localizations: 519",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "ブロックを動かす機械に取り付けたときに特別な動作をする機械です",
"create.ponder.tag.creative": "クリエイティブ限定",
"create.ponder.tag.creative.description": "サバイバルモードでは通常入手できない機械です",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "輸送機械",
"create.ponder.tag.logistics.description": "アイテムの運搬を補助する機械です",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "アナログレバーによる信号制御",
"create.ponder.analog_lever.text_1": "アナログレバーはコンパクトに正確なレッドストーン動力を出力できます。",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "メカニカルベルトのように、載せたアイテムを加工できます",
"create.ponder.depot.text_4": "また、メカニカルアームにアイテムを供給することもできます",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "空のブレイズバーナーの使い方",
"create.ponder.empty_blaze_burner.text_1": "空のバーナーでブレイズを右クリックすると捕獲できます",
"create.ponder.empty_blaze_burner.text_2": "また、ブレイズはスポーンブロックから直接捕獲することもできます",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 510",
"_": "Missing Localizations: 519",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "움직이는 구조물에 부착되어 특정 기능을 수행하는 장치입니다.",
"create.ponder.tag.creative": "크리에이티브 모드",
"create.ponder.tag.creative.description": "서바이벌 모드에서는 얻을 수 없는 부품입니다.",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "아이템 수송",
"create.ponder.tag.logistics.description": "아이템을 옮기는데 도움을 줄 부품입니다.",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "아날로그 레버를 이용해 신호 조절하기",
"create.ponder.analog_lever.text_1": "아날로그 레버는 정확하고 간편하게 레드스톤 신호의 세기를 조절합니다.",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "벨트처럼, 놓여진 아이템은 가공될 수 있습니다.",
"create.ponder.depot.text_4": "그리고 기계 팔의 목표가 될 수 있습니다.",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "빈 블레이즈 버너 사용하기",
"create.ponder.empty_blaze_burner.text_1": "블레이즈를 우클릭하여 버너에 가둡니다.",
"create.ponder.empty_blaze_burner.text_2": "또는 스포너에서도 블레이즈를 가둘 수 있습니다.",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 2344",
"_": "Missing Localizations: 2353",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
"create.ponder.tag.creative": "UNLOCALIZED: Creative Mode",
"create.ponder.tag.creative.description": "UNLOCALIZED: Components not usually available for Survival Mode",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever",
"create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 883",
"_": "Missing Localizations: 892",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "Komponenty, które posiadają specjalne zachowanie będąc podłączonymi do maszyny",
"create.ponder.tag.creative": "Tryb kreatywny",
"create.ponder.tag.creative.description": "Komponenty niedostępne na trybie przetrwania",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "Transport przedmiotów",
"create.ponder.tag.logistics.description": "Komponenty, które pomagają w transporcie przedmiotów",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "Kontrola sygnałów z wykorzystaniem dźwigni analogowej",
"create.ponder.analog_lever.text_1": "Dźwignie analogowe są kompaktowymi i dokładnymi źródłami sygnału Redstone",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "Podobnie jak taśmociągi, składnica może dostarczać przedmioty do obróbki...",
"create.ponder.depot.text_4": "…jak i również dla mechanicznych ramion",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "Używanie pustych płomiennych palników",
"create.ponder.empty_blaze_burner.text_1": "Kliknij PPM na Płomyka trzymają w ręce pusty palnik, aby uwięzić go w środku",
"create.ponder.empty_blaze_burner.text_2": "Ewentualnie, Płomyk może być zabrany prosto z jego Spawnera",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1377",
"_": "Missing Localizations: 1386",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
"create.ponder.tag.creative": "UNLOCALIZED: Creative Mode",
"create.ponder.tag.creative.description": "UNLOCALIZED: Components not usually available for Survival Mode",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever",
"create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 2053",
"_": "Missing Localizations: 2062",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
"create.ponder.tag.creative": "UNLOCALIZED: Creative Mode",
"create.ponder.tag.creative.description": "UNLOCALIZED: Components not usually available for Survival Mode",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever",
"create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 511",
"_": "Missing Localizations: 520",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "Componente ce expun comportament special când sunt atașate la o invenție mișcătoare",
"create.ponder.tag.creative": "Modul Creativ",
"create.ponder.tag.creative.description": "Componente care nu sunt valabile deobicei în Modul Supraviețuire",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "Transport de Obiecte",
"create.ponder.tag.logistics.description": "Componente ce ajută la mișcarea obiectelor în jur",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "Controlarea semnalelor folosind Maneta Analogică",
"create.ponder.analog_lever.text_1": "Manetele Analogice fac pentru o sursă de redstone compactă și precisă",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "La fel ca Benzile Mecanice, poate oferi obiecte către procesare",
"create.ponder.depot.text_4": "...precum și oferirea Obiectelor Brațelor Mecanice",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "Folosirea Arzătorilor De Dogorală Goi",
"create.ponder.empty_blaze_burner.text_1": "Click-Dreapta pe Dogorală cu arzătorul gol pentru a-l captura",
"create.ponder.empty_blaze_burner.text_2": "Alternativ, Dogorelile pot fi conectate de la Spanwerele lor direct",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 888",
"_": "Missing Localizations: 897",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "Компоненты, проявляющие особое поведение когда прикреплены к двигающейся штуковине",
"create.ponder.tag.creative": "Творческий режим",
"create.ponder.tag.creative.description": "Компоненты обычно недоступные в Режиме Выживания",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "Транспортировка предметов",
"create.ponder.tag.logistics.description": "Компоненты, помогающие перемещать предметы",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "Управлении сигналами используя Аналоговый рычаг",
"create.ponder.analog_lever.text_1": "Аналоговый рычаг создан как компактный и точный источник Редстоун сигнала",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "Так же, как Механические ремни, оно может предоставлять предметы для обработки",
"create.ponder.depot.text_4": "...а также поставлять предметы Механическим рукам",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "Использовании Пустых горелок всполохов",
"create.ponder.empty_blaze_burner.text_1": "ПКМ по Всполоху с пустой горелкой, чтобы захватить его",
"create.ponder.empty_blaze_burner.text_2": "Также Всполохи могут быть захвачены из спавнера напрямую",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 508",
"_": "Missing Localizations: 517",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "能在移动的装置上执行特殊功能的组件",
"create.ponder.tag.creative": "创造模式",
"create.ponder.tag.creative.description": "总有些东西是生存模式得不到的",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "物品运输",
"create.ponder.tag.logistics.description": "该组件可以协助物品运输",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "使用模拟拉杆控制红石信号",
"create.ponder.analog_lever.text_1": "模拟拉杆可提供紧凑而精确的红石信号源",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "与传送带一样,它也可以将其内的物品转送到其他设备中进行加工……",
"create.ponder.depot.text_4": "……同时物品也可以被机械手存取",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "使用空的烈焰人燃烧室",
"create.ponder.empty_blaze_burner.text_1": "手持空的烈焰人燃烧室右击烈焰人来抓取烈焰人",
"create.ponder.empty_blaze_burner.text_2": "或者,可以直接从烈焰人刷怪笼中收集烈焰人",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 902",
"_": "Missing Localizations: 911",
"_": "->------------------------] Game Elements [------------------------<-",
@ -2092,8 +2092,12 @@
"create.ponder.tag.contraption_actor.description": "附加到移動裝置上時表現出特殊行為的方塊",
"create.ponder.tag.creative": "創造模式",
"create.ponder.tag.creative.description": "該裝置無法在生存模式中獲得",
"create.ponder.tag.display_sources": "UNLOCALIZED: Sources for Display Links",
"create.ponder.tag.display_sources.description": "UNLOCALIZED: Components or Blocks which offer some data that can be read with a Display Link",
"create.ponder.tag.logistics": "傳輸物品",
"create.ponder.tag.logistics.description": "該裝置用於物品的傳輸",
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
"create.ponder.analog_lever.header": "使用可調式拉桿來控制訊號",
"create.ponder.analog_lever.text_1": "可調式拉桿是一種小巧而輕準的紅石能源",
@ -2312,6 +2316,12 @@
"create.ponder.depot.text_3": "與傳送帶一樣,它也可以將其內的物品轉送到其他設備中進行加工...",
"create.ponder.depot.text_4": "...同時物品也可以被機械手存取",
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
"create.ponder.display_link.text_3": "UNLOCALIZED: ... then select the source by placing the Link against it",
"create.ponder.display_link.text_4": "UNLOCALIZED: Replacing Targets or Sources at a later time is possible as well",
"create.ponder.empty_blaze_burner.header": "使用空的烈焰人燃燒室",
"create.ponder.empty_blaze_burner.text_1": "手持空的烈焰人燃燒室右擊烈焰人來抓取烈焰人",
"create.ponder.empty_blaze_burner.text_2": "或者,也可以透過右擊烈焰人刷怪籠來填充啟動烈焰人燃燒室",

View file

@ -15,12 +15,19 @@ import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.gui.AllIcons;
import com.simibubi.create.foundation.gui.ModularGuiLine;
import com.simibubi.create.foundation.gui.ModularGuiLineBuilder;
import com.simibubi.create.foundation.gui.ScreenOpener;
import com.simibubi.create.foundation.gui.element.GuiGameElement;
import com.simibubi.create.foundation.gui.widget.AbstractSimiWidget;
import com.simibubi.create.foundation.gui.widget.ElementWidget;
import com.simibubi.create.foundation.gui.widget.IconButton;
import com.simibubi.create.foundation.gui.widget.Label;
import com.simibubi.create.foundation.gui.widget.ScrollInput;
import com.simibubi.create.foundation.gui.widget.SelectionScrollInput;
import com.simibubi.create.foundation.networking.AllPackets;
import com.simibubi.create.foundation.ponder.PonderTag;
import com.simibubi.create.foundation.ponder.ui.NavigatableSimiScreen;
import com.simibubi.create.foundation.ponder.ui.PonderButton;
import com.simibubi.create.foundation.ponder.ui.PonderTagScreen;
import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.foundation.utility.Lang;
@ -37,6 +44,7 @@ import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
public class DisplayLinkScreen extends AbstractSimiScreen {
private static final ItemStack FALLBACK = new ItemStack(Items.BARRIER);
@ -47,8 +55,6 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
BlockState sourceState;
BlockState targetState;
ItemStack sourceIcon = FALLBACK;
ItemStack targetIcon = FALLBACK;
List<DisplaySource> sources;
DisplayTarget target;
@ -56,6 +62,8 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
Label sourceTypeLabel;
ScrollInput targetLineSelector;
Label targetLineLabel;
AbstractSimiWidget sourceWidget;
AbstractSimiWidget targetWidget;
Couple<ModularGuiLine> configWidgets;
@ -76,8 +84,8 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
int x = guiLeft;
int y = guiTop;
if (sourceState == null || targetState == null)
initGathererOptions();
initGathererOptions();
confirmButton = new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM);
confirmButton.withCallback(this::onClose);
@ -88,8 +96,8 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
public void tick() {
super.tick();
if (sourceState != null && sourceState.getBlock() != minecraft.level.getBlockState(te.getSourcePosition())
.getBlock()
|| targetState != null && targetState.getBlock() != minecraft.level.getBlockState(te.getTargetPosition())
.getBlock()
|| targetState != null && targetState.getBlock() != minecraft.level.getBlockState(te.getTargetPosition())
.getBlock())
initGathererOptions();
}
@ -106,9 +114,9 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
Block targetBlock = targetState.getBlock();
asItem = sourceBlock.asItem();
sourceIcon = asItem == null || asItem == Items.AIR ? FALLBACK : new ItemStack(asItem);
ItemStack sourceIcon = asItem == null || asItem == Items.AIR ? FALLBACK : new ItemStack(asItem);
asItem = targetBlock.asItem();
targetIcon = asItem == null || asItem == Items.AIR ? FALLBACK : new ItemStack(asItem);
ItemStack targetIcon = asItem == null || asItem == Items.AIR ? FALLBACK : new ItemStack(asItem);
sources = AllDisplayBehaviours.sourcesOf(minecraft.level, te.getSourcePosition());
target = AllDisplayBehaviours.targetOf(minecraft.level, te.getTargetPosition());
@ -117,6 +125,8 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
removeWidget(targetLineLabel);
removeWidget(sourceTypeSelector);
removeWidget(sourceTypeLabel);
removeWidget(sourceWidget);
removeWidget(targetWidget);
configWidgets.forEach(s -> s.forEach(this::removeWidget));
@ -133,32 +143,66 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
if (rows > 1) {
targetLineSelector = new ScrollInput(x + 61, y + 105, 135, 16).withRange(0, rows)
.titled(Lang.translate("display_link.display_on"))
.inverted()
.calling(i -> targetLineLabel.text = target.getLineOptionText(i))
.setState(startIndex);
.titled(Lang.translate("display_link.display_on"))
.inverted()
.calling(i -> targetLineLabel.text = target.getLineOptionText(i))
.setState(startIndex);
addRenderableWidget(targetLineSelector);
}
addRenderableWidget(targetLineLabel);
}
sourceWidget = new ElementWidget(x + 37, y + 26)
.showingElement(GuiGameElement.of(sourceIcon))
.withCallback((mX, mY) -> {
ScreenOpener.open(new PonderTagScreen(PonderTag.DISPLAY_SOURCES));
});
sourceWidget.getToolTip().addAll(List.of(
Lang.translate("display_link.reading_from"),
sourceState.getBlock().getName()
.withStyle(s -> s.withColor(sources.isEmpty() ? 0xF68989 : 0xF2C16D)),
Lang.translate("display_link.attached_side"),
Lang.translate("display_link.view_compatible")
.withStyle(ChatFormatting.GRAY)
));
addRenderableWidget(sourceWidget);
targetWidget = new ElementWidget(x + 37, y + 105)
.showingElement(GuiGameElement.of(targetIcon))
.withCallback((mX, mY) -> {
ScreenOpener.open(new PonderTagScreen(PonderTag.DISPLAY_TARGETS));
});
targetWidget.getToolTip().addAll(List.of(
Lang.translate("display_link.writing_to"),
targetState.getBlock().getName()
.withStyle(s -> s.withColor(target == null ? 0xF68989 : 0xF2C16D)),
Lang.translate("display_link.targeted_location"),
Lang.translate("display_link.view_compatible")
.withStyle(ChatFormatting.GRAY)
));
addRenderableWidget(targetWidget);
if (!sources.isEmpty()) {
int startIndex = Math.max(sources.indexOf(te.activeSource), 0);
sourceTypeLabel = new Label(x + 65, y + 30, TextComponent.EMPTY).withShadow();
sourceTypeLabel.text = sources.get(startIndex)
.getName();
.getName();
if (sources.size() > 1) {
List<Component> options = sources.stream()
.map(DisplaySource::getName)
.toList();
.map(DisplaySource::getName)
.toList();
sourceTypeSelector = new SelectionScrollInput(x + 61, y + 26, 135, 16).forOptions(options)
.writingTo(sourceTypeLabel)
.titled(Lang.translate("display_link.information_type"))
.calling(this::initGathererSourceSubOptions)
.setState(startIndex);
.writingTo(sourceTypeLabel)
.titled(Lang.translate("display_link.information_type"))
.calling(this::initGathererSourceSubOptions)
.setState(startIndex);
sourceTypeSelector.onChanged();
addRenderableWidget(sourceTypeSelector);
} else
@ -175,8 +219,8 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
if (targetLineSelector != null)
targetLineSelector
.titled(source instanceof SingleLineDisplaySource ? Lang.translate("display_link.display_on")
: Lang.translate("display_link.display_on_multiline"));
.titled(source instanceof SingleLineDisplaySource ? Lang.translate("display_link.display_on")
: Lang.translate("display_link.display_on_multiline"));
configWidgets.forEach(s -> {
s.forEach(this::removeWidget);
@ -185,9 +229,9 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
DisplayLinkContext context = new DisplayLinkContext(minecraft.level, te);
configWidgets.forEachWithContext((s, first) -> source.initConfigurationWidgets(context,
new ModularGuiLineBuilder(font, s, guiLeft + 60, guiTop + (first ? 51 : 72)), first));
new ModularGuiLineBuilder(font, s, guiLeft + 60, guiTop + (first ? 51 : 72)), first));
configWidgets
.forEach(s -> s.loadValues(te.getSourceConfig(), this::addRenderableWidget, this::addRenderableOnly));
.forEach(s -> s.loadValues(te.getSourceConfig(), this::addRenderableWidget, this::addRenderableOnly));
}
@Override
@ -197,12 +241,12 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
if (!sources.isEmpty()) {
sourceData.putString("Id",
sources.get(sourceTypeSelector == null ? 0 : sourceTypeSelector.getState()).id.toString());
sources.get(sourceTypeSelector == null ? 0 : sourceTypeSelector.getState()).id.toString());
configWidgets.forEach(s -> s.saveValues(sourceData));
}
AllPackets.channel.sendToServer(new DisplayLinkConfigurationPacket(te.getBlockPos(), sourceData,
targetLineSelector == null ? 0 : targetLineSelector.getState()));
targetLineSelector == null ? 0 : targetLineSelector.getState()));
}
@Override
@ -219,63 +263,28 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
if (target == null)
font.drawShadow(ms, Lang.translate("display_link.no_target"), x + 65, y + 109, 0xD3D3D3);
if (!sourceIcon.isEmpty())
minecraft.getItemRenderer()
.renderGuiItem(sourceIcon, x + 37, y + 26);
if (!targetIcon.isEmpty())
minecraft.getItemRenderer()
.renderGuiItem(targetIcon, x + 37, y + 105);
ms.pushPose();
ms.translate(0, guiTop + 46, 0);
configWidgets.getFirst()
.renderWidgetBG(guiLeft, ms);
.renderWidgetBG(guiLeft, ms);
ms.translate(0, 21, 0);
configWidgets.getSecond()
.renderWidgetBG(guiLeft, ms);
.renderWidgetBG(guiLeft, ms);
ms.popPose();
ms.pushPose();
TransformStack.cast(ms)
.pushPose()
.translate(x + background.width + 4, y + background.height + 4, 100)
.scale(40)
.rotateX(-22)
.rotateY(63);
.pushPose()
.translate(x + background.width + 4, y + background.height + 4, 100)
.scale(40)
.rotateX(-22)
.rotateY(63);
GuiGameElement.of(te.getBlockState()
.setValue(DisplayLinkBlock.FACING, Direction.UP))
.render(ms);
.setValue(DisplayLinkBlock.FACING, Direction.UP))
.render(ms);
ms.popPose();
}
@Override
protected void renderWindowForeground(PoseStack ms, int mouseX, int mouseY, float partialTicks) {
super.renderWindowForeground(ms, mouseX, mouseY, partialTicks);
int mX = mouseX - guiLeft;
int mY = mouseY - guiTop;
if (sourceState != null && mX >= 33 && mX < 53 && mY >= 24 && mY < 44) {
renderComponentTooltip(ms,
ImmutableList.of(Lang.translate("display_link.reading_from"), sourceState.getBlock()
.getName()
.withStyle(s -> s.withColor(sources.isEmpty() ? 0xF68989 : 0xF2C16D)),
Lang.translate("display_link.attached_side"), Lang.translate("display_link.view_compatible")
.withStyle(ChatFormatting.GRAY)),
mouseX, mouseY);
}
if (targetState != null && mX >= 33 && mX < 53 && mY >= 102 && mY < 122) {
renderComponentTooltip(ms,
ImmutableList.of(Lang.translate("display_link.writing_to"), targetState.getBlock()
.getName()
.withStyle(s -> s.withColor(target == null ? 0xF68989 : 0xF2C16D)),
Lang.translate("display_link.targeted_location"), Lang.translate("display_link.view_compatible")
.withStyle(ChatFormatting.GRAY)),
mouseX, mouseY);
}
}
@Override
protected void removeWidget(GuiEventListener p_169412_) {
if (p_169412_ != null)

View file

@ -22,58 +22,74 @@ public class PonderTag implements ScreenElement {
public static final PonderTag
KINETIC_RELAYS = create("kinetic_relays").item(AllBlocks.COGWHEEL.get(), true, false)
.defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere")
.addToIndex(),
.defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere")
.addToIndex(),
KINETIC_SOURCES = create("kinetic_sources").item(AllBlocks.WATER_WHEEL.get(), true, false)
KINETIC_SOURCES = create("kinetic_sources").item(AllBlocks.WATER_WHEEL.get(), true, false)
.defaultLang("Kinetic Sources", "Components which generate Rotational Force")
.addToIndex(),
KINETIC_APPLIANCES = create("kinetic_appliances").item(AllBlocks.MECHANICAL_PRESS.get(), true, false)
KINETIC_APPLIANCES = create("kinetic_appliances").item(AllBlocks.MECHANICAL_PRESS.get(), true, false)
.defaultLang("Kinetic Appliances", "Components which make use of Rotational Force")
.addToIndex(),
FLUIDS = create("fluids").item(AllBlocks.FLUID_PIPE.get(), true, false)
FLUIDS = create("fluids").item(AllBlocks.FLUID_PIPE.get(), true, false)
.defaultLang("Fluid Manipulators", "Components which help relaying and making use of Fluids")
.addToIndex(),
LOGISTICS = create("logistics").item(Blocks.CHEST, true, false)
LOGISTICS = create("logistics").item(Blocks.CHEST, true, false)
.defaultLang("Item Transportation", "Components which help moving items around")
.addToIndex(),
REDSTONE = create("redstone").item(Items.REDSTONE, true, false)
REDSTONE = create("redstone").item(Items.REDSTONE, true, false)
.defaultLang("Logic Components", "Components which help with redstone engineering")
.addToIndex(),
DECORATION = create("decoration").item(Items.ROSE_BUSH, true, false)
DECORATION = create("decoration").item(Items.ROSE_BUSH, true, false)
.defaultLang("Aesthetics", "Components used mostly for decorative purposes"),
CREATIVE = create("creative").item(AllBlocks.CREATIVE_CRATE.get(), true, false)
CREATIVE = create("creative").item(AllBlocks.CREATIVE_CRATE.get(), true, false)
.defaultLang("Creative Mode", "Components not usually available for Survival Mode")
.addToIndex(),
MOVEMENT_ANCHOR = create("movement_anchor").item(AllBlocks.MECHANICAL_PISTON.get(), true, false)
MOVEMENT_ANCHOR = create("movement_anchor").item(AllBlocks.MECHANICAL_PISTON.get(), true, false)
.defaultLang("Movement Anchors",
"Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways")
"Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways")
.addToIndex(),
CONTRAPTION_ACTOR = create("contraption_actor").item(AllBlocks.MECHANICAL_HARVESTER.get(), true, false)
CONTRAPTION_ACTOR = create("contraption_actor").item(AllBlocks.MECHANICAL_HARVESTER.get(), true, false)
.defaultLang("Contraption Actors",
"Components which expose special behaviour when attached to a moving contraption")
"Components which expose special behaviour when attached to a moving contraption")
.addToIndex(),
CONTRAPTION_ASSEMBLY = create("contraption_assembly").item(AllItems.SUPER_GLUE.get(), true, false)
CONTRAPTION_ASSEMBLY = create("contraption_assembly").item(AllItems.SUPER_GLUE.get(), true, false)
.defaultLang("Block Attachment Utility",
"Tools and Components used to assemble structures moved as an animated Contraption")
"Tools and Components used to assemble structures moved as an animated Contraption")
.addToIndex(),
SAILS = create("windmill_sails").item(AllBlocks.WINDMILL_BEARING.get(), true, true)
SAILS = create("windmill_sails").item(AllBlocks.WINDMILL_BEARING.get(), true, true)
.defaultLang("Sails for Windmill Bearings",
"Blocks that count towards the strength of a Windmill Contraption when assembled. Each of these have equal efficiency in doing so."),
"Blocks that count towards the strength of a Windmill Contraption when assembled. Each of these have equal efficiency in doing so."),
ARM_TARGETS = create("arm_targets").item(AllBlocks.MECHANICAL_ARM.get())
ARM_TARGETS = create("arm_targets").item(AllBlocks.MECHANICAL_ARM.get())
.defaultLang("Targets for Mechanical Arms",
"Components which can be selected as inputs or outputs to the Mechanical Arm");
"Components which can be selected as inputs or outputs to the Mechanical Arm"),
DISPLAY_SOURCES = create("display_sources")
.item(AllBlocks.CONTENT_OBSERVER.get(), true, false)
.item(AllBlocks.DISPLAY_LINK.get(), false, true)
.defaultLang(
"Sources for Display Links",
"Components or Blocks which offer some data that can be read with a Display Link"
),
DISPLAY_TARGETS = create("display_targets")
.item(AllBlocks.DISPLAY_BOARD.get(), true, false)
.item(AllBlocks.DISPLAY_LINK.get(), false, true)
.defaultLang(
"Targets for Display Links",
"Components or Blocks which can process and display the data received from a Display Link"
);
public static class Highlight {
public static final PonderTag ALL = create("_all");
@ -150,8 +166,6 @@ public class PonderTag implements ScreenElement {
if (icon != null) {
RenderSystem.setShaderTexture(0, icon);
ms.scale(0.25f, 0.25f, 1);
// x and y offset, blit z offset, tex x and y, tex width and height, entire tex
// sheet width and height
GuiComponent.blit(ms, 0, 0, 0, 0, 0, 64, 64, 64, 64);
} else if (!itemIcon.isEmpty()) {
ms.translate(-4, -4, 0);

View file

@ -0,0 +1,174 @@
package com.simibubi.create.foundation.ponder.content;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.logistics.block.display.DisplayLinkTileEntity;
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity;
import com.simibubi.create.foundation.ponder.ElementLink;
import com.simibubi.create.foundation.ponder.PonderPalette;
import com.simibubi.create.foundation.ponder.SceneBuilder;
import com.simibubi.create.foundation.ponder.SceneBuildingUtil;
import com.simibubi.create.foundation.ponder.Selection;
import com.simibubi.create.foundation.ponder.element.InputWindowElement;
import com.simibubi.create.foundation.ponder.element.ParrotElement;
import com.simibubi.create.foundation.ponder.element.WorldSectionElement;
import com.simibubi.create.foundation.utility.Pointing;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.SignBlockEntity;
import net.minecraft.world.phys.AABB;
public class DisplayScenes {
public static void link(SceneBuilder scene, SceneBuildingUtil util) {
scene.title("display_link", "Setting up Display Links");
scene.configureBasePlate(0, 0, 5);
scene.showBasePlate();
ItemStack linkItem = AllBlocks.DISPLAY_LINK.asStack();
BlockPos invalidLinkPos = util.grid.at(2, 1, 2);
Selection invalidLinkSel = util.select.position(invalidLinkPos);
BlockPos linkPos = util.grid.at(2, 1, 1);
Selection linkSel = util.select.position(linkPos);
BlockPos signPos = util.grid.at(2, 1, 4);
BlockPos signTarget = util.grid.at(2, 2, 4);
scene.idle(20);
scene.world.showSection(invalidLinkSel, Direction.DOWN);
scene.idle(10);
scene.effects.indicateRedstone(invalidLinkPos);
scene.overlay.showSelectionWithText(invalidLinkSel, 60)
.attachKeyFrame()
.colored(PonderPalette.RED)
.text("Display Links should be assigned a target before they are placed")
.pointAt(util.vector.blockSurface(invalidLinkPos, Direction.WEST))
.placeNearTarget();
scene.idle(60);
ElementLink<WorldSectionElement> signSection = scene.world.showIndependentSection(util.select.position(signPos), Direction.DOWN);
scene.world.moveSection(signSection, util.vector.of(0, 1, 0), 0);
ElementLink<WorldSectionElement> concreteSection = scene.world.showIndependentSection(util.select.position(signPos.below()), Direction.UP);
scene.world.moveSection(concreteSection, util.vector.of(0, 1, 0), 0);
scene.world.hideSection(invalidLinkSel, Direction.UP);
scene.idle(20);
scene.overlay.showControls(
new InputWindowElement(util.vector.blockSurface(signTarget, Direction.UP), Pointing.DOWN)
.rightClick().withItem(linkItem),
50
);
scene.idle(5);
AABB signBounds = Block.box(4.0D, 0.0D, 4.0D, 12.0D, 16.0D, 12.0D).bounds();
scene.overlay.chaseBoundingBoxOutline(PonderPalette.OUTPUT, new Object(), signBounds.move(signTarget), 60);
scene.overlay.showText(70)
.colored(PonderPalette.OUTPUT)
.text("First select a target by Right- Clicking while holding the Link ...")
.pointAt(util.vector.topOf(signTarget))
.placeNearTarget();
scene.idle(50);
BlockPos observerPos = util.grid.at(3, 1, 1);
scene.world.showSection(util.select.fromTo(observerPos, observerPos.relative(Direction.SOUTH)), Direction.DOWN);
scene.idle(10);
scene.overlay.showControls(
new InputWindowElement(util.vector.blockSurface(observerPos, Direction.WEST), Pointing.RIGHT)
.rightClick().withItem(linkItem),
50
);
scene.overlay.showText(60)
.attachKeyFrame()
.colored(PonderPalette.INPUT)
.text("... then select the source by placing the Link against it")
.pointAt(util.vector.blockSurface(observerPos, Direction.UP))
.placeNearTarget();
scene.idle(55);
scene.world.showSection(linkSel, Direction.EAST);
scene.idle(20);
scene.world.modifyTileEntity(linkPos, DisplayLinkTileEntity.class, linkTile ->
linkTile.glow.setValue(2));
scene.world.modifyTileEntity(signPos, SignBlockEntity.class, signTile ->
signTile.setMessage(1, new TextComponent("42 Cinder Flour")));
scene.idle(60);
scene.world.hideIndependentSection(signSection, Direction.UP);
scene.world.hideIndependentSection(concreteSection, Direction.DOWN);
scene.idle(25);
Selection boards = util.select.fromTo(4, 1, 4, 1, 2, 4)
.substract(util.select.position(signPos));
Selection cogs = util.select.position(5, 2, 4)
.add(util.select.position(5, 2, 5))
.add(util.select.position(5, 1, 5))
.add(util.select.position(4, 0, 5));
scene.world.showSection(boards, Direction.DOWN);
scene.world.showSection(cogs, Direction.DOWN);
scene.overlay.showText(70)
.attachKeyFrame()
.colored(PonderPalette.WHITE)
.text("Replacing Targets or Sources at a later time is possible as well")
.placeNearTarget();
scene.idle(7);
scene.world.modifyTileEntity(linkPos, DisplayLinkTileEntity.class, linkTile ->
linkTile.glow.setValue(2));
scene.idle(43);
scene.world.hideSection(util.select.fromTo(observerPos, observerPos.relative(Direction.SOUTH)), Direction.SOUTH);
scene.idle(15);
ElementLink<WorldSectionElement> seatSection = scene.world.showIndependentSection(util.select.position(3, 1, 0), Direction.SOUTH);
scene.world.moveSection(seatSection, util.vector.of(0, 0, 1), 0);
scene.world.modifyTileEntity(util.grid.at(4, 2, 4), FlapDisplayTileEntity.class, displayTile -> {
displayTile.applyTextManually(0, "");
displayTile.applyTextManually(1, "");
});
scene.idle(30);
scene.special.createBirb(util.vector.of(3.5, 1.4, 1.5), ParrotElement.DancePose::new);
scene.idle(10);
//scene.world.modifyTileEntity(util.grid.at(4, 2, 4), FlapDisplayTileEntity.class, displayTile -> {
// displayTile.applyTextManually(0, "Sitting here:");
// displayTile.applyTextManually(1, "Party Parrot");
//});
ElementLink<WorldSectionElement> replacementBoards = scene.world.showIndependentSectionImmediately(util.select.fromTo(4, 2, 3, 1, 2, 3));
scene.world.moveSection(replacementBoards, util.vector.of(0, 0, 1), 0);
scene.world.modifyTileEntity(linkPos, DisplayLinkTileEntity.class, linkTile ->
linkTile.glow.setValue(2));
scene.idle(10);
}
}

View file

@ -300,6 +300,10 @@ public class PonderIndex {
.addStoryBoard("train_track/placement", TrackScenes::placement)
.addStoryBoard("train_track/portal", TrackScenes::portal);
//Display Link
HELPER.forComponents(AllBlocks.DISPLAY_LINK)
.addStoryBoard("display/link", DisplayScenes::link);
// Debug scenes, can be found in game via the Brass Hand
if (REGISTER_DEBUG_SCENES)
DebugScenes.registerAll();
@ -466,6 +470,35 @@ public class PonderIndex {
.add(Blocks.BELL)
.add(Blocks.DISPENSER)
.add(Blocks.DROPPER);
PonderRegistry.TAGS.forTag(PonderTag.DISPLAY_SOURCES)
.add(AllBlocks.SEATS.get(DyeColor.WHITE))
.add(AllBlocks.ORANGE_NIXIE_TUBE)
.add(AllBlocks.STOCKPILE_SWITCH)
.add(AllBlocks.CONTENT_OBSERVER)
.add(AllBlocks.ANDESITE_TUNNEL)
.add(AllBlocks.TRACK_OBSERVER)
.add(AllBlocks.TRACK_STATION)
.add(AllBlocks.DISPLAY_LINK)
.add(AllBlocks.BRASS_TUNNEL)
.add(AllBlocks.CUCKOO_CLOCK)
.add(AllBlocks.STRESSOMETER)
.add(AllBlocks.SPEEDOMETER)
.add(AllBlocks.FLUID_TANK)
.add(AllItems.BELT_CONNECTOR)
.add(Blocks.ENCHANTING_TABLE)
.add(Blocks.RESPAWN_ANCHOR)
.add(Blocks.COMMAND_BLOCK)
.add(Blocks.TARGET)
;
PonderRegistry.TAGS.forTag(PonderTag.DISPLAY_TARGETS)
.add(AllBlocks.ORANGE_NIXIE_TUBE)
.add(AllBlocks.DISPLAY_BOARD)
.add(AllBlocks.DISPLAY_LINK)
.add(Blocks.OAK_SIGN)
.add(Blocks.LECTERN);
}
}

View file

@ -661,7 +661,7 @@ public class RedstoneScenes {
scene.idle(7);
scene.world.setBlocks(util.select.fromTo(1, 1, 3, 3, 1, 3), AllBlocks.NIXIE_TUBES.get(DyeColor.BLUE)
.getDefaultState()
.setValue(NixieTubeBlock.FACING, Direction.NORTH), false);
.setValue(NixieTubeBlock.FACING, Direction.WEST), false);
scene.idle(10);
scene.overlay.showText(80)
.colored(PonderPalette.BLUE)

View file

@ -156,9 +156,9 @@ public abstract class NavigatableSimiScreen extends AbstractSimiScreen {
Window window = minecraft.getWindow();
int dpx = window.getGuiScaledWidth() / 2;
int dpy = window.getGuiScaledHeight() / 2;
if (lastScreen instanceof AbstractSimiScreen) {
dpx = ((NavigatableSimiScreen) lastScreen).depthPointX;
dpy = ((NavigatableSimiScreen) lastScreen).depthPointY;
if (lastScreen instanceof NavigatableSimiScreen navigableScreen) {
dpx = navigableScreen.depthPointX;
dpy = navigableScreen.depthPointY;
}
ms.translate(dpx, dpy, 0);