MessageManager

Struct MessageManager 

Source
pub struct MessageManager {
    defs: Vec<MessageDef>,
    slot_to_index: HashMap<u32, usize>,
    active: Vec<ActiveMessage>,
    cycle_cursor: usize,
    transient_default: MessageDef,
}
Expand description

Message system: definitions + active instances + cycle cursor.

Fields§

§defs: Vec<MessageDef>§slot_to_index: HashMap<u32, usize>§active: Vec<ActiveMessage>§cycle_cursor: usize

Cursor for the T keybind. Walks the defs vec mod len.

§transient_default: MessageDef

Fallback styling used by Self::show_transient when no MILK_MSG.INI is loaded. Centred, white, 32 px, 0.5 s fade-in / fade-out, 4 s sustain.

Implementations§

Source§

impl MessageManager

Source

pub fn new() -> Self

Source

pub fn load_defs(&mut self, defs: Vec<MessageDef>)

Load a freshly-parsed set of message definitions, replacing any previous load. Doesn’t touch the active list.

Source

pub fn def_count(&self) -> usize

Source

pub fn active_count(&self) -> usize

Source

pub fn spawn_slot(&mut self, slot: u32, time: f32) -> bool

Spawn a message by INI slot at time. Multiple spawns of the same slot stack — matches the sprite manager + MD2 behaviour.

Source

pub fn cycle_next(&mut self, time: f32) -> Option<u32>

T keybind: cycle to the next loaded slot.

Source

pub fn clear(&mut self)

Drop every active message (Ctrl+Y keybind).

Source

pub fn show_transient(&mut self, text: impl Into<String>, time: f32)

Show a transient message — used by the MPRIS auto-title path. Reuses the first loaded def’s style (font, size, colour, position, fade timing) so user-authored typography sticks; if no def is loaded, the built-in transient_default is used. The text argument overrides the def’s text= field.

Source

pub fn tick(&mut self, time: f32) -> Vec<MessageRenderInstance>

Advance every active message by one tick at engine time time. Returns the list of MessageRenderInstances for the renderer, sorted in spawn order so later messages paint over earlier ones.

Trait Implementations§

Source§

impl Default for MessageManager

Source§

fn default() -> Self

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

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

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

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.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,