refactor heads-db and added plane controls

This commit is contained in:
2025-04-12 16:19:14 +02:00
parent fb9d7c78fe
commit dab4ea0656
10 changed files with 19 additions and 10 deletions

View File

@@ -9,7 +9,7 @@
(key:"green grocer", range:60), (key:"green grocer", range:60),
(key:"highland hammer thrower", ability:Thrown, range:80), (key:"highland hammer thrower", ability:Thrown, range:80),
(key:"legionnaire", ability:Gun, range:60), (key:"legionnaire", ability:Gun, range:60),
(key:"mig pilot", ability:Gun, range:60), (key:"mig pilot", ability:Gun, range:60, controls:Plane),
(key:"nanny", ability:Thrown, range:60), (key:"nanny", ability:Thrown, range:60),
(key:"panic attack"), (key:"panic attack"),
(key:"salty sea dog"), (key:"salty sea dog"),

View File

@@ -5,8 +5,8 @@ use crate::{
GameState, GameState,
aim::AimTarget, aim::AimTarget,
global_observer, global_observer,
head_asset::HeadsDatabase,
heads::ActiveHeads, heads::ActiveHeads,
heads_database::HeadsDatabase,
hitpoints::Hit, hitpoints::Hit,
physics_layers::GameLayer, physics_layers::GameLayer,
player::{Player, PlayerBodyMesh}, player::{Player, PlayerBodyMesh},

View File

@@ -4,7 +4,7 @@ use crate::{
GameState, GameState,
abilities::{HeadAbility, TriggerData, TriggerThrow}, abilities::{HeadAbility, TriggerData, TriggerThrow},
aim::AimTarget, aim::AimTarget,
head_asset::HeadsDatabase, heads_database::HeadsDatabase,
npc::Npc, npc::Npc,
}; };

View File

@@ -4,7 +4,7 @@ mod target_ui;
use crate::{ use crate::{
GameState, GameState,
head::ActiveHead, head::ActiveHead,
head_asset::HeadsDatabase, heads_database::HeadsDatabase,
physics_layers::GameLayer, physics_layers::GameLayer,
player::{Player, PlayerBodyMesh}, player::{Player, PlayerBodyMesh},
tb_entities::EnemySpawn, tb_entities::EnemySpawn,

View File

@@ -4,7 +4,7 @@ use crate::{
GameState, GameState,
backpack::{BackbackSwapEvent, Backpack}, backpack::{BackbackSwapEvent, Backpack},
global_observer, global_observer,
head_asset::HeadsDatabase, heads_database::HeadsDatabase,
hitpoints::Hitpoints, hitpoints::Hitpoints,
player::Player, player::Player,
sounds::PlaySound, sounds::PlaySound,

View File

@@ -2,6 +2,13 @@ use crate::abilities::HeadAbility;
use bevy::prelude::*; use bevy::prelude::*;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Debug, Default, Reflect, Serialize, Deserialize)]
pub enum HeadControls {
#[default]
Walk,
Plane,
}
#[derive(Debug, Default, Reflect, Serialize, Deserialize)] #[derive(Debug, Default, Reflect, Serialize, Deserialize)]
pub struct HeadStats { pub struct HeadStats {
pub key: String, pub key: String,
@@ -9,6 +16,8 @@ pub struct HeadStats {
pub ability: HeadAbility, pub ability: HeadAbility,
#[serde(default)] #[serde(default)]
pub range: f32, pub range: f32,
#[serde(default)]
pub controls: HeadControls,
} }
#[derive(Debug, Asset, Reflect, Serialize, Deserialize)] #[derive(Debug, Asset, Reflect, Serialize, Deserialize)]

View File

@@ -1,6 +1,6 @@
use crate::{ use crate::{
GameState, GameState,
head_asset::{HeadDatabaseAsset, HeadsDatabase}, heads_database::{HeadDatabaseAsset, HeadsDatabase},
}; };
use bevy::{prelude::*, utils::HashMap}; use bevy::{prelude::*, utils::HashMap};
use bevy_asset_loader::prelude::*; use bevy_asset_loader::prelude::*;

View File

@@ -11,8 +11,8 @@ mod cutscene;
mod debug; mod debug;
mod gates; mod gates;
mod head; mod head;
mod head_asset;
mod heads; mod heads;
mod heads_database;
mod hitpoints; mod hitpoints;
mod keys; mod keys;
mod loading_assets; mod loading_assets;
@@ -42,7 +42,7 @@ use bevy_trenchbroom::prelude::*;
use bevy_ui_gradients::UiGradientsPlugin; use bevy_ui_gradients::UiGradientsPlugin;
use camera::MainCamera; use camera::MainCamera;
use control::controller::CharacterControllerPlugin; use control::controller::CharacterControllerPlugin;
use head_asset::HeadDatabaseAsset; use heads_database::HeadDatabaseAsset;
use loading_assets::AudioAssets; use loading_assets::AudioAssets;
use std::io::{Read, Write}; use std::io::{Read, Write};
use utils::{billboards, sprite_3d_animation, squish_animation}; use utils::{billboards, sprite_3d_animation, squish_animation};

View File

@@ -2,8 +2,8 @@ use crate::{
GameState, GameState,
ai::Ai, ai::Ai,
head::ActiveHead, head::ActiveHead,
head_asset::HeadsDatabase,
heads::{HEAD_COUNT, HeadState}, heads::{HEAD_COUNT, HeadState},
heads_database::HeadsDatabase,
hitpoints::{Hitpoints, Kill}, hitpoints::{Hitpoints, Kill},
keys::KeySpawn, keys::KeySpawn,
tb_entities::EnemySpawn, tb_entities::EnemySpawn,

View File

@@ -9,8 +9,8 @@ use crate::{
}, },
global_observer, global_observer,
head::ActiveHead, head::ActiveHead,
head_asset::HeadsDatabase,
heads::HeadChanged, heads::HeadChanged,
heads_database::HeadsDatabase,
hitpoints::Hitpoints, hitpoints::Hitpoints,
loading_assets::GameAssets, loading_assets::GameAssets,
physics_layers::GameLayer, physics_layers::GameLayer,