44 lines
1.5 KiB
Rust
44 lines
1.5 KiB
Rust
pub mod bytes;
|
|
pub mod time;
|
|
pub mod transform;
|
|
|
|
use bevy_app::{stage, AppBuilder, AppPlugin};
|
|
use bevy_transform::{
|
|
components::{
|
|
Children, LocalTransform, Transform, NonUniformScale, Rotation, Scale, Translation,
|
|
},
|
|
transform_system_bundle,
|
|
};
|
|
use bevy_type_registry::RegisterType;
|
|
use glam::{Mat3, Mat4, Quat, Vec2, Vec3};
|
|
use legion::prelude::IntoSystem;
|
|
use time::{time_system, timer_system, Time, Timer};
|
|
|
|
#[derive(Default)]
|
|
pub struct CorePlugin;
|
|
|
|
impl AppPlugin for CorePlugin {
|
|
fn build(&self, app: &mut AppBuilder) {
|
|
for transform_system in transform_system_bundle::build(app.world_mut()).drain(..) {
|
|
app.add_system(transform_system);
|
|
}
|
|
|
|
app.init_resource::<Time>()
|
|
.register_component::<Children>()
|
|
.register_component::<LocalTransform>()
|
|
.register_component::<Transform>()
|
|
.register_component::<Translation>()
|
|
.register_component::<Rotation>()
|
|
.register_component::<Scale>()
|
|
.register_component::<NonUniformScale>()
|
|
.register_component::<Timer>()
|
|
.register_property_type::<Vec2>()
|
|
.register_property_type::<Vec3>()
|
|
.register_property_type::<Mat3>()
|
|
.register_property_type::<Mat4>()
|
|
.register_property_type::<Quat>()
|
|
.add_system_to_stage(stage::FIRST, time_system.system())
|
|
.add_system_to_stage(stage::FIRST, timer_system.system());
|
|
}
|
|
}
|