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

v0.3.0 - Yarn language v3 features #75

Open
wants to merge 31 commits into
base: v3_beta
Choose a base branch
from
Open

Conversation

dogboydog
Copy link
Collaborator

@dogboydog dogboydog commented Dec 14, 2024

Welcoming testing of this updated version of the plugin.

Release https://github.com/YarnSpinnerTool/YarnSpinner-Godot/releases/tag/v0.3.0-beta

⚠ Although no destructive bugs have been discovered in this beta, I highly recommend backing up / committing to version control any existing projects before testing this upgrade.

Let me know any feedback here or in the discord.

Changes

  • Updated YarnSpinner DLLs to support version 3 of the Yarn Language, which supports many new features, similar to the feature set described for the Unity plugin here:
  • [YarnCommand] and [YarnFunction] have been updated to generate a class called YarnSpinnerGodot.Generated.ActionRegistration. This class will register all of your commands and functions without relying on reflection, which was the cause of some performance hiccups when starting a scene with a DialogueRunner in v0.2.* of the plugin
  • To enable new features for an existing .yarnproject, edit the .yarnproject file to change the projectFileVersion to 3.
  • If you keep your .yarnproject at projectFileVersion 2, you will have to re-compile the scripts in your yarn project to work with this version of the plugin.
  • Update views to be async Task based, like the Unity plugin version 3.
  • The existing DialogueViewBase interface is deprecated in favor of AsyncDialogueViewBased. Updated example views are provided.
  • GDScript nodes that have methods that are the snake_case version of methods on AsyncDialogueViewBase can be added directly in YarnProject.dialogueViews
    without requiring GDScriptViewAdapter. Supported methods: on_dialogue_start_async() -> void, on_dialogue_complete_async() -> void, run_line_async(line: Dictionary) -> void, run_options_async(options: Array, on_option_selected: Callable) -> void. You can still use await statements in your GDScript view methods. AddCommandHandlerCallable on DialogueRunner has been re-tested to ensure that commands can still be registered from GDScript. Also, the GDScriptIntegration sample has been updated with these changes.
  • ⚠ Breaking change: LineProviderBehaviour has changed to require different methods and fields. If you have a custom line provider, please see the updated TextLineProvider as an * example of how to implement the updated class. Also notice that you must now set the yarn project on TextLineProvider instances, either via script or in the inspector.
  • ⚠ Breaking change: Use DialogueRunner.VariableStorage, not DialogueRunner.variableStorage, nor DialogueRunner.SetDialogueViews (removed) to get/set the variable storage associated with a DialogueRunner. Previously there were two properties with different case that were both publicly accessible.
  • ⚠ Breaking change: MarkupPalette renamed ColourMarkers to FormatMarkers, supporting new functionality like bold, underline, italics, as a way to demonstrate the updated formatting
  • ⚠ Breaking change: the field DialogueRunner.verboseLogging has been removed.
  • New functionality on YarnProject - optionally generate a C# variable storage class which has getters and setters for each variable declared in your yarn scripts. You can control the class that the generated file inherits from, the namespace it will be in, and the name of the class and file.

👩‍🚒 Getting Help

There are several places you can go to get help with Yarn Spinner.

…t into development-v3

# Conflicts:
#	addons/YarnSpinner-Godot/Runtime/DialogueRunner.cs
…not determine type of expression' compilation errors
…alNovel sample , also demonstrates non-static YarnCommand
@dogboydog dogboydog changed the title v0.3.0 - Yarn language 3 features v0.3.0 - Yarn language v3 features Dec 14, 2024
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.

1 participant