From 37a71aed284af2f6098822a5a18b609a1d67dc87 Mon Sep 17 00:00:00 2001 From: zelophed Date: Thu, 23 Jun 2022 13:40:34 +0200 Subject: [PATCH] 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 --- src/generated/resources/.cache/cache | 32 ++-- .../resources/assets/create/lang/en_us.json | 10 + .../assets/create/lang/unfinished/de_de.json | 12 +- .../assets/create/lang/unfinished/es_cl.json | 12 +- .../assets/create/lang/unfinished/es_es.json | 12 +- .../assets/create/lang/unfinished/fr_fr.json | 12 +- .../assets/create/lang/unfinished/it_it.json | 12 +- .../assets/create/lang/unfinished/ja_jp.json | 12 +- .../assets/create/lang/unfinished/ko_kr.json | 12 +- .../assets/create/lang/unfinished/nl_nl.json | 12 +- .../assets/create/lang/unfinished/pl_pl.json | 12 +- .../assets/create/lang/unfinished/pt_br.json | 12 +- .../assets/create/lang/unfinished/pt_pt.json | 12 +- .../assets/create/lang/unfinished/ro_ro.json | 12 +- .../assets/create/lang/unfinished/ru_ru.json | 12 +- .../assets/create/lang/unfinished/zh_cn.json | 12 +- .../assets/create/lang/unfinished/zh_tw.json | 12 +- .../block/display/DisplayLinkScreen.java | 147 ++++++++------- .../create/foundation/ponder/PonderTag.java | 56 +++--- .../ponder/content/DisplayScenes.java | 174 ++++++++++++++++++ .../ponder/content/PonderIndex.java | 33 ++++ .../ponder/content/RedstoneScenes.java | 2 +- .../ponder/ui/NavigatableSimiScreen.java | 6 +- .../assets/create/ponder/display/link.nbt | Bin 0 -> 1349 bytes .../assets/create/ponder/nixie_tube.nbt | Bin 467 -> 464 bytes 25 files changed, 515 insertions(+), 125 deletions(-) create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/content/DisplayScenes.java create mode 100644 src/main/resources/assets/create/ponder/display/link.nbt diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 3064da771..bb38f11ff 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -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 diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 068ab4cfd..6ea752f8f 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -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", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index ed1bf3e1d..251c773a6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_cl.json b/src/generated/resources/assets/create/lang/unfinished/es_cl.json index cd03de2c7..4c61d10aa 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_cl.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_cl.json @@ -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", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 15ac12019..df93e4150 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index bf4a116b6..d7abe1c6e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 579b8399f..3ec25b78a 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index ee340c188..67f8f923c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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": "また、ブレイズはスポーンブロックから直接捕獲することもできます", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 47b268bd4..4feac9fdb 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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": "또는 스포너에서도 블레이즈를 가둘 수 있습니다.", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index bf30e5d58..b0834ebfc 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 774addfee..10f2519a7 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -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", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 05a027e2c..9d88c8d28 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json index 32cefe02c..ed663821b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json @@ -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", diff --git a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json index 081bdb480..76fbd1e68 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json +++ b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json @@ -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", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index ab6b499d6..2cbea2af6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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": "Также Всполохи могут быть захвачены из спавнера напрямую", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 09cc87f07..6783df952 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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": "或者,可以直接从烈焰人刷怪笼中收集烈焰人", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 46a1ff80a..5a6d351d3 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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": "或者,也可以透過右擊烈焰人刷怪籠來填充啟動烈焰人燃燒室", diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java index 36b652908..e9c21649a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java @@ -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 sources; DisplayTarget target; @@ -56,6 +62,8 @@ public class DisplayLinkScreen extends AbstractSimiScreen { Label sourceTypeLabel; ScrollInput targetLineSelector; Label targetLineLabel; + AbstractSimiWidget sourceWidget; + AbstractSimiWidget targetWidget; Couple 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 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) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java index ade6f4a79..8f5e77b1e 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java @@ -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); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/DisplayScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/DisplayScenes.java new file mode 100644 index 000000000..4ea6c8800 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/DisplayScenes.java @@ -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 signSection = scene.world.showIndependentSection(util.select.position(signPos), Direction.DOWN); + scene.world.moveSection(signSection, util.vector.of(0, 1, 0), 0); + + ElementLink 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 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 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); + + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java index ec709396d..e4d32bb27 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java @@ -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); + } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java index cfb3cc38b..7e7bb5c1f 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java @@ -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) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java index 1a87e35a2..a653cadda 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java @@ -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); diff --git a/src/main/resources/assets/create/ponder/display/link.nbt b/src/main/resources/assets/create/ponder/display/link.nbt new file mode 100644 index 0000000000000000000000000000000000000000..01db75a31d9b19199af678ec184987c992f0265b GIT binary patch literal 1349 zcmV-L1-kkliwFP!00000|Ls|AZ`(EyKG~8jzoai)hhzh`2L3i+2$HVAx_sHv1nr6y zS+Qh&*)SNiMB9RCQK0BKZc(8BWc%2kvF(@a7wj)=CtH*iS(24B$Q)n_63Wc+;oWn0 zB#*8G)Ij&0m$VE3!EZ&iH880w9qCXXf~N+R4&&Cquj7ZU8k9Zmt3lCI2E&&`(r`qY zj24s8GGs~xaLNU6^c);5Mdu`rlFi~@Wb$~{3-GLD@_1GQHt&(g5SgqtyQ6O(1jQ5MTXi#}A&3l3E?Ahg6Qa7#Lvg6OUMqoP6^p0M?IikqMO6 zq4dZGsQwPxZ}$wS97#d_*%D(y$+6)BOHc&c^_`)|XnWweR6152CHY8LxKL@&QT8^r zFR;Cb?T^@gl*OwNvqKN^4*j$w)Dl5vEH~mG zd_p7OEJkF^9uMD2IJ*Xohm4OMw|7iWBw`x-oN)n0hY@RlAA|0@(0J97_|n>KwO)sv zpQm-+N$cE6bOvf)8=@7KAYF+8(sMI3jt6fw;;Zt&VUmg&(Ape`I6@2bAGv5&8JaV( zy8n<#O}G zBr8T}M?5#{2|NDGumguY5A{Wx%!66@ZsT#~h+5L&?(~47Ackgi%~EM z^ZKMigLo}}OD9l0pj|Rz5(=<$Er%Uc>cyf`JMXB}=|t@^;1@vrCbpOwe|8UJfnhW}5N#ebreB_@PB(*{3{>)zy4ne{|oW2_-9+MCq&4}CjJ#%o>^%uQuar_*w8G>QKY-u}2SxBv8!PWeu9&JH5W#V^|SUJ7RGyV)5>sId^++W878T(XfLd zjCIdL;zc8y(a6pDz^~(3bJOp0fprkI+cO9s)ZnjPwXhMSwfj>X=I75^*y;KV&BUId z-rbtHV#{(|8_VG?L)K$Xew*jy8&3%v(Z@mQEX9bnw=Zc8QC7xF(=&$UMaAL5x}pN_ zJo{<^_Uac@A1<}SNJ*fg_2DJfxk)=x>)fP2R@ja&m)UW;UavvbBaBK(gT!cJVjPko zg^l?g#<-7J-nO`lYTzIxaVvI*I98M{O{=g!vTn zNOBMKAm2@>bhyM7IQpMoj#KHP``sSs0Wba^iwFP!000000JW9RZrmUc#>WP4yqim-RBCTM^aXm(wLM2w6Xl9n?|2uL z1q(>r^uhXk8ItuMxoE|q9SK?BZ+^fx7;ga9z`gp73;<%QsFm@#h8j&!L7|5jYglcy zZGQRq;IIr1&)^JE zX82rY_dvQOOn&G&ksLO6mH3>NORFijUiyXOIJ1UTX{tIcvJ=( zC);q-A5=imSVIe?q(Sk1Qg~x~@p>WChBx1x?a;-$nxw645UN&N>uOk0PnkV%ls=50 zd1 zGkutL?@px^y>gR1pC>_Q$=#jMNFv%K|Y}K${IQmf8YgKTKOUd G2LJ#O>(_Yz literal 467 zcmV;^0WAI>iwFP!000000JW9DZrmUchQ|hPyxU8wRBCTI8ZX3i-yI4pz1GdM$( z89tX8KA+;S3=YrWj9Zc6Gt2P#6o+MScm`((p5Zgk@c9&nWpH?svjS$;fx7O8E(V`& zcG7I|LG97So*GKEf%C>8Nv@@l+HQr$7kc~mRO6D4k6$?s@%blie6R-ZgF~|oyNUhf zz&7etp$N}wOc+(n3}^p@T>dvQOOn&0A0K|6*tj{TBF$MRHHLukE?v~Xf5<(;_q{UM zIN65ley0M8#u}O^6%C57lfoO@i;oML7QDK1wnG>1YLd3HL8w}7t*c={nKE18D18_~ z$pbOtoHeL)EUj9pJx-{~SVwLStc02K8GVe+4edouKG}*f7 zDz3(nzD>(_hrJcOa+5!olc2L???z~)--K;N*r9llTH{;%NN#12kLbLzhK|H