- add plugin possibly plugins ? (ie to split parsing from runner )
- rename parse_yarn_nodes_nom to something more adapted & nicer
- for choices, perhaps return the current choice index together with the list of choices from get_current_choices
- error handling if start node name is not found
- fix issue with nested choices in runner
- add examples
-
two characters (player + 1)
- very simple display/ui
-
rpg style changing portraits
-
speech bubbles, multiple characters (3d)
-
first two examples should use camera2D
-
examples should provide at least some command use
-
- cleanup warnings
- add basic useage docs
- add captures of the examples
- remove use as resource examples in docstrings for now
-
default to first node in yarn file if no start node is specified ? => bad idea, explicit errors are better
-
accessibility features how to? screen readers etc
-
basic nodes parsing (header + body)
-
details
-
dialogues: with or without character names
-
dialogues: interpolated values
-
dialogues: attributes
-
dialogues: Escaping Text
-
choices: blank line to close a list of choices
-
choices: nested/ indentation handling
-
commands: basic parsing
-
conditional expressions
-
inject tags into statements (might require bigger changes given the current approach)
-
fix empties being pushed into statements list
-
fix choice arrow still present in the first Statement in a choice
-
tags parsing
-
expressions parsing
-
add testing
- yarn files with title & some basic dialogues
- yarn files with title & multiple nested levels of choices
-
fix overly sensitive indentation issues
- we might need to track choice indentation seperatly from Dialogue/Command indentation ie this works : -> Lamik: everything! <> but this does not -> Lamik: everything! <> // notice the space at the start of the line: that changes the "current_indentation" in our tracking, messing things up
-
evaluator:
- fix issue with reaching end of a branch and not jumping back to previous level/root level
- remove need to pass yarn_asset to every next_entry call
- add ability to specify a specific choice directly in addition of previous/next choices
- rename next_entry() to next() ?
- next_entry() should return an Option perhaps ? (closer to an iterator, error handling etc)
-
fix command parsing : should dotted parameters be allowed? ie "file.ogg" for example
-
add support for multiple yarn files in a managed way : see https://docs.yarnspinner.dev/using-yarnspinner-with-unity/importing-yarn-files/yarn-projects
-
-
change "Commands" to YarnCommands, as it otherwise clashes with bevy's Commands
-
bevy 0.10.1 support
-
bevy 0.11 support on bevy_main branch (low priority, only if time allows)
-
does the api of the DialogueRunner make sense ?
- ironically as I never do oop , it seems to have some code smell
- its api seems off for a component ? should it be an asset ? not quite as there can be a few different runners active ? and specific to entities ? hmm not quite as a runner actually runs dialogues for MULTIPLE characters
- there are some parts of Bevy (namely audio), with ASSETS with api (audio.play)
- should the api be part of the YarnAsset ?? -> not really, take a look at bevy_kira_audio , the loaded assets are seperate https://github.com/NiklasEi/bevy_kira_audio/tree/main/src -> loaders load an AudioSource , just a struct with TypeUuid like our yarn_asset https://github.com/NiklasEi/bevy_kira_audio/blob/main/src/source/mp3_loader.rs https://github.com/NiklasEi/bevy_kira_audio/blob/main/src/source/mod.rs#L20 -> then there are audiochannels (a RESOURCE with an api) https://github.com/NiklasEi/bevy_kira_audio/blob/main/src/channel/typed.rs#L20
-
add testing
-
add examples
-
add docs