Roadmap #111
Pinned
nicopap
announced in
Announcements
Roadmap
#111
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Planned features:
.chirp
files.chirp
files nor interpreting them..chirp
files edited scenes. It should preserve comments, whitespaces etc.Import system
You can define a template in
file1.chirp
and use it infile2.chirp
.Suppose your
assets
directory is as follow:In
main.chirp
I want to import abutton
template defined inwidgets.chirp
.Here is the syntax I considered:
I would like the file path to be explicitly declared in the import statement, so that it's obvious from where the template is.
The idea is to also be able to import several templates from the same file at the same time:
I am settling on
use components/widgets.chirp (button slider tab)
(mandatory parenthesis, even when a single symbol is imported) with the option of quoting the file path (if it has spaces or special symbols in it).use
statement #73Widget library
The idea is to use the
embedded
asset source (see bevyengine/bevy#9885), one would be able to import from it in any.chirp
file using the"embedded://widgets.chirp"
path.It would be a collection of templates (just like user code) with common components such as buttons, text input or sliders.
Dynamic query based components
For dynamic lists with a variable amount of items, we need some iteration constructs, we also need a way to access query items from the
.chirp
file format. This requires dynamic queries.The idea is to add a new "statement" with the following parameters:
Query
specification (either monkeying the Rust syntax or using a different one (I have a strong distaste for the rust type syntax))Right now, I'm thinking it would look as follow:
There is one problem with this syntax. I really want to keep the language consistent. In that individual statements corresponds to one entity + as many children as you care.
But at the same time, I feel like it's fine to break this expectation with
for
loopsfor
statement #94Pre-processed file format
If I make the
ParseDsl
DSLs struct serializable, when loading a scene,cuicui_chirp
can skip parsing a.chirp
file. Which can get fairly costly.cuicui_chirp
could simply save theParseDsl
for each entity in the hierarchy and store them in a file. Then, when loading, it would just deserialize into theParseDsl
, and callDslBundle::insert
. Done. This seems very easy, and the benefits are many.More layout rules
cuicui_layout
currently makes some things difficult or impossible. I want to make it more powerful. Notably, I want the ability to nest arbitraryRoot
s inside a given layout tree. This would allow a lot of flexibility, notably clipped layouts such as scrollable areas. I'd also like to add aspect-ratio-preserving rules.LayoutDsl::root
is broken #101Rule
s. #97Better error messages
I already did some work in this direction in #106 but I dropped work on it, now that I have much more interesting features I can implement with Asset V2.
Good error messages is what attract people to rust, if I want to attract rust users, I should ourselves provide exceptional error messages.
Save
.chirp
filesIdeally, changes enacted in an editor can be saved back into
.chirp
files. Right now,.chirp
files are oriented toward manual text file authoring. But like https://enso.org/, why not have both a "visual" (ie: deserialized in-bevy format) and "textual" representations.UI editor
An editor to demonstrate how powerful
cuicui_chirp
would help get us traction. Also placing us beyond every other scene file implementations.Beta Was this translation helpful? Give feedback.
All reactions