v0.3.0 beta1
Pre-release
Pre-release
dogboydog
released this
15 Dec 02:28
·
10 commits
to development-v3
since this release
Welcoming testing of this updated version of the plugin.
⚠ 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:
- https://www.yarnspinner.dev/blog/yarn-spinner-3-beta-1
- The samples have been updated to demonstrate these features, including enums, node groups, line groups, smart variables, shadow lines, generated variable storage code,
<<detour>>
and<<once>>
.
[YarnCommand
] and[YarnFunction]
have been updated to generate a class calledYarnSpinnerGodot.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 ofAsyncDialogueViewBased
. Updated example views are provided. - GDScript nodes that have methods that are the
snake_case
version of methods onAsyncDialogueViewBase
can be added directly inYarnProject.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 useawait
statements in your GDScript view methods.AddCommandHandlerCallable
onDialogueRunner
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.
-
Join the Yarn Spinner Discord (
#godot
channel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.