doonv / bevy_dev_console Goto Github PK
View Code? Open in Web Editor NEWSource-inspired developer console plugin for the Bevy game engine.
License: Apache License 2.0
Source-inspired developer console plugin for the Bevy game engine.
License: Apache License 2.0
Currently, you cannot access entities properties. In order to access entities properties we will need entity queries. Entity queries will be a built-in parser feature that will allow you to query the entities you choose and modify them.
Todo list for the design of the entity queries.
After the design has been finished, we can start the implementation.
Currently, the built-in parser only supports f64
numbers.
We can easily separate numbers into f64
and i64
s by if they have decimals or not.
But what about other sizes? This is where it gets a tad complicated because we want type inference. Technically we don't need type inference but needing to specify the type of a number every time gets annoying pretty quickly.
Rust uses whats known as a Hindley–Milner type system, but the Wikipedia article about it seems quite complicated. So I think that's a no-go (unless someone else decides to contribute it in, help would be appreciated)
An easier approach would be to look at what the function/variable assignment is expecting and use that, if that doesn't help then default to i32
/ f32
.
As of writing this, there are 60 instances of the todo
keyword in 10 files. These todos should be solved eventually.
There is no way to create loops.
Add for
and while
loops.
This is a low priority feature.
I've implemented proper error messages and span highlighting with CommandHints
for the runner/executor's error messages. But I haven't done this yet for the parser and lexer.
Implement proper error messages and span highlighting for the parser and lexer.
Pressing/Tapping the Shift key causes mouse-wheel scrolling to not work.
bevy_egui
updates to a version of egui that includes this PR.You cannot index specific elements in tuples.
Add the ability to index specific elements in tuples.
This is a bit difficult due to Expression::Member
only taking in identifiers. We would have to split the String
type to support more types of indexing. Bevy Reflect's Access
type could help with this, but it will be private until bevyengine/bevy#11029 gets merged. So in the meantime we will have to use our own type.
Add Tuple
and StructTuple
types.
There are no lists/vectors in the built-in parser. And no way to access vectors in reflection contexts.
Add Lists/Vectors.
There is no way to make your own functions/closures inside the built-in parser.
Add a way to create your own functions/closures.
I think only implementing closures is actually the right move, mostly because its less work.
But I also kinda prefer the closure syntax for creating functions in a console. Heres an example:
my_func = |a| a + 5
my_func 5
> 10
There's no documentation for the built-in parser language. So new users won't be able to know how to use all the built-in parser's capabilities.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.