[][src]Trait naia_server::Actor

pub trait Actor<T> where
    T: ActorType<T>, 
{ fn get_state_mask_size(&self) -> u8;
fn get_typed_copy(&self) -> T;
fn get_type_id(&self) -> TypeId;
fn write(&self, out_bytes: &mut Vec<u8>);
fn write_partial(&self, state_mask: &StateMask, out_bytes: &mut Vec<u8>);
fn read_full(&mut self, reader: &mut PacketReader<'_>, packet_index: u16);
fn read_partial(
        &mut self,
        state_mask: &StateMask,
        reader: &mut PacketReader<'_>,
        packet_index: u16
    );
fn set_mutator(&mut self, mutator: &Rc<RefCell<dyn ActorMutator + 'static>>);
fn is_interpolated(&self) -> bool;
fn is_predicted(&self) -> bool; }

An Actor is a container of Properties that can be scoped, tracked, and synced, with a remote host

Required methods

fn get_state_mask_size(&self) -> u8

Gets the number of bytes of the Actor's State Mask

fn get_typed_copy(&self) -> T

Gets a copy of the Actor, wrapped in an ActorType enum (which is the common protocol between the server/host)

fn get_type_id(&self) -> TypeId

Gets the TypeId of the Actor's implementation, used to map to a registered ActorType

fn write(&self, out_bytes: &mut Vec<u8>)

Writes data into an outgoing byte stream, sufficient to completely recreate the Actor on the client

fn write_partial(&self, state_mask: &StateMask, out_bytes: &mut Vec<u8>)

Write data into an outgoing byte stream, sufficient only to update the mutated Properties of the Actor on the client

fn read_full(&mut self, reader: &mut PacketReader<'_>, packet_index: u16)

Reads data from an incoming packet, sufficient to sync the in-memory Actor with it's state on the Server

fn read_partial(
    &mut self,
    state_mask: &StateMask,
    reader: &mut PacketReader<'_>,
    packet_index: u16
)

Reads data from an incoming packet, sufficient to sync the in-memory Actor with it's state on the Server

fn set_mutator(&mut self, mutator: &Rc<RefCell<dyn ActorMutator + 'static>>)

Set the Actor's ActorMutator, which keeps track of which Properties have been mutated, necessary to sync only the Properties that have changed with the client

fn is_interpolated(&self) -> bool

Returns whether or not the Actor has any interpolated properties

fn is_predicted(&self) -> bool

Returns whether or not the Actor has any predicted properties

Loading content...

Trait Implementations

impl<T> Debug for dyn Actor<T> + 'static where
    T: ActorType<T>, 
[src]

Implementors

Loading content...