Conversation
…ame and re-entry components
|
Play this branch at https://play.threadbare.game/branches/renato-sy/main/. (This launches the game from the start, not directly at the change(s) in this pull request.) |
…ing in area name and re-entry components
|
@renato-sy I see you continue pushing changes, so please let us know when you are ready to receive a review. Thanks! |
|
Okay, I think that's it; the pulls I was doing were just little things Git required to perform the merge. |
…fix parameter spacing, and remove trailing whitespace
…order definitions
|
@renato-sy sorry for the delay. I wil have to review this on Monday. For the moment, please consider that there are other entry points to Fray's End:
I think entering from any of those should display the area name. In fact all those have areas to block the exit, so maybe the entry areas should be next to them.
|
|
Yes, the different-coloured grass on the two sides of the bridge is meant to mark the boundary to the Song Sanctuary, so I agree that the trigger should be crossing that bridge from bottom to top! |
|
Okay, so are we all set, or do I need to make any changes? |
|
Sorry, I have not tested or reviewed the code changes yet! |
wjt
left a comment
There was a problem hiding this comment.
I confess that I haven't read the implementation in detail but I don't think the behaviour is correct. Walking around Fray's End I can trigger the banner repeatedly even though I've never left Fray's End!
Screencast.From.2026-09-09.13-22-21.mp4
I would approach it something like this:
- In the game state, store the current area name, and a set of areas we have seen before
- Place area name triggers (Area2D with name property) in roughly the places you have done
- When a trigger detects the player:
- If the current area name in the game state matches the trigger's name, do nothing
- Else:
- Set the current area name in the game state to the trigger's name
- If the current area has not been seen before:
- Show the "big" notification
- Add it to the set of seen areas
- Else, show the "small" notification.
With this approach, I don't think you need the "directions" property on the triggers.
|
I’ve fixed the issue you mentioned and switched the comments to English; you can check if the |
… in game state and UI components
|
I can review what you mentioned. |
|
Hi, I can do the review. |
|
Hi, I've been looking into this, and I've noticed the following:
|
|
Okay, I'll check right now to see what's going on. |
| polygon = PackedVector2Array(2810, 1772, 2574, 1766, 2573, 1717, 2810, 1716) | ||
|
|
||
| [node name="WestEndPath" parent="." unique_id=681218199 instance=ExtResource("59_6fau3")] | ||
| direcciones_salida = 168 |
There was a problem hiding this comment.
| direcciones_salida = 168 |
There was a problem hiding this comment.
I have a question: what would the problem be here? And in other cases similar to this one?
|
@renato-sy this is promising! Check this video. If I start the game from scratch, skip the tutorial, then go north I see "Frays End" when exiting. I think that's wrong, it should happen when entering. zones.webm |
manuq
left a comment
There was a problem hiding this comment.
@renato-sy thanks for continuing working on this. I have reverted the unintended changes in project.godot for you.
I see Editable Children being used:
This is not ideal because with it, every TextNameArea has to use a polygon shape. Above we can see how those areas can be rectangle shapes, which are more performant. Also "TextNameArea" name is confusing because it is currently inheriting Node2D, not Area2D. Please change it so:
- TextNameArea actually inherits Area2D
- Every instance can add their own collision shapes without enabling Editable Children.
- Use rectangle shapes when possible.
For Fray's End, instead of using multiple TextNameArea, add a single one with multiple collision shapes. See how ExitBlocker does it. You can also use InteractArea as reference.
…nShape2D in various scenes
|
Okay, once it becomes an area and the shapes are placed inside, it works the same way; I've already performed the update. |
manuq
left a comment
There was a problem hiding this comment.
This is almost there! I see that you are using
Using a collision makes sense for the case of the player crossing the bridge, but I'm not so sure about using it for the player spawning. I can see a little square added around each SpawnPoint:
That is prone to errors. For example, the one used after skipping the tutorial is missing the spawn point for one pixel:
So in this video we can see that skipping the tutorial doesn't trigger the zone name. Also it looks like linenville_path.tscn has an empty name:
Grabacion.de.pantalla.desde.2026-09-29.10-18-58.mp4
SpawnPoints have a player_teleported() signal:
Emitted after the player position has been changed.
Level scenes can use this signal to behave differently depending on which SpawnPoint was used (or if no SpawnPoint at all was used).
I think you should use that one instead.
| # SPDX-License-Identifier: MPL-2.0 | ||
| extends Node2D | ||
|
|
||
| @export var zone_name_text: String |
There was a problem hiding this comment.
You are using "zone" here and "area" in other places. I think "zone" should be used consistently everywhere, because "area" could be confused with the Area2D concept of Godot. Confusingly, this implementation uses an Area2D to unlock an area/zone of the game world. So, I think "zone" is better!
| required_quests = Array[ExtResource("38_2vyp4")]([ExtResource("30_hq8vv")]) | ||
| metadata/_custom_type_script = "uid://uaaaiviytliw" | ||
|
|
||
| [node name="TextNameArea" parent="." unique_id=1184526213 instance=ExtResource("40_2kltm")] |
There was a problem hiding this comment.
There is no zone_name_text set in this one. Check the attached video.
There was a problem hiding this comment.
Ideally the name should be animated with an AnimationPlayer. But that can happen after merging this PR.
There was a problem hiding this comment.
Same as the other animation. Ideally the name should be animated with an AnimationPlayer. But that can happen after merging this PR.
|
Hi, I was looking at the spawn point script. and in the conditional if GameState.scene.spawn_point == get_tree().current_scene.get_path_to(self): that triggers the animation It doesn't always work—what do you recommend I do? I’d say it should activate in the |
Sorry, what do you mean that it doesn't always work? I'm not following. |
|
When I enter Song Sanctuary Path, it doesn't trigger in Frays End West either. |








Add an area name banner that appears when the player enters a new area. The banner is shown for a few seconds when moving between areas such as Fray's End and Song Sanctuary.
Resolves #2340