pub struct GameObject {
pub id: u64,
pub name: String,
pub transform: Transform,
pub mesh: MeshBinding,
pub visible: bool,
pub parent_id: Option<u64>,
pub components: Vec<ComponentSlot>,
pub property_tags: Vec<String>,
pub topology_layer: u8,
}Expand description
A game object — empty container that gains visual and behavioral identity
through MeshBinding and ComponentSlots.
id: deterministic u64, no UUIDs or RNG.transform: inline hot data, accessed every frame.components: boundedVec<ComponentSlot>(max 32).- Fully serializable for scene save/load and network replication.
Fields§
§id: u64§name: String§transform: Transform§mesh: MeshBinding§visible: bool§parent_id: Option<u64>§components: Vec<ComponentSlot>Property tags (e.g., “isFlammable”, “isDestructible”). Drive physics heuristics, DreamMatter behavior, and event emission at runtime.
topology_layer: u8Topology layer index (0=Universe, 9=Point). Determines which gameplay channel this object belongs to. GPU quantum culling uses this to render only the active layer’s content.
Implementations§
Source§impl GameObject
impl GameObject
Sourcepub fn new(id: u64, name: String) -> Self
pub fn new(id: u64, name: String) -> Self
Create a new empty game object with default transform and no mesh.
Sourcepub fn with_primitive(id: u64, name: String, kind: PrimitiveKind) -> Self
pub fn with_primitive(id: u64, name: String, kind: PrimitiveKind) -> Self
Create with a primitive mesh (default gray color).
Sourcepub fn add_component(&mut self, slot: ComponentSlot) -> Result<(), String>
pub fn add_component(&mut self, slot: ComponentSlot) -> Result<(), String>
Attach a component. Returns error if MAX_COMPONENTS_PER_OBJECT exceeded.
Sourcepub fn remove_component(&mut self, kind: ComponentKind) -> bool
pub fn remove_component(&mut self, kind: ComponentKind) -> bool
Remove the first component matching kind. Returns true if found.
pub fn get_component(&self, kind: ComponentKind) -> Option<&ComponentSlot>
pub fn get_component_mut( &mut self, kind: ComponentKind, ) -> Option<&mut ComponentSlot>
Sourcepub fn has_component(&self, kind: ComponentKind) -> bool
pub fn has_component(&self, kind: ComponentKind) -> bool
Check whether this object has any component of the given kind.
Trait Implementations§
Source§impl Clone for GameObject
impl Clone for GameObject
Source§fn clone(&self) -> GameObject
fn clone(&self) -> GameObject
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GameObject
impl Debug for GameObject
Source§impl<'de> Deserialize<'de> for GameObject
impl<'de> Deserialize<'de> for GameObject
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for GameObject
impl RefUnwindSafe for GameObject
impl Send for GameObject
impl Sync for GameObject
impl Unpin for GameObject
impl UnsafeUnpin for GameObject
impl UnwindSafe for GameObject
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
Mutably borrows from an owned value. Read more