Giter Club home page Giter Club logo

Comments (5)

MiniaczQ avatar MiniaczQ commented on June 26, 2024 2

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.

lee-orr avatar lee-orr commented on June 26, 2024 2

@alice-i-cecile - can you mark me as assigned here? I'm working on a solution RN

from bevy.

alice-i-cecile avatar alice-i-cecile commented on June 26, 2024

FYI @MiniaczQ @lee-orr

from bevy.

jonathandw743 avatar jonathandw743 commented on June 26, 2024

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

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.

lee-orr avatar lee-orr commented on June 26, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.