Releases: viniciusgerevini/godot-clyde-dialogue
v5.0.0 (Godot 4)
Breaking changes
Changed external variables to be requested in runtime instead of set beforehand.
This means now there are two new methods to define the callbacks (on_external_variable_fetch
, on_external_variable_update
) and
the external variable methods set_external_variable
and get_external_variable
were removed.
Added
- External variable fetching/updating callbacks
- Editor player now supports external variables
Thanks
Thanks @ThePat02 for the discussion that led to the external variable proxy implementation.
v5.0.0 (Godot 3)
Breaking changes
ResourceFormatLoader.load
contract changed in Godot 3.6. In order to keep up with the latest LTS this will break compatibility with older versions.- Changed external variables to be requested in runtime instead of set beforehand.
This means now there are two new methods to define the callbacks (on_external_variable_fetch
,on_external_variable_update
) and
the external variable methodsset_external_variable
andget_external_variable
were removed.
Added
- External variable fetching/updating callbacks
Changed
- Changed
ResourceFormatLoader.load
override to match godot 3.6
Thanks
- Thanks @Riordan-DC for the headsup about the breaking change way before the release.
v4.0.0 (Godot 4)
Breaking changes
- Dialogues now return an object when ended. This impacts how you determined if the dialogue has ended.
- Changed identifier for blocks when persisting so changing block order does not impact already saved files. This will impact variations and single use options on all existing save files.
- Variation standalone
shuffle
option does simple random and has no guarantee every item will be returned.
Added
- Assignment initializer operator
?=
. It only assigns if variable was not set before. has_block
method helper to check if block exists before starting dialogue. (@HexagonNico)- Editor main panel. Edit Clyde files directly in Godot.
- Dialogue player. Execute and debug dialogues directly in Godot.
- Id generator tool. Add random ids to lines without ids.
- CSV exporter tool. Generate a translation CSV for the dialogue.
- Resource loader and saver to simplify file usage.
- External variable support. You can set variables that are not included in the persistence object.
- Implemented helpers: Dialogue config, singleton and fixed and floating dialogue bubbles.
Changed
- Increment assigment now have default values. i.e. If you run
set a += 1
whena
is not set, it will be set to 1. Before it would break because value was null.- As
+
is also used for strings, thisset a += "abc"
also works.
- As
- Return end object (
{ "type": "end" }
) instead of null on dialogue end. - Make variation
shuffle
option be really random. There is no guarantee all items will be executed. - The importer now saves a ClydeDialogueFile resource instead of PackedDataContainer.
- Improve dialogue examples.
load_dialogue
does not accept null as block. It's an optional string.
Fixed
- Use correct
fmod
fora %=
operations. - Fixed crash when exiting editor started via command line (@Rubonnek).
- Changing block order in file does not impact persisted options and variations anymore.
Thanks
- Thanks to @Rubonnek for finding and fixing the exit crash.
- Thanks to @ThePat02 for updating the doc comments to be Godot 4's doc comments.
- Thanks to @HexagonNico for implementing the
has_block
helper.
v4.0.0 (Godot 3)
Breaking changes
- Dialogues now return an object when ended. This impacts how you determined if the dialogue has ended.
- Changed identifier for blocks when persisting so changing block order does not impact already saved files. This will impact variations and single use options on all existing save files.
- Variation standalone
shuffle
option does simple random and has no guarantee every item will be returned.
Added
- Assignment initializer operator
?=
. It only assigns if variable was not set before. - Resource loader and saver to simplify file usage.
- External variable support. You can set variables that are not included in the persistence object.
- Implemented helpers: Dialogue config, singleton and fixed dialogue bubble.
Changed
- Increment assigment now have default values. i.e. If you run
set a += 1
whena
is not set, it will be set to 1. Before it would break because value was null.- As
+
is also used for strings, thisset a += "abc"
also works.
- As
- Return end object (
{ "type": "end" }
) instead of null on dialogue end. - Changing block order in file does not impact persisted options and variations anymore.
- Make variation
shuffle
option be really random. There is no guarantee all items will be executed. - The importer now saves a ClydeDialogueFile resource instead of PackedDataContainer.
- Improve dialogue examples.
Fixed
- Use correct
fmod
fora %=
operations. - variable interpolation with value "0" was not being printed, as godot interprets it as falsy
- Changing block order in file does not impact persisted options and variations anymore.
v3.2.1 Godot 4
Fixed
- Added an override to the importer priority as it seems this was breaking the importer in some machines.
Thanks
Thanks to @RogerRandomDev for reporting and fixing this issue.
v3.2.0 Godot 4
First Godot 4 release.
v3.2.0
Added
- Implemented support for id suffixes.
dialogue line $id&variable_1&variable_2
. - Id Suffix Lookup Separator project setttings.
Project > Project Settings > General > Dialogue > Id Suffix Lookup Separator
.
Fixed
- Remove prop check warning in Output console
v3.1.0
Added
- Dialogue source folder project setttings.
Project > Project Settings > Dialogue > Source Folder
.
When only the file name is provided, the interpreter will look for files in the folder set ondialogue/source_folder
.
Fixed
- Standalone
{set a}
would pass parser, but break on interpreter. Now, this is equivalent to{ set a = true }
. - Fix inconsistencies with logic blocks in tab indented files.
v3.0.0
(2021-11-22)
Breaking Changes
- Options won´t print first line as before.
- Brackets (
[]
) used for display-only options are not supported anymore. - To reproduce previous behaviour, options should contain the new display-option symbol (
=
)
Here is a sample on how to fix your dialogues for this new version:
Old way:
+ This will be displayed
* This will be displayed
> This will be displayed
+ [This won't be displayed]
some text...
* [This won't be displayed]
some text...
> [This won't be displayed]
some text...
New way:
+= This will be displayed
*= This will be displayed
>= This will be displayed
+ This won't be displayed
some text...
* This won't be displayed
some text...
> This won't be displayed
some text...
Changed
- Changed options default behaviour. (check breaking changes)
Thanks
Thanks to @jcandres and @verillious for suggestions and input.
v2.0.1
(2021-11-04)
Fixed
- Used Options and Variations were not loaded correctly after loading previously stringified internal memory.
There is a known related issue with variables that will be fixed in the next major version. Variable names should be string,
but currently their type is not validated. If you define a variable with a number as name, you will only be able to recover it
as string. i.e dialogue.set_variable(1, "blah")
, after persistence will only be available through dialogue.get_variable("1")
.
Thanks
Thanks to @jcandres for spotting this issue.