Avian & BTB upgrade (#40)

This commit is contained in:
extrawurst
2025-05-13 23:25:58 +02:00
committed by GitHub
parent 334eacfd1c
commit c69a528625
15 changed files with 348 additions and 363 deletions

View File

@@ -11,8 +11,8 @@ use crate::loading_assets::GameAssets;
use crate::physics_layers::GameLayer;
#[derive(PointClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform)]
#[reflect(QuakeClass, Component)]
#[base(Transform)]
#[component(on_add = Self::on_add)]
#[model({ "path": "models/spawn.glb" })]
pub struct SpawnPoint {}
@@ -35,80 +35,81 @@ impl SpawnPoint {
}
#[derive(SolidClass, Component, Reflect, Default)]
#[reflect(Component)]
#[reflect(QuakeClass, Component)]
#[geometry(GeometryProvider::new().convex_collider())]
pub struct Worldspawn;
#[derive(SolidClass, Component, Reflect, Default)]
#[reflect(Component)]
#[reflect(QuakeClass, Component)]
#[geometry(GeometryProvider::new())]
#[base(Transform)]
pub struct Water;
#[derive(SolidClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform)]
#[reflect(QuakeClass, Component)]
#[base(Transform)]
#[geometry(GeometryProvider::new().convex_collider())]
pub struct Crates;
#[derive(SolidClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform)]
#[reflect(QuakeClass, Component)]
#[base(Transform)]
#[geometry(GeometryProvider::new().convex_collider())]
pub struct NamedEntity {
pub name: String,
}
#[derive(SolidClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform, Target)]
#[reflect(QuakeClass, Component)]
#[base(Transform, Target)]
#[geometry(GeometryProvider::new().convex_collider())]
pub struct Platform;
#[derive(PointClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform)]
#[reflect(QuakeClass, Component)]
#[base(Transform)]
pub struct PlatformTarget {
pub targetname: String,
}
#[derive(SolidClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform, Target)]
#[reflect(QuakeClass, Component)]
#[base(Transform, Target)]
#[geometry(GeometryProvider::new().convex_collider())]
pub struct Movable {
pub name: String,
}
#[derive(PointClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform)]
#[reflect(QuakeClass, Component)]
#[base(Transform)]
pub struct MoveTarget {
pub targetname: String,
}
#[derive(PointClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform)]
#[reflect(QuakeClass, Component)]
#[base(Transform)]
pub struct CameraTarget {
pub targetname: String,
}
#[derive(PointClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform, Target)]
#[reflect(QuakeClass, Component)]
#[base(Transform, Target)]
pub struct CutsceneCamera {
pub name: String,
pub targetname: String,
}
#[derive(PointClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform, Target)]
#[reflect(QuakeClass, Component)]
#[base(Transform, Target)]
pub struct CutsceneCameraMovementEnd;
#[derive(PointClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform)]
#[reflect(QuakeClass, Component)]
#[base(Transform)]
#[component(on_add = Self::on_add)]
#[model({ "path": "models/alien_naked.glb" })]
pub struct EnemySpawn {
@@ -149,8 +150,8 @@ impl EnemySpawn {
}
#[derive(PointClass, Component, Reflect, Default)]
#[reflect(Component)]
#[require(Transform)]
#[reflect(QuakeClass, Component)]
#[base(Transform)]
#[component(on_add = Self::on_add)]
#[model({ "path": "models/cash.glb" })]
pub struct CashSpawn {}
@@ -174,3 +175,20 @@ impl CashSpawn {
));
}
}
pub fn plugin(app: &mut App) {
app.register_type::<SpawnPoint>();
app.register_type::<Worldspawn>();
app.register_type::<Water>();
app.register_type::<Crates>();
app.register_type::<NamedEntity>();
app.register_type::<Platform>();
app.register_type::<PlatformTarget>();
app.register_type::<Movable>();
app.register_type::<MoveTarget>();
app.register_type::<CameraTarget>();
app.register_type::<CutsceneCamera>();
app.register_type::<CutsceneCameraMovementEnd>();
app.register_type::<EnemySpawn>();
app.register_type::<CashSpawn>();
}