use crate::config::{
InstancedObjectData, MeshletPlacement, RenderBounds, RenderClothData, RenderDecalData,
RenderLightData, RenderText, RenderWaterData,
};
use crate::render_world::{
CullingMask, Layer, MaterialId, MeshName, RenderEmitter, Transform, Visible,
};
nightshade_ecs::bundle! {
pub struct RenderObjectBundle {
pub transform: Transform,
pub mesh: MeshName,
pub material: MaterialId,
pub visible: Visible,
pub culling_mask: CullingMask,
pub layer: Layer,
pub bounds: RenderBounds,
}
}
nightshade_ecs::bundle! {
pub struct RenderLightBundle {
pub transform: Transform,
pub light: RenderLightData,
}
}
nightshade_ecs::bundle! {
pub struct RenderDecalBundle {
pub transform: Transform,
pub decal: RenderDecalData,
}
}
nightshade_ecs::bundle! {
pub struct RenderWaterBundle {
pub transform: Transform,
pub water: RenderWaterData,
}
}
nightshade_ecs::bundle! {
pub struct RenderEmitterBundle {
pub transform: Transform,
pub emitter: RenderEmitter,
}
}
nightshade_ecs::bundle! {
pub struct RenderInstancedBundle {
pub transform: Transform,
pub instanced: InstancedObjectData,
pub material: MaterialId,
}
}
nightshade_ecs::bundle! {
pub struct RenderTextBundle {
pub transform: Transform,
pub text: RenderText,
}
}
nightshade_ecs::bundle! {
pub struct RenderClothBundle {
pub transform: Transform,
pub cloth: RenderClothData,
pub material: MaterialId,
}
}
nightshade_ecs::bundle! {
pub struct RenderMeshletBundle {
pub transform: Transform,
pub meshlet: MeshletPlacement,
pub material: MaterialId,
pub bounds: RenderBounds,
}
}