Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pausing before timeline is displayed prevents it from starting entirely even when .process_mode=Node.PROCESS_MODE_ALWAYS is set #2453

Open
adrientremblay opened this issue Oct 24, 2024 · 0 comments

Comments

@adrientremblay
Copy link

The problem

Describe the bug
Setting .process_mode=Node.PROCESS_MODE_ALWAYS for a timeline node and Dialogic singleton, starting timeline, then immediately pausing prevents timeline from starting. I replicated the simple code from This old ticket to try and pause my game but not the dialogic timeline. It doesn't seem to work. The following is my code:

func _ready() -> void:
    Dialogic.process_mode = Node.PROCESS_MODE_ALWAYS
    var dialogicRootNode = Dialogic.start('intro')
    dialogicRootNode.process_mode = Node.PROCESS_MODE_ALWAYS
    Dialogic.signal_event.connect(_on_dialogic_signal)
    Dialogic.timeline_started.connect(_on_timeline_started)
    Dialogic.timeline_ended.connect(_on_timeline_ended)
    
func _on_timeline_started():
    print("Timeline started")
    #get_tree().paused = true

func _on_timeline_ended():
    print("Timeline ended")
    get_tree().paused = false

So _on_timeline_started() executes and pauses the game. Then nothing happens, the dialog doesn't popup.

To Reproduce
Steps to reproduce the behavior:

  1. Set up a basic Dialogic Timeline
  2. Reproduce something similar to my code (see above) to start the timeline while also attempting to pause the game
  3. Observe that the dialog doesn't appear

Expected behavior
The dialog should appear

Screenshots
N/A

System (please complete the following information):

  • OS:Linux
  • Godot Version: 4.3 Stable
  • Dialogic Version: Dialogic 2.0 - Alpha 15

Workaround

HOWEVER a bizzare workaround is waiting like 0.1s in the timeline (sufficient time for the dialog open animation to run I assume), then sending a signal that pauses the game.

func _on_dialogic_signal(action: String):
    if action == "pause":
        get_tree().paused = true

image

What you tried to get the feature working
N/A

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

No branches or pull requests

1 participant