use crate::techblox::{SerializedEntityDescriptor, Parsable, SerializedEntityComponent, UnityFloat3, UnityHalf3};
use libfj_parsable_macro_derive::*;
#[derive(Copy, Clone, Parsable)]
pub struct SerializedFlyCamEntity {
pub rb_component: SerializedRigidBodyEntityStruct,
}
impl SerializedEntityDescriptor for SerializedFlyCamEntity {
fn serialized_components() -> u8 {
2
}
fn components<'a>(&'a self) -> Vec<&'a dyn SerializedEntityComponent> {
vec![&self.rb_component]
}
fn components_mut<'a>(&'a mut self) -> Vec<&'a mut dyn SerializedEntityComponent> {
vec![&mut self.rb_component]
}
fn hash_name(&self) -> u32 {
Self::hash("FlyCamEntityDescriptorV0") }
}
#[derive(Copy, Clone, Parsable)]
pub struct SerializedRigidBodyEntityStruct {
pub position: UnityFloat3,
}
impl SerializedEntityComponent for SerializedRigidBodyEntityStruct {}
#[derive(Copy, Clone, Parsable)]
pub struct SerializedPhysicsCameraEntity {
pub cam_component: SerializedCameraEntityStruct,
}
impl SerializedEntityDescriptor for SerializedPhysicsCameraEntity {
fn serialized_components() -> u8 {
1
}
fn components<'a>(&'a self) -> Vec<&'a dyn SerializedEntityComponent> {
vec![&self.cam_component]
}
fn components_mut<'a>(&'a mut self) -> Vec<&'a mut dyn SerializedEntityComponent> {
vec![&mut self.cam_component]
}
fn hash_name(&self) -> u32 {
Self::hash("CharacterCameraEntityDescriptorV1") }
}
#[derive(Copy, Clone, Parsable)]
pub struct SerializedCameraEntityStruct {
pub position: UnityHalf3,
pub rotation: UnityHalf3,
}
impl SerializedEntityComponent for SerializedCameraEntityStruct {}