Comments (5)
Oh, that's an interesting issue.
So in_state
uses the existence of State<S>
to decide whether a state "exists", but computed/sub states work on optional resources.
We can either use a different resource to verify that a state is installed (e.g. Events<StateTransitionEvent<S>>
is something I use), but then we need to add it as an argument to in_state
😛
Alternatively we can just remove the warning, it warns about something pretty obvious
from bevy.
@alice-i-cecile - can you mark me as assigned here? I'm working on a solution RN
from bevy.
from bevy.
Oh, that's an interesting issue. So
in_state
uses the existence ofState<S>
to decide whether a state "exists", but computed/sub states work on optional resources.We can either use a different resource to verify that a state is installed (e.g.
Events<StateTransitionEvent<S>>
is something I use), but then we need to add it as an argument toin_state
😛Alternatively we can just remove the warning, it warns about something pretty obvious
The warning makes sense for States because it is assumed that they are initialised (idk how appropriate this assumption is). But it doesn't make sense for sub-states as they are inherently optional.
As an outsider, I will cautiously make the suggestion that sub states can be generalised so that all states are sub states. I don't think there needs to be two classes of states in this way (which makes the interface more complex). A regular state could then just be a sub state of some built-in unary root state.
Then if add_sub_state
was not called for a state, then any in_state
calls for that would only return false which is how sub-states behave.
from bevy.
The warning makes sense for States because it is assumed that they are initialised (idk how appropriate this assumption is). But it doesn't make sense for sub-states as they are inherently optional.
I'm uncertain what you mean by "it is assumed that they are initialized"? Can you elaborate?
I think my confusion is that all state types need to be registered with the app to work, so "initialized" in that sense applies to everything - but if you mean they can or can't be None that's a different distinction.
from bevy.
Related Issues (20)
- Fragment Stage Exceeds Maximum Sampled Textures Limit on the web
- Gamepad unique id HOT 1
- Allow one-shot systems to be replaced, re-using the same SystemId
- Log window/monitor info on startup HOT 1
- Regression on string representation of entities HOT 2
- `bevy_log` expose `tracing_subscriber::Layer::set_ansi`
- Lights by default affect all but the first RenderLayers ? HOT 2
- Commands.register_system
- [Docs] Add example to demonstrate how to use skinning and morph with custom vertex shaders HOT 1
- macOS asks for permission to use the microphone HOT 7
- `AnyOf` can violate single mutable alias rule HOT 2
- `AnyOf` does not behave correctly with `()` params HOT 4
- Bevy should capture Ctrl+C, send AppExit event
- Make cargo clippy and cargo fmt pre-commit hooks HOT 4
- SubApp::extract cannot be called due to borrow checker HOT 5
- Can't upgrade to 0.14, impossible to render `AlphaMask3d` phase items without mesh HOT 2
- Support the `<verb>_parent_in_place()` API for operating on parents instead of children
- lldb hangs 1-2s whenever I press Ctrl+key or Cmd+key for the first time on Mac (since winit v0.30) HOT 1
- "Error: could not compile `bevy_core_pipeline` (lib)" in CI due to SIGSEGV: invalid memory reference HOT 1
- Transform changes after PostUpdate are not reflected in render HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bevy.