bevy_gauge 0.5.1

A flexible attribute and stat system for Bevy
Documentation
// Lets the crate name itself, so derive macros can emit `::bevy_gauge::…` paths
// that resolve inside the crate (and in its examples/tests) exactly as they do
// downstream.
extern crate self as bevy_gauge;

pub mod attribute_id;
pub mod commands;
pub mod expr;
pub mod context;
pub mod modifier;
pub mod node;
pub mod tags;
pub mod graph;
pub mod attributes;
pub mod attributes_mut;
pub mod modifier_set;
pub mod derived;
pub mod resolvable;
pub mod instant;
pub mod requirements;
pub mod plugin;
pub mod writer;

#[cfg(feature = "avian3d")]
pub mod avian;

#[doc(hidden)]
pub mod macros;

// Re-export `inventory` so the macros can submit registrations through
#[doc(hidden)]
pub use inventory;

// Re-export proc macros at crate root for reliable resolution in dependents
pub use bevy_gauge_macros::AttributeComponent;
pub use bevy_gauge_macros::AttributeResolvable;
pub use bevy_gauge_macros::define_tags;

pub mod prelude {
    pub use crate::expr::{Expr, CompileError};
    pub use crate::modifier::Modifier;
    pub use crate::modifier_set::{ModifierSet, ModifierValue, AttributeInitializer, AttributeBuilder, ComplexAttribute};
    pub use crate::node::ReduceFn;
    pub use crate::tags::{TagMask, TagResolver};
    pub use crate::attributes::Attributes;
    pub use crate::attributes_mut::AttributesMut;
    pub use crate::derived::{
        AttributeDerived, WriteBack, InitTo, InitFrom,
        AttributeDerivedSet, WriteBackSet, InitFromSet, AttributesAppExt,
        add_gauge_sync_to_schedule,
    };
    pub use crate::instant::{
        InstantModifierSet, EvaluatedInstantEntry,
        AttributeQueries, InstantExt,
    };
    pub use crate::commands::AttributeCommandsExt;
    pub use crate::writer::{AttributeWriter, BoundAttributesMut};
    pub use crate::resolvable::AttributeResolvable;
    pub use crate::requirements::AttributeRequirements;
    pub use crate::plugin::AttributesPlugin;
    pub use crate::attributes;
    pub use crate::mod_set;
    pub use crate::instant;
    pub use crate::requires;
    pub use crate::register_derived;
    pub use crate::register_write_back;
    pub use bevy_gauge_macros::AttributeComponent;
    pub use bevy_gauge_macros::AttributeResolvable;
    pub use bevy_gauge_macros::define_tags;
}