From 24a7c24121b3dd4a22c3767db1d966fbb682bebb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= Date: Wed, 30 Sep 2026 13:46:58 -0300 Subject: [PATCH] Rename townies to Threadlings In all user-facing dialogues. Also add a note on townie.tscn as the root node description that these are called Threadlings in the lore game narrative. Also, document how the scene is made of body parts in the same node description. Update the translation. See https://github.com/endlessm/threadbare/wiki/Threadlings --- locale/es.po | 12 ++++++------ locale/threadbare.pot | 6 +++--- .../character_randomizer/quest.tres | 2 +- .../game_elements/characters/npcs/townie.tscn | 17 +++++++++++++++++ .../quest_000/quest_000_retelling.dialogue | 11 +++++++---- .../quest_001/quest_001_retelling.dialogue | 11 +++++++---- .../quest_002/quest_002_retelling.dialogue | 11 +++++++---- 7 files changed, 48 insertions(+), 22 deletions(-) diff --git a/locale/es.po b/locale/es.po index fa1ad72ac6..0b440da20b 100644 --- a/locale/es.po +++ b/locale/es.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Threadbare\n" -"PO-Revision-Date: 2026-09-21 13:26-0300\n" +"PO-Revision-Date: 2026-09-30 13:39-0300\n" "Last-Translator: Manuel Quiñones \n" "Language-Team: Spanish\n" "Language: es\n" @@ -891,10 +891,10 @@ msgstr "Aleatorización de personajes" #. TRANSLATORS: Quest description #: scenes/dev/level_design/character_randomizer/quest.tres msgid "" -"Learn how to randomly generate townies from a variety of characteristics!" +"Learn how to randomly generate Threadlings from a variety of characteristics!" msgstr "" -"¡Aprende a generar aleatoriamente habitantes de la ciudad a partir de una " -"variedad de características!" +"¡Aprende a generar Threadlings aleatoriamente a partir de una variedad de " +"características!" #: scenes/dev/level_design/doors_and_levers/doors_and_levers.tscn msgid "This lever is timed!" @@ -1319,7 +1319,7 @@ msgid "I have knitted your progress so far, {{player_name}}." msgstr "He tejido tu progreso hasta ahora, {{player_name}}." #: scenes/game_elements/props/collectible_item/collectible_item.tscn -#: scenes/game_elements/props/collectible_item/components/collectible_item.gd:63 +#: scenes/game_elements/props/collectible_item/components/collectible_item.gd:62 #: scenes/game_elements/props/powerup/components/powerup.gd:46 msgid "Collect" msgstr "Juntar" @@ -1356,7 +1356,7 @@ msgstr "Examinar" msgid "Tap" msgstr "Tocar" -#: scenes/game_elements/props/collectible_item/components/collectible_item.gd:63 +#: scenes/game_elements/props/collectible_item/components/collectible_item.gd:62 #: scenes/game_elements/props/powerup/components/powerup.gd:46 msgid "Collect %s" msgstr "Juntar %s" diff --git a/locale/threadbare.pot b/locale/threadbare.pot index f70f14262d..3756fe4646 100644 --- a/locale/threadbare.pot +++ b/locale/threadbare.pot @@ -799,7 +799,7 @@ msgstr "" #. TRANSLATORS: Quest description #: scenes/dev/level_design/character_randomizer/quest.tres -msgid "Learn how to randomly generate townies from a variety of characteristics!" +msgid "Learn how to randomly generate Threadlings from a variety of characteristics!" msgstr "" #: scenes/dev/level_design/doors_and_levers/doors_and_levers.tscn @@ -1140,7 +1140,7 @@ msgid "I have knitted your progress so far, {{player_name}}." msgstr "" #: scenes/game_elements/props/collectible_item/collectible_item.tscn -#: scenes/game_elements/props/collectible_item/components/collectible_item.gd:63 +#: scenes/game_elements/props/collectible_item/components/collectible_item.gd:62 #: scenes/game_elements/props/powerup/components/powerup.gd:46 msgid "Collect" msgstr "" @@ -1173,7 +1173,7 @@ msgstr "" msgid "Tap" msgstr "" -#: scenes/game_elements/props/collectible_item/components/collectible_item.gd:63 +#: scenes/game_elements/props/collectible_item/components/collectible_item.gd:62 #: scenes/game_elements/props/powerup/components/powerup.gd:46 msgid "Collect %s" msgstr "" diff --git a/scenes/dev/level_design/character_randomizer/quest.tres b/scenes/dev/level_design/character_randomizer/quest.tres index 51142ae2aa..e6d8de36e3 100644 --- a/scenes/dev/level_design/character_randomizer/quest.tres +++ b/scenes/dev/level_design/character_randomizer/quest.tres @@ -5,7 +5,7 @@ [resource] script = ExtResource("1_nt00j") title = "Character Randomization" -description = "Learn how to randomly generate townies from a variety of characteristics!" +description = "Learn how to randomly generate Threadlings from a variety of characteristics!" first_scene = "uid://4yh765kft25" threads_to_collect = 0 metadata/_custom_type_script = "uid://dts1hwdy3phin" diff --git a/scenes/game_elements/characters/npcs/townie.tscn b/scenes/game_elements/characters/npcs/townie.tscn index 33b0256fc0..a8868967d0 100644 --- a/scenes/game_elements/characters/npcs/townie.tscn +++ b/scenes/game_elements/characters/npcs/townie.tscn @@ -41,6 +41,23 @@ colors = PackedColorArray(0.9376, 0.824, 0.84959996, 1, 0.922, 0.78, 0.812, 1, 0.7376, 0.624, 0.64959997, 1, 0.08627451, 0.10980392, 0.18039216, 1, 0.7032, 0.5248, 0.33200002, 1, 0.629, 0.406, 0.165, 1, 0.5032, 0.32479998, 0.13200001, 1, 0.08627451, 0.10980392, 0.18039216, 1, 0.5496, 0.4232, 0.59360003, 1, 0.437, 0.279, 0.492, 1, 0.34960002, 0.22320001, 0.39360002, 1, 0.08627451, 0.10980392, 0.18039216, 1) [node name="Townie" type="CharacterBody2D" unique_id=1098678013 node_paths=PackedStringArray("cel_shading_recolor")] +editor_description = "Note: these are called \"Threadlings\" in the game lore narrative. + +Each part is a PNG spritesheet with 3 frames, the way to make the assets is to: + +- Place the second frame 1 pixels below the 1st one. +- Place the third frame 2 pixels below the 1st one. + +This applies to all body parts. Except that for the \"legs\" part, the feet stay in place. + +The way to animate them is to: + +- Play the first frame 10 times +- Play the second frame once +- Play the third frame 8 times +- Play the second frame once + +And loop." collision_layer = 2 collision_mask = 0 script = ExtResource("2_xf1o5") diff --git a/scenes/quests/lore_quests/quest_000/quest_000_retelling.dialogue b/scenes/quests/lore_quests/quest_000/quest_000_retelling.dialogue index 37cd53f02e..b3a0372aa7 100644 --- a/scenes/quests/lore_quests/quest_000/quest_000_retelling.dialogue +++ b/scenes/quests/lore_quests/quest_000/quest_000_retelling.dialogue @@ -1,22 +1,25 @@ # SPDX-FileCopyrightText: The Threadbare Authors # SPDX-License-Identifier: MPL-2.0 ~ start -Townies: Was the journey here difficult? Tell us! +Threadlings: Was the journey here difficult? Tell us! StoryWeaver: Arun guided me all the way here, and... - He told me what happened to his village [#thread=memory] StoryWeaver: The Void left him all alone. I'm glad I found him! if has_memory() do give_memory_upgrade() - Townie: I think I visited his village as a child! + # TODO: Add actual names to the characters. + Threadling: I think I visited his village as a child! - I learnt to grapple [#thread=imagination] StoryWeaver: I threw my thread and pulled myself across the water. StoryWeaver: As I flew through the air, I felt so free! if has_imagination() do give_imagination_upgrade() - Townie: That sounds like a dream come true. + # TODO: Add actual names to the characters. + Threadling: That sounds like a dream come true. - I had to sneak through some caves [#thread=spirit] StoryWeaver: The caves were full of StoryVores. StoryWeaver: I was so glad the KnitWitches were there to help me on my way. if has_spirit() do give_spirit_upgrade() - Townie: You must have hidden yourself in the shadows! + # TODO: Add actual names to the characters. + Threadling: You must have hidden yourself in the shadows! diff --git a/scenes/quests/lore_quests/quest_001/quest_001_retelling.dialogue b/scenes/quests/lore_quests/quest_001/quest_001_retelling.dialogue index 7377bbf033..47f15e6a1a 100644 --- a/scenes/quests/lore_quests/quest_001/quest_001_retelling.dialogue +++ b/scenes/quests/lore_quests/quest_001/quest_001_retelling.dialogue @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: The Threadbare Authors # SPDX-License-Identifier: MPL-2.0 ~ start -Townies: Tell us a story about your last adventure! +Threadlings: Tell us a story about your last adventure! StoryWeaver: I went on a quest with the musician and I... - Learned a forgotten song [#thread=memory] => retell_memory - Slipped past the guards [#thread=imagination] => retell_imagination @@ -11,19 +11,22 @@ StoryWeaver: I went on a quest with the musician and I... StoryWeaver: Let me whistle it to you... if has_memory() do give_memory_upgrade() - Townie: Oh I remember it! That's the lullaby my mother used to sing! + # TODO: Add actual names to the characters. + Threadling: Oh I remember it! That's the lullaby my mother used to sing! => END ~ retell_imagination StoryWeaver: Like I was a lizard, fast as a hare. if has_imagination() do give_imagination_upgrade() - Townie: I start imagining it now! + # TODO: Add actual names to the characters. + Threadling: I start imagining it now! => END ~ retell_spirit StoryWeaver: Because they had stolen the ink! if has_spirit() do give_spirit_upgrade() - Townie: Ha! I feel brave now! + # TODO: Add actual names to the characters. + Threadling: Ha! I feel brave now! => END diff --git a/scenes/quests/lore_quests/quest_002/quest_002_retelling.dialogue b/scenes/quests/lore_quests/quest_002/quest_002_retelling.dialogue index ca2b616dfc..6c7b9450b3 100644 --- a/scenes/quests/lore_quests/quest_002/quest_002_retelling.dialogue +++ b/scenes/quests/lore_quests/quest_002/quest_002_retelling.dialogue @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: The Threadbare Authors # SPDX-License-Identifier: MPL-2.0 ~ start -Townies: Tell us a story about your last adventure! +Threadlings: Tell us a story about your last adventure! StoryWeaver: I went on a quest with the monk and I... - Had to run! [#thread=spirit] => retell_spirit - Found inventive ways of moving [#thread=imagination] => retell_imagination @@ -11,19 +11,22 @@ StoryWeaver: I went on a quest with the monk and I... StoryWeaver: We saved the story from The Void... if has_memory() do give_memory_upgrade() - Townie: Oh I remember now, the monk told it to me! + # TODO: Add actual names to the characters. + Threadling: Oh I remember now, the monk told it to me! => END ~ retell_imagination StoryWeaver: Using a grappling hook, pins and needles. if has_imagination() do give_imagination_upgrade() - Townie: That really feeds my imagination! + # TODO: Add actual names to the characters. + Threadling: That really feeds my imagination! => END ~ retell_spirit StoryWeaver: The Void was eating the floor behind me, but I managed to escape! if has_spirit() do give_spirit_upgrade() - Townie: Whoa. I feel brave now! + # TODO: Add actual names to the characters. + Threadling: Whoa. I feel brave now! => END