use std::sync::Arc;
use crate::{
IntVector,
assets::LiteralComponent,
schema::as_brdb::AsBrdbValue,
wrapper::{BString, BrdbComponent},
};
pub const DYNAMIC_GRID: BString = BString::str("Entity_DynamicBrickGrid");
pub fn dynamic_grid_entity() -> Arc<Box<dyn BrdbComponent>> {
Arc::new(Box::new(LiteralComponent::new(DYNAMIC_GRID)))
}
pub const MICROCHIP_GRID: BString = BString::str("Entity_MicrochipDynamicBrickGrid");
pub const MICROCHIP_GRID_CLASS: BString = BString::str("BP_MicrochipBrickGridDynamicActor_C");
pub fn microchip_grid_entity(
collapsed: bool,
plane_center: IntVector,
plane_extent: IntVector,
) -> Arc<Box<dyn BrdbComponent>> {
Arc::new(Box::new(LiteralComponent::new(MICROCHIP_GRID).with_data([
("bCollapsed", Box::new(collapsed) as Box<dyn AsBrdbValue>),
("PlaneCenter", Box::new(plane_center)),
("PlaneExtent", Box::new(plane_extent)),
])))
}