NetworkSimulationTime

Struct NetworkSimulationTime 

Source
pub struct NetworkSimulationTime { /* private fields */ }
Expand description

Resource to track the state of the network simulation separately from the ECS frame timings

Implementations§

Source§

impl NetworkSimulationTime

Source

pub fn sim_frames_to_run(&self) -> RangeInclusive<u32>

Returns the simulation frame numbers needed to be run this game frame.

Source

pub fn should_send_message_now(&self) -> bool

Determines whether or not to send a message in the current frame based on the message_send_rate

Source

pub fn should_send_message(&self, frame: u32) -> bool

Determines whether or not to send a message based on the message_send_rate

Source

pub fn increment_frame_number(&mut self)

Bumps the frame number

Source

pub fn reset_frame_lag(&mut self)

Resets the frame lag

Source

pub fn update_elapsed(&mut self, duration: Duration)

Increases the elapsed_duration by the given duration

Source

pub fn frame_number(&self) -> u32

Returns the current simulation frame number

Source

pub fn set_frame_number(&mut self, new_frame: u32)

Sets the frame number to the given frame number. This is useful when synchronizing frames with a server for example.

Source

pub fn elapsed_duration(&self) -> Duration

Returns the total duration since the last simulation frame

Source

pub fn per_frame_duration(&self) -> Duration

Returns the duration between each simulation frame. This number is calculated when a frame rate is set

Source

pub fn message_send_rate(&self) -> u8

Returns the rate at which messages should be sent over the network. i.e. ‘every N frames’ where N is message_send_rate.

Source

pub fn frame_lag(&self) -> u32

Returns the number of frames which the simulation is behind. This will usually be 0 or 1 if the ECS system is keeping up.

Source

pub fn set_sim_frame_rate(&mut self, new_rate: u32)

Sets the rate at which the network simulation progresses. Specified in hertz (frames/second).

Source

pub fn set_message_send_rate(&mut self, new_rate: u8)

Set the rate which messages are sent. Specified as ‘every N frames’ where N is new_rate.

Trait Implementations§

Source§

impl Clone for NetworkSimulationTime

Source§

fn clone(&self) -> NetworkSimulationTime

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NetworkSimulationTime

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for NetworkSimulationTime

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for NetworkSimulationTime

Source§

fn eq(&self, other: &NetworkSimulationTime) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for NetworkSimulationTime

Source§

impl StructuralPartialEq for NetworkSimulationTime

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Any for T
where T: Any,

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Scalar for T
where T: Copy + PartialEq + Debug + Any,

Source§

fn is<T>() -> bool
where T: Scalar,

Tests if Self the same as the type T Read more
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

unsafe fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TryDefault for T
where T: Default,

Source§

fn try_default() -> Result<T, String>

Tries to create the default.
Source§

fn unwrap_default() -> Self

Calls try_default and panics on an error case.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> Event for T
where T: Send + Sync + 'static,

Source§

impl<T> Resource for T
where T: Any + Send + Sync,