Releases: nndda/Theatre
0.9.0
Here comes another breaking changes~
Been sitting on this for way too long because I'm preparing for some super important and fancy Big Feature™. But sadly, the Big Feature™ took too long, and I don't want to wait another weeks to roll a new update. So here it is without the Big Feature™ 😔
There's lots of syntactic sugars for this update 🍬
✨ New
-
Introducing setter/assigner/property manipulator/whatever you call this thing is. Either way, it sets variables of a
scope
(previously known ascaller
, details below on the changes section):Player.health = 100 UI.portrait = "smile.png"
Which is essentially just a syntactic sugar for:
Player.set("health", 100) UI.set("portrait", "smile.png")
And just like function calls, it is position-based too (explained more below). Support for other assignment operators such as
+=
,-=
,*=
, and/=
will be added in the future. -
Add built-in
{eq}
variable for=
character, to avoid ambiguation with property setter -
Add several BBCodes shorthand tags:
Shorthand BBCode tag c
,col
color
bg
bgcolor
fg
fgcolor
🛠️ Changes
-
caller
is now namedscope
. I think its more appropriate, especially with the new property setter feature. Caller-named functions are still available, but its deprecated, and will be removed in the future -
Function calls are now position-based by default:
Before:
Ritsu: "Such a lovely weather today!{d = 1.5} {1} delay=1.5 {2} I spoke too soon...." # {0} Portrait.set("ritsu_smile.png") # {1} Environment.set_weather("storm") # {2} Portrait.set("ritsu_pissed.png")
After:
Ritsu: Portrait.set("ritsu_smile.png") "Such a lovely weather today!{d = 1.5} Environment.set_weather("storm") delay=1.5 Portrait.set("ritsu_pissed.png") nevermind..."
-
Better error handling
-
Various bug fixes
0.8.0
Yet another small monthly, potentially unstable and untested update, pushed and released on Friday 🎉
Though, its just a bunch of small updates, nothing very big or significant like before.
General
- Various bug fixes & performance improvements
- Updates the documentation
- Used custom syntax highlighting theme (support for the Dialogue syntax soon)
- Added more articles & improved some
Dialogue
- Added reimport
Dialogue
resources button atProject > Tools > 🎭 Theatre
- Written
Dialogue
resources will be reimported automatically on version updates - Allowed curly brackets to be written escaped:
\{
and\}
- Fixed incorrect syntax highlighting on
Dialogue
tags - Function calls now accept arguments from the Stage's callers and singletons
For example: you have a callerPlayer
, which has a variablehealth
, and you want to double it in a Dialogue line:You can callRitsu: "Hold still {player_name}, I'll double your health!" Player.set_health( Player.health * 2 )
Player.health
as a part of the arguments.
But it only works for variables, constants, and functions. Built-in datatype's constants (Vector2.ONE
,Color.CYAN
) are still not supported.
Stage
- Used
WeakRef
to represent caller object
DialogueLabel
- Improved performance on
Dialogue
rendering
Since its a Dialogue
-related updates, you might want to reimport the written Dialogue
resources. Perfect opportunity to check out the new convenient reimport button at Project > Tools > 🎭 Theatre > ♻️ Reimport Dialogue resources
.
0.7.0
It is finally here, the ever-so-needed Dialogue syntax highlighter. The issue #1 has been sitting for almost a year, but it only took a day to implement it. I wish I explored and tried things out sooner 🤦.
Note
Syntax highlighter may not be applied immediately on an existing project. To resolve that, close and re-open all Dialogue files. If that doesn't work, in the script editor, go to Edit > Syntax Highlighter
and select Theatre Dialogue
.
If that still doesn't work, close all Dialogue files, and disable and re-enable the Theatre plugin in the project settings.
Ayu Miragetheme |
Catpuccin Lattetheme |
![]() |
![]() |
Dialogue
- Implemented syntax highlighter for written
Dialogue
. - Reduced
Dialogue
folding clutter. Only allow folding on indented blocks. - Added CI tests for
DialogueParser
.
0.6.1
Just a little patch update that should've been released like 3 weeks ago.
There's also the new DialogueTestUnit
class to hopefully speed up Dialogue
and DialogueParser
development.
General
- Add
DialogueTestUnit
to test parsedDialogue
resources. - Bug fixes & performance improvements.
Stage
- Fix variables not applied to the actor's label.
0.6.0
A somewhat, quite, slightly, partially, moderately, possibly, kinda, rather breaking changes. Though there's no noteworthy new features. In fact this update removed 'features', the redundant one that is.
General
- Re-enabled automatic update check.
- Bug fixes & performance improvements.
Dialogue
- Add
dlg
extension to "Search in Files" feature. - #26 Completely refactor & improve written
Dialogue
import process using EditorImportPlugin. Compiled/parsedDialogue
resource will be saved to.godot/imported
. Reducing project files clutter.- As a result,
.gitignore
filters for parsed resources are no longer needed.
- As a result,
0.5.1
Just a wittwe tiny eeny weeny updwate (≧ω≦)
Genyewaw
- Wots and vawious, pewfowmance impwuvments, and bugfixes. (¬‿¬ )
- Wemove and wefactow wedundant codes.
- Precompile all
RegEx
for theDialogue
parser. Reducing the needs to re-createRegEx
objects everytime the parser is initialized.
- Wevised and impwuvd documentations. o(>ω<)o
- A-added some t-tutowial awticles. (⁄ ⁄>⁄ ▽ ⁄<⁄ ⁄)
Dialogue
- Squawe bwackets can be wwitten as
\[
and\]
??!! ヽ(°〇°)ノ
0.5.0
General
- Reorganize demo
- Add option to clean compiled
Dialogue
resource in tool submenu - Improve built-in documentation
- Flesh out online documentation - https://nndda.github.io/Theatre
- Various bug fixes
Dialogue
- Implement
Dialogue
sectionDia: "This Dialogue line can be skipped!" :some_section Dia: "You can jump to any defined section in the written Dialogue"
- Improve utility methods:
humanize()
andget_word_count()
Stage
- Use
Node
- Add all autoload and singleton as caller
- Add
caller_nodes
to addNode
-based caller in the scene tree - Add
jump_to()
,jump_to_line()
, andjump_to_section()
- Add
switch()
, to switch theDialogue
with the same length
DialogueLabel
- Add render control functions:
rendering_paused
,pause_render()
, andresume_render()
0.4.0-alpha
Big and breaking update, but I'll only bump the minor number version. Also just realized that @export_storage
is Godot 4.3 feature 🤦, so the addon is 4.3 only now.
General
- Improved, and refactored major classes: Stage and Dialogue.
- Made some variables and functions private on major classes.
- Improved and flesh out built-in documentations.
- Improved error handling when parsing written Dialogue.
- Added icons for classes.
- Various bug fixes.
Dialogue
- Allows file format
*.dlg
. - Used
Expression
to parse function arguments. - Created more utility functions.
- Improved error handling
- Line number where the error is at will be mentioned if possible.
- Implemented positional function calls using its index.
load()
now only allows parsing from written Dialogue text files.- Improved
_source_path
for Dialogue that are written in script. - Separated parser class to
DialogueParser
- Implemented more cleaner syntax.
- Implement single line Dialogue tags and BBCode tags.
Stage
- Reworked class as 'Node'
- Refactored core functions.
- Flesh out some control and utility functions.
- Disabled
switch_lang()
- Fixed & improved Dialogue progressing.
- Fixed Dialogue flash when skipping.
- Added more Dialogue control functions.
DialogueLabel
- Implemented positional function calls.
- Improved rendering at node's initial setup.
- Hide and always enable
bbcode_enabled
.
0.3.6-alpha
Merge pull request #17 from nndda/dev v0.3.6-alpha