Skip to content

Releases: nndda/Theatre

0.9.0

14 Feb 13:41
b0f5146
Compare
Choose a tag to compare

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 as caller, 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 named scope. 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

28 Nov 18:06
a0113d6
Compare
Choose a tag to compare

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 at Project > 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 caller Player, which has a variable health, and you want to double it in a Dialogue line:
    Ritsu:
        "Hold still {player_name},
        I'll double your health!"
    
        Player.set_health( Player.health * 2 )
    You can call 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

12 Oct 15:19
1a113cb
Compare
Choose a tag to compare

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 Mirage theme Catpuccin Latte theme
Written Dialogue without syntax highlighting:

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

25 Sep 23:18
3e7eca8
Compare
Choose a tag to compare

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 parsed Dialogue resources.
  • Bug fixes & performance improvements.

Stage

  • Fix variables not applied to the actor's label.

0.6.0

03 Sep 18:20
9c688d6
Compare
Choose a tag to compare

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/parsed Dialogue resource will be saved to .godot/imported. Reducing project files clutter.
    • As a result, .gitignore filters for parsed resources are no longer needed.

0.5.1

24 Aug 17:10
f0698b5
Compare
Choose a tag to compare

Just a wittwe tiny eeny weeny updwate (≧ω≦)

Genyewaw

  • Wots and vawious, pewfowmance impwuvments, and bugfixes. (¬‿¬ )
    • Wemove and wefactow wedundant codes.
    • Precompile all RegEx for the Dialogue parser. Reducing the needs to re-create RegEx 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

16 Aug 14:06
78bcbb2
Compare
Choose a tag to compare

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 section
    Dia:
        "This Dialogue line can be skipped!"
    
    :some_section
    Dia:
        "You can jump to any defined section
        in the written Dialogue"
    
  • Improve utility methods: humanize() and get_word_count()

Stage

  • Use Node
  • Add all autoload and singleton as caller
  • Add caller_nodes to add Node-based caller in the scene tree
  • Add jump_to(), jump_to_line(), and jump_to_section()
  • Add switch(), to switch the Dialogue with the same length

DialogueLabel

  • Add render control functions: rendering_paused, pause_render(), and resume_render()

0.4.0-alpha

20 Jun 20:49
cf90e35
Compare
Choose a tag to compare

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

21 Apr 16:51
e9bec2f
Compare
Choose a tag to compare
Merge pull request #17 from nndda/dev

v0.3.6-alpha