pub struct Energy {
current: u32,
base_max: u32,
maximum: u32,
regen_rate: f32,
}Expand description
Energy is represented by u32s within the module, but treated as a float by the rest of the game.
Fields§
§current: u32Current energy is how much energy the entity currently has
base_max: u32Base max is the amount of energy the entity has without considering temporary modifiers such as buffs
maximum: u32Maximum is the amount of energy the entity has after temporary modifiers are considered
regen_rate: f32Rate of regeneration per tick. Starts at zero and accelerates.
Implementations§
Source§impl Energy
impl Energy
Sourcepub const ENERGY_EPSILON: f32
pub const ENERGY_EPSILON: f32
Used when comparisons to energy are needed outside this module.
Sourceconst MAX_ENERGY: u16
const MAX_ENERGY: u16
Maximum value allowed for energy before scaling
Sourceconst MAX_SCALED_ENERGY: u32
const MAX_SCALED_ENERGY: u32
The maximum value allowed for current and maximum energy Maximum value is (u16:MAX - 1) * 256, which only requires 24 bits. This can fit into an f32 with no loss to precision
Sourceconst SCALING_FACTOR_FLOAT: f32 = 256.
const SCALING_FACTOR_FLOAT: f32 = 256.
The amount energy is scaled by within this module
const SCALING_FACTOR_INT: u32
Sourcepub fn needs_maximum_update(&self, modifiers: StatsModifier) -> Option<u32>
pub fn needs_maximum_update(&self, modifiers: StatsModifier) -> Option<u32>
Calculates a new maximum value and returns it if the value differs from the current maximum.
Note: The returned value uses an internal format so don’t expect it to
be useful for anything other than a parameter to
Self::update_internal_integer_maximum.
Sourcepub fn update_internal_integer_maximum(&mut self, maximum: u32)
pub fn update_internal_integer_maximum(&mut self, maximum: u32)
Updates the maximum value for energy.
Note: The accepted u32 value is in the internal format of this type.
So attempting to pass values that weren’t returned from
Self::needs_maximum_update can produce strange or unexpected
results.
pub fn new(body: Body) -> Self
Sourcepub fn needs_regen(&self) -> bool
pub fn needs_regen(&self) -> bool
Returns true if the current value is less than the maximum
Sourcepub fn regen(&mut self, accel: f32, dt: f32)
pub fn regen(&mut self, accel: f32, dt: f32)
Regenerates energy based on the provided acceleration
Sourcepub fn needs_regen_rate_reset(&self) -> bool
pub fn needs_regen_rate_reset(&self) -> bool
Checks whether the regen_rate is zero or not. Returns true if the
value is anything other than 0.0.
Sourcepub fn reset_regen_rate(&mut self)
pub fn reset_regen_rate(&mut self)
Resets the energy regeneration rate to zero
pub fn change_by(&mut self, change: f32)
pub fn try_change_by(&mut self, change: f32) -> Result<(), ()>
pub fn refresh(&mut self)
Trait Implementations§
impl Copy for Energy
Source§impl<'de> Deserialize<'de> for Energy
impl<'de> Deserialize<'de> for Energy
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for Energy
Auto Trait Implementations§
impl Freeze for Energy
impl RefUnwindSafe for Energy
impl Send for Energy
impl Sync for Energy
impl Unpin for Energy
impl UnsafeUnpin for Energy
impl UnwindSafe for Energy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<C, M> ConvertSaveload<M> for C
impl<C, M> ConvertSaveload<M> for C
§type Error = Infallible
type Error = Infallible
§fn convert_into<F>(
&self,
_: F,
) -> Result<<C as ConvertSaveload<M>>::Data, <C as ConvertSaveload<M>>::Error>
fn convert_into<F>( &self, _: F, ) -> Result<<C as ConvertSaveload<M>>::Data, <C as ConvertSaveload<M>>::Error>
Data) using
entity to marker mapping function§fn convert_from<F>(
data: <C as ConvertSaveload<M>>::Data,
_: F,
) -> Result<C, <C as ConvertSaveload<M>>::Error>
fn convert_from<F>( data: <C as ConvertSaveload<M>>::Data, _: F, ) -> Result<C, <C as ConvertSaveload<M>>::Error>
Data) using
entity to marker mapping functionimpl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> Event for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more