Skip to content

Rewoven cutscene: Actually switch to the scene - #2688

Merged
wjt merged 3 commits into
mainfrom
rewoven2
Aug 20, 2026
Merged

Rewoven cutscene: Actually switch to the scene#2688
wjt merged 3 commits into
mainfrom
rewoven2

Conversation

@manuq

@manuq manuq commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

On loom interaction, change the cutscene to use SceneSwitcher, actually switching from Fray's End back and forth, not displayed in an overlay.

This is part one of #2675

Helps #2675
Fix #2700

@github-actions

Copy link
Copy Markdown

Play this branch at https://play.threadbare.game/branches/endlessm/rewoven2/.

(This launches the game from the start, not directly at the change(s) in this pull request.)

@manuq

manuq commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator Author

Opening a draft for now with step 1 of #2675 which is the easy part. I'm still figuring the best way to build an array of cutscenes to show in actual levels from the QuestProgressUnlockers. Maybe there is no other way than centralizing the dependency information.

var cutscene_path: String = cutscene_paths.pick_random()
var load_error: Error = ResourceLoader.load_threaded_request(cutscene_path)

GameState.global.facts.rewoven_cutscenes = [cutscene_path]

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: this generic fact is placeholder, while I figure out a way to generate an array of cutscenes to display using actual quest unlockers.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm marking this PR as ready for review to do the first part of the ticket (actually switch to the scene existing cutscenes, not new ones in the world). Should I leave this as an Array?

@manuq manuq changed the title Rewoven2 Rewoven cutscene: Actually switch to the scene Aug 12, 2026
@manuq

manuq commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator Author

With the transition effects already applied in the actual world #2699 (done, pending review), I still trying to figure out how to show them in sequence upon loom interaction.. Should the quest be marked completed / incompleted multiple times? Should a "fake" transition happen? I guess I'll need a centralized list of quest dependencies -> scenes + camera + quest unlocker within scene.

manuq added 2 commits August 19, 2026 18:25
Using SceneSwitcher, and then back to Fray's End.

Helps #2675
@manuq
manuq marked this pull request as ready for review August 19, 2026 21:34
@manuq
manuq requested a review from a team as a code owner August 19, 2026 21:34

@wjt wjt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, I think this is much simpler.

I pushed an extra patch to keep the background music playing, same music as Fray's End. I think what we actually want is to change to a different, more triumphant clip, e.g. res://assets/first_party/music/Threadbare Loop_Main_Bridge_02.ogg or res://assets/first_party/music/Threadbare Loop_Main_Cresendo_01.ogg, and then pick up where we left off in res://assets/first_party/music/Threadbare_Bed.ogg.

But... I think that will need some special attention with the future change to have the cutscenes be embedded in real scenes, so I think that can wait for now.

Comment on lines +1 to +17
# SPDX-FileCopyrightText: The Threadbare Authors
# SPDX-License-Identifier: MPL-2.0
extends AnimationPlayer


func _ready() -> void:
animation_finished.connect(_on_animation_finished)


func _on_animation_finished(_anim_name: StringName) -> void:
# Go back home. Usually Fray's End and next to the Eternal Loom:
var home_scene: String = ThreadbareProjectSettings.get_setting(
ThreadbareProjectSettings.HOME_SCENE
)
SceneSwitcher.change_to_file_with_transition(
home_scene, "", Transitions.Effect.FADE, Transitions.Effect.FADE
)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another way to do this would be to put a SceneLink into each cutscene, pointing at HOME, and connect finished to its switch. I think this is fine though, particularly since we'll surely iterate on this to e.g. play multiple cutscenes.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I like that more! I'll open a follow up PR.

@wjt
wjt merged commit d3a93c3 into main Aug 20, 2026
7 checks passed
@wjt
wjt deleted the rewoven2 branch August 20, 2026 10:44
@manuq

manuq commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

Looks good, I think this is much simpler.

I pushed an extra patch to keep the background music playing, same music as Fray's End. I think what we actually want is to change to a different, more triumphant clip, e.g. res://assets/first_party/music/Threadbare Loop_Main_Bridge_02.ogg or res://assets/first_party/music/Threadbare Loop_Main_Cresendo_01.ogg, and then pick up where we left off in res://assets/first_party/music/Threadbare_Bed.ogg.

But... I think that will need some special attention with the future change to have the cutscenes be embedded in real scenes, so I think that can wait for now.

Good point on letting the music continue! Thanks for the patch. Yeah we can revisit how a world being rewoven should sound like in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Player interaction is still enabled during reweaving cutscene

2 participants