use crate::techblox::{UnityFloat3, UnityQuaternion, SerializedEntityComponent, SerializedEntityDescriptor, Parsable};
use libfj_parsable_macro_derive::*;
#[derive(Clone, Copy, Parsable)]
pub struct BlockGroupEntity {
pub saved_block_group_id: SavedBlockGroupIdComponent,
pub block_group_transform: BlockGroupTransformEntityComponent,
}
impl BlockGroupEntity {}
impl SerializedEntityDescriptor for BlockGroupEntity {
fn serialized_components() -> u8 {
2
}
fn components<'a>(&'a self) -> Vec<&'a dyn SerializedEntityComponent> {
vec![&self.saved_block_group_id,
&self.block_group_transform]
}
fn components_mut<'a>(&'a mut self) -> Vec<&'a mut dyn SerializedEntityComponent> {
vec![&mut self.saved_block_group_id,
&mut self.block_group_transform]
}
fn hash_name(&self) -> u32 {
Self::hash("BlockGroupEntityDescriptorV0")
}
}
#[derive(Clone, Copy, Parsable)]
pub struct SavedBlockGroupIdComponent {
pub saved_block_group_id: i32,
}
impl SerializedEntityComponent for SavedBlockGroupIdComponent {}
#[derive(Clone, Copy, Parsable)]
pub struct BlockGroupTransformEntityComponent {
pub block_group_grid_position: UnityFloat3,
pub block_group_grid_rotation: UnityQuaternion,
}
impl SerializedEntityComponent for BlockGroupTransformEntityComponent {}