From 5d4c7630ef28af951a28de6e1ffb6b921dc8c4e2 Mon Sep 17 00:00:00 2001 From: extrawurst Date: Sun, 29 Jun 2025 10:54:59 +0200 Subject: [PATCH] Revert "clippy fixes" This reverts commit f6e94cfd3294edf7d6573dff7f34c5be25a2804e. --- .cargo/config.toml | 2 - .github/workflows/ci_debug.yml | 2 +- Cargo.lock | 50 +--- Cargo.toml | 47 +-- crates/shared/build.rs => build.rs | 0 crates/client/Cargo.toml | 27 -- crates/client/src/main.rs | 275 ------------------ crates/server/Cargo.toml | 27 -- crates/shared/Cargo.toml | 33 --- crates/shared/src/lib.rs | 52 ---- justfile | 8 +- {crates/shared/src => src}/abilities/arrow.rs | 0 .../shared/src => src}/abilities/curver.rs | 0 {crates/shared/src => src}/abilities/gun.rs | 0 .../shared/src => src}/abilities/healing.rs | 0 .../shared/src => src}/abilities/missile.rs | 0 {crates/shared/src => src}/abilities/mod.rs | 0 .../shared/src => src}/abilities/thrown.rs | 0 {crates/shared/src => src}/ai/mod.rs | 0 {crates/shared/src => src}/aim/marker.rs | 0 {crates/shared/src => src}/aim/mod.rs | 0 {crates/shared/src => src}/aim/target_ui.rs | 0 {crates/shared/src => src}/animation.rs | 0 .../src => src}/backpack/backpack_ui.rs | 0 {crates/shared/src => src}/backpack/mod.rs | 0 .../src => src}/backpack/ui_head_state.rs | 0 {crates/shared/src => src}/camera.rs | 0 {crates/shared/src => src}/cash.rs | 0 {crates/shared/src => src}/cash_heal.rs | 0 {crates/shared/src => src}/character.rs | 0 .../src => src}/control/controller_common.rs | 0 .../src => src}/control/controller_flying.rs | 0 .../src => src}/control/controller_running.rs | 0 .../shared/src => src}/control/controls.rs | 0 {crates/shared/src => src}/control/mod.rs | 0 {crates/shared/src => src}/cutscene.rs | 0 {crates/shared/src => src}/debug.rs | 0 {crates/shared/src => src}/gates.rs | 0 {crates/shared/src => src}/head.rs | 0 {crates/shared/src => src}/head_drop.rs | 0 {crates/shared/src => src}/heads/heads_ui.rs | 0 {crates/shared/src => src}/heads/mod.rs | 0 {crates/shared/src => src}/heads_database.rs | 0 {crates/shared/src => src}/heal_effect.rs | 0 {crates/shared/src => src}/hitpoints.rs | 0 {crates/shared/src => src}/keys.rs | 0 {crates/shared/src => src}/loading_assets.rs | 0 {crates/shared/src => src}/loading_map.rs | 0 {crates/server/src => src}/main.rs | 51 +++- {crates/shared/src => src}/movables.rs | 0 {crates/shared/src => src}/npc.rs | 0 {crates/shared/src => src}/physics_layers.rs | 0 {crates/shared/src => src}/platforms.rs | 0 {crates/shared/src => src}/player.rs | 0 {crates/shared/src => src}/sounds.rs | 4 +- {crates/shared/src => src}/tb_entities.rs | 2 +- .../shared/src => src}/utils/auto_rotate.rs | 0 .../shared/src => src}/utils/billboards.rs | 0 .../shared/src => src}/utils/explosions.rs | 0 {crates/shared/src => src}/utils/mod.rs | 0 {crates/shared/src => src}/utils/observers.rs | 0 .../src => src}/utils/sprite_3d_animation.rs | 0 .../src => src}/utils/squish_animation.rs | 0 {crates/shared/src => src}/utils/trail.rs | 0 {crates/shared/src => src}/water.rs | 0 65 files changed, 85 insertions(+), 495 deletions(-) delete mode 100644 .cargo/config.toml rename crates/shared/build.rs => build.rs (100%) delete mode 100644 crates/client/Cargo.toml delete mode 100644 crates/client/src/main.rs delete mode 100644 crates/server/Cargo.toml delete mode 100644 crates/shared/Cargo.toml delete mode 100644 crates/shared/src/lib.rs rename {crates/shared/src => src}/abilities/arrow.rs (100%) rename {crates/shared/src => src}/abilities/curver.rs (100%) rename {crates/shared/src => src}/abilities/gun.rs (100%) rename {crates/shared/src => src}/abilities/healing.rs (100%) rename {crates/shared/src => src}/abilities/missile.rs (100%) rename {crates/shared/src => src}/abilities/mod.rs (100%) rename {crates/shared/src => src}/abilities/thrown.rs (100%) rename {crates/shared/src => src}/ai/mod.rs (100%) rename {crates/shared/src => src}/aim/marker.rs (100%) rename {crates/shared/src => src}/aim/mod.rs (100%) rename {crates/shared/src => src}/aim/target_ui.rs (100%) rename {crates/shared/src => src}/animation.rs (100%) rename {crates/shared/src => src}/backpack/backpack_ui.rs (100%) rename {crates/shared/src => src}/backpack/mod.rs (100%) rename {crates/shared/src => src}/backpack/ui_head_state.rs (100%) rename {crates/shared/src => src}/camera.rs (100%) rename {crates/shared/src => src}/cash.rs (100%) rename {crates/shared/src => src}/cash_heal.rs (100%) rename {crates/shared/src => src}/character.rs (100%) rename {crates/shared/src => src}/control/controller_common.rs (100%) rename {crates/shared/src => src}/control/controller_flying.rs (100%) rename {crates/shared/src => src}/control/controller_running.rs (100%) rename {crates/shared/src => src}/control/controls.rs (100%) rename {crates/shared/src => src}/control/mod.rs (100%) rename {crates/shared/src => src}/cutscene.rs (100%) rename {crates/shared/src => src}/debug.rs (100%) rename {crates/shared/src => src}/gates.rs (100%) rename {crates/shared/src => src}/head.rs (100%) rename {crates/shared/src => src}/head_drop.rs (100%) rename {crates/shared/src => src}/heads/heads_ui.rs (100%) rename {crates/shared/src => src}/heads/mod.rs (100%) rename {crates/shared/src => src}/heads_database.rs (100%) rename {crates/shared/src => src}/heal_effect.rs (100%) rename {crates/shared/src => src}/hitpoints.rs (100%) rename {crates/shared/src => src}/keys.rs (100%) rename {crates/shared/src => src}/loading_assets.rs (100%) rename {crates/shared/src => src}/loading_map.rs (100%) rename {crates/server/src => src}/main.rs (91%) rename {crates/shared/src => src}/movables.rs (100%) rename {crates/shared/src => src}/npc.rs (100%) rename {crates/shared/src => src}/physics_layers.rs (100%) rename {crates/shared/src => src}/platforms.rs (100%) rename {crates/shared/src => src}/player.rs (100%) rename {crates/shared/src => src}/sounds.rs (95%) rename {crates/shared/src => src}/tb_entities.rs (99%) rename {crates/shared/src => src}/utils/auto_rotate.rs (100%) rename {crates/shared/src => src}/utils/billboards.rs (100%) rename {crates/shared/src => src}/utils/explosions.rs (100%) rename {crates/shared/src => src}/utils/mod.rs (100%) rename {crates/shared/src => src}/utils/observers.rs (100%) rename {crates/shared/src => src}/utils/sprite_3d_animation.rs (100%) rename {crates/shared/src => src}/utils/squish_animation.rs (100%) rename {crates/shared/src => src}/utils/trail.rs (100%) rename {crates/shared/src => src}/water.rs (100%) diff --git a/.cargo/config.toml b/.cargo/config.toml deleted file mode 100644 index 550d719..0000000 --- a/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[env] -BEVY_ASSET_ROOT = { value = "", relative = true } diff --git a/.github/workflows/ci_debug.yml b/.github/workflows/ci_debug.yml index 21bb7b5..b45bf73 100644 --- a/.github/workflows/ci_debug.yml +++ b/.github/workflows/ci_debug.yml @@ -21,7 +21,7 @@ jobs: packages: libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev version: 1.0 - - name: Build client + - name: Build run: | cargo build --locked --target=x86_64-unknown-linux-gnu diff --git a/Cargo.lock b/Cargo.lock index 6cdc908..7ecba34 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3146,8 +3146,8 @@ dependencies = [ "rand 0.8.5", "ron", "serde", - "shared", "steamworks", + "vergen-gitcl", ] [[package]] @@ -5120,30 +5120,6 @@ dependencies = [ "serde", ] -[[package]] -name = "server" -version = "0.1.0" -dependencies = [ - "avian3d", - "bevy", - "bevy-inspector-egui", - "bevy-steamworks", - "bevy-ui-gradients", - "bevy_asset_loader", - "bevy_ballistic", - "bevy_common_assets", - "bevy_debug_log", - "bevy_sprite3d", - "bevy_trenchbroom", - "happy_feet", - "nil 0.14.0", - "rand 0.8.5", - "ron", - "serde", - "shared", - "steamworks", -] - [[package]] name = "sharded-slab" version = "0.1.7" @@ -5153,30 +5129,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shared" -version = "0.1.0" -dependencies = [ - "avian3d", - "bevy", - "bevy-inspector-egui", - "bevy-steamworks", - "bevy-ui-gradients", - "bevy_asset_loader", - "bevy_ballistic", - "bevy_common_assets", - "bevy_debug_log", - "bevy_sprite3d", - "bevy_trenchbroom", - "happy_feet", - "nil 0.14.0", - "rand 0.8.5", - "ron", - "serde", - "steamworks", - "vergen-gitcl", -] - [[package]] name = "shlex" version = "1.3.0" diff --git a/Cargo.toml b/Cargo.toml index 5389598..c014ca7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,9 +1,16 @@ +[package] +name = "hedz_reloaded" +version = "0.1.0" +edition = "2024" +build = "build.rs" -[workspace] -resolver = "3" -members = ["crates/*"] +[profile.dev.package."*"] +opt-level = 3 -[workspace.dependencies] +[features] +dbg = ["avian3d/debug-plugin", "dep:bevy-inspector-egui"] + +[dependencies] avian3d = { version = "0.3", default-features = false, features = [ "3d", "f32", @@ -14,24 +21,28 @@ avian3d = { version = "0.3", default-features = false, features = [ "parallel", ] } bevy = { version = "0.16.0", features = ["track_location"] } -bevy-inspector-egui = { version = "0.31" } -bevy-steamworks = "0.13.0" -bevy-ui-gradients = "0.4.0" -bevy_asset_loader = "0.23.0-rc.3" -bevy_ballistic = "0.4.0" -bevy_common_assets = { version = "0.13.0", features = ["ron"] } -bevy_debug_log = "0.6.0" -bevy_sprite3d = "5.0.0" bevy_trenchbroom = { version = "0.8.1", features = ["avian"] } -happy_feet = { git = "https://github.com/rustunit/happy_feet.git", rev = "ecfecc6243862bc2bc64dcadfd0efd21c766ab5b" } nil = "0.14.0" +bevy_asset_loader = "0.23.0-rc.3" +bevy_sprite3d = "5.0.0" rand = "=0.8.5" -ron = "0.8" -serde = { version = "1.0.219", features = ["derive"] } -shared = { path = "crates/shared" } +bevy-inspector-egui = { version = "0.31", optional = true } +bevy-steamworks = "0.13.0" steamworks = "0.11" -[profile.dev.package."*"] -opt-level = 3 +bevy_ballistic = "0.4.0" +bevy-ui-gradients = "0.4.0" +bevy_debug_log = "0.6.0" +bevy_common_assets = { version = "0.13.0", features = ["ron"] } +serde = { version = "1.0.219", features = ["derive"] } +ron = "0.8" +happy_feet = { git = "https://github.com/rustunit/happy_feet.git", rev = "ecfecc6243862bc2bc64dcadfd0efd21c766ab5b" } + +[build-dependencies] +vergen-gitcl = "1.0" + +[lints.clippy] +too_many_arguments = "allow" +type_complexity = "allow" [patch.crates-io] bevy-steamworks = { git = "https://github.com/HouraiTeahouse/bevy_steamworks.git", rev = "1933e5d" } diff --git a/crates/shared/build.rs b/build.rs similarity index 100% rename from crates/shared/build.rs rename to build.rs diff --git a/crates/client/Cargo.toml b/crates/client/Cargo.toml deleted file mode 100644 index ca3beec..0000000 --- a/crates/client/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "hedz_reloaded" -version = "0.1.0" -edition = "2024" - -[features] -dbg = ["avian3d/debug-plugin", "dep:bevy-inspector-egui", "shared/dbg"] - -[dependencies] -avian3d = { workspace = true } -bevy = { workspace = true } -bevy-inspector-egui = { workspace = true, optional = true } -bevy-steamworks = { workspace = true } -bevy-ui-gradients = { workspace = true } -bevy_asset_loader = { workspace = true } -bevy_ballistic = { workspace = true } -bevy_common_assets = { workspace = true } -bevy_debug_log = { workspace = true } -bevy_sprite3d = { workspace = true } -bevy_trenchbroom = { workspace = true } -happy_feet = { workspace = true } -nil = { workspace = true } -rand = { workspace = true } -ron = { workspace = true } -serde = { workspace = true } -shared = { workspace = true } -steamworks = { workspace = true } diff --git a/crates/client/src/main.rs b/crates/client/src/main.rs deleted file mode 100644 index 6b3ec2d..0000000 --- a/crates/client/src/main.rs +++ /dev/null @@ -1,275 +0,0 @@ -use crate::utils::{auto_rotate, explosions}; -use avian3d::prelude::*; -use bevy::{ - audio::{PlaybackMode, Volume}, - core_pipeline::tonemapping::Tonemapping, - prelude::*, - render::view::ColorGrading, -}; -use bevy_common_assets::ron::RonAssetPlugin; -use bevy_sprite3d::Sprite3dPlugin; -use bevy_steamworks::{Client, FriendFlags, SteamworksEvent, SteamworksPlugin}; -use bevy_trenchbroom::prelude::*; -use bevy_ui_gradients::UiGradientsPlugin; -use camera::MainCamera; -use heads_database::HeadDatabaseAsset; -use loading_assets::AudioAssets; -use shared::*; -use std::io::{Read, Write}; -use utils::{billboards, sprite_3d_animation, squish_animation, trail}; - -fn main() { - let mut app = App::new(); - - app.register_type::() - .register_type::(); - app.insert_resource(DebugVisuals { - unlit: false, - tonemapping: Tonemapping::None, - exposure: 1., - shadows: true, - cam_follow: true, - }); - - app.add_plugins( - DefaultPlugins - .set(WindowPlugin { - primary_window: Some(Window { - title: "HEDZ Reloaded".into(), - // resolution: (1024., 768.).into(), - ..default() - }), - ..default() - }) - .set(bevy::log::LogPlugin { - filter: "info".into(), - level: bevy::log::Level::INFO, - // provide custom log layer to receive logging events - custom_layer: bevy_debug_log::log_capture_layer, - }), - ); - - let app_id = 1603000; - // should only be done in production builds - #[cfg(not(debug_assertions))] - if steamworks::restart_app_if_necessary(app_id.into()) { - info!("Restarting app via steam"); - return; - } - - match SteamworksPlugin::init_app(app_id) { - Ok(plugin) => { - app.add_plugins(plugin); - } - Err(e) => { - warn!("steam init error: {e:?}"); - } - }; - - app.add_plugins( - bevy_debug_log::LogViewerPlugin::default() - .auto_open_threshold(bevy::log::tracing::level_filters::LevelFilter::OFF), - ); - app.add_plugins(PhysicsPlugins::default()); - app.add_plugins(Sprite3dPlugin); - app.add_plugins(TrenchBroomPlugins( - TrenchBroomConfig::new("hedz").icon(None), - )); - app.add_plugins(UiGradientsPlugin); - app.add_plugins(RonAssetPlugin::::new(&["headsdb.ron"])); - - #[cfg(feature = "dbg")] - { - app.add_plugins(bevy_inspector_egui::bevy_egui::EguiPlugin { - enable_multipass_for_primary_context: true, - }); - app.add_plugins(bevy_inspector_egui::quick::WorldInspectorPlugin::new()); - app.add_plugins(PhysicsDebugPlugin::default()); - - // app.add_plugins(bevy::pbr::wireframe::WireframePlugin) - // .insert_resource(bevy::pbr::wireframe::WireframeConfig { - // global: true, - // default_color: bevy::color::palettes::css::WHITE.into(), - // }); - } - - app.add_plugins(ai::plugin); - app.add_plugins(animation::plugin); - app.add_plugins(character::plugin); - app.add_plugins(cash::plugin); - app.add_plugins(player::plugin); - app.add_plugins(gates::plugin); - app.add_plugins(platforms::plugin); - app.add_plugins(movables::plugin); - app.add_plugins(billboards::plugin); - app.add_plugins(aim::plugin); - app.add_plugins(npc::plugin); - app.add_plugins(keys::plugin); - app.add_plugins(squish_animation::plugin); - app.add_plugins(cutscene::plugin); - app.add_plugins(control::plugin); - app.add_plugins(sounds::plugin); - app.add_plugins(camera::plugin); - app.add_plugins(backpack::plugin); - app.add_plugins(loading_assets::LoadingPlugin); - app.add_plugins(loading_map::plugin); - app.add_plugins(sprite_3d_animation::plugin); - app.add_plugins(abilities::plugin); - app.add_plugins(heads::plugin); - app.add_plugins(hitpoints::plugin); - app.add_plugins(cash_heal::plugin); - app.add_plugins(debug::plugin); - app.add_plugins(utils::observers::plugin); - app.add_plugins(water::plugin); - app.add_plugins(head_drop::plugin); - app.add_plugins(trail::plugin); - app.add_plugins(auto_rotate::plugin); - app.add_plugins(heal_effect::plugin); - app.add_plugins(tb_entities::plugin); - app.add_plugins(explosions::plugin); - - app.init_state::(); - - app.insert_resource(AmbientLight { - color: Color::WHITE, - brightness: 400., - ..Default::default() - }); - app.insert_resource(ClearColor(Color::BLACK)); - //TODO: let user control this - app.insert_resource(GlobalVolume::new(Volume::Linear(0.4))); - - app.add_systems( - Startup, - ( - write_trenchbroom_config, - (steam_system, steam_events) - .chain() - .run_if(resource_exists::), - ), - ); - app.add_systems(OnEnter(GameState::Playing), music); - app.add_systems(Update, (set_materials_unlit, set_tonemapping, set_shadows)); - - app.run(); -} - -fn steam_events(mut events: EventReader) { - for e in events.read() { - info!("steam ev: {:?}", e); - } -} - -fn steam_system(steam_client: Res) { - steam_client.matchmaking().request_lobby_list(|list| { - let Ok(list) = list else { return }; - - info!("lobby list: [{}]", list.len()); - for (i, l) in list.iter().enumerate() { - info!("lobby [{i}]: {:?}", l); - } - }); - - steam_client - .matchmaking() - .create_lobby( - steamworks::LobbyType::FriendsOnly, - 4, - |result| match result { - Ok(lobby_id) => { - info!("Created lobby with ID: {:?}", lobby_id); - } - Err(e) => error!("Failed to create lobby: {}", e), - }, - ); - - for friend in steam_client.friends().get_friends(FriendFlags::IMMEDIATE) { - info!( - "Steam Friend: {:?} - {}({:?})", - friend.id(), - friend.name(), - friend.state() - ); - } - - steam_client - .remote_storage() - .set_cloud_enabled_for_app(true); - let f = steam_client.remote_storage().file("hedz_data.dat"); - if f.exists() { - let mut buf = String::new(); - if let Err(e) = f.read().read_to_string(&mut buf) { - error!("File read error: {}", e); - } else { - info!("File content: {}", buf); - } - } else { - info!("File does not exist"); - - if let Err(e) = f.write().write_all(String::from("hello world").as_bytes()) { - error!("steam cloud error: {}", e); - } else { - info!("steam cloud saved"); - } - } -} - -fn music(assets: Res, mut commands: Commands) { - commands.spawn(( - Name::new("sfx-music"), - AudioPlayer::new(assets.music.clone()), - PlaybackSettings { - mode: PlaybackMode::Loop, - volume: Volume::Linear(0.6), - ..default() - }, - )); - - commands.spawn(( - Name::new("sfx-ambient"), - AudioPlayer::new(assets.ambient.clone()), - PlaybackSettings { - mode: PlaybackMode::Loop, - volume: Volume::Linear(0.8), - ..default() - }, - )); -} - -fn write_trenchbroom_config(server: Res, type_registry: Res) { - if let Err(e) = server - .config - .write_game_config("trenchbroom/hedz", &type_registry.read()) - { - warn!("Failed to write trenchbroom config: {}", e); - } -} - -fn set_tonemapping( - mut cams: Query<(&mut Tonemapping, &mut ColorGrading), With>, - visuals: Res, -) { - for (mut tm, mut color) in cams.iter_mut() { - *tm = visuals.tonemapping; - color.global.exposure = visuals.exposure; - } -} - -fn set_materials_unlit( - mut materials: ResMut>, - visuals: Res, -) { - if !materials.is_changed() { - return; - } - - for (_, material) in materials.iter_mut() { - material.unlit = visuals.unlit; - } -} - -fn set_shadows(mut lights: Query<&mut DirectionalLight>, visuals: Res) { - for mut l in lights.iter_mut() { - l.shadows_enabled = visuals.shadows; - } -} diff --git a/crates/server/Cargo.toml b/crates/server/Cargo.toml deleted file mode 100644 index 005f124..0000000 --- a/crates/server/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "server" -version = "0.1.0" -edition = "2024" - -[features] -dbg = ["avian3d/debug-plugin", "dep:bevy-inspector-egui", "shared/dbg"] - -[dependencies] -avian3d = { workspace = true } -bevy = { workspace = true } -bevy-inspector-egui = { workspace = true, optional = true } -bevy-steamworks = { workspace = true } -bevy-ui-gradients = { workspace = true } -bevy_asset_loader = { workspace = true } -bevy_ballistic = { workspace = true } -bevy_common_assets = { workspace = true } -bevy_debug_log = { workspace = true } -bevy_sprite3d = { workspace = true } -bevy_trenchbroom = { workspace = true } -happy_feet = { workspace = true } -nil = { workspace = true } -rand = { workspace = true } -ron = { workspace = true } -serde = { workspace = true } -shared = { workspace = true } -steamworks = { workspace = true } diff --git a/crates/shared/Cargo.toml b/crates/shared/Cargo.toml deleted file mode 100644 index 29a826e..0000000 --- a/crates/shared/Cargo.toml +++ /dev/null @@ -1,33 +0,0 @@ -[package] -name = "shared" -version = "0.1.0" -edition = "2024" - -[features] -dbg = [] - -[dependencies] -avian3d = { workspace = true } -bevy = { workspace = true } -bevy-inspector-egui = { workspace = true, optional = true } -bevy-steamworks = { workspace = true } -bevy-ui-gradients = { workspace = true } -bevy_asset_loader = { workspace = true } -bevy_ballistic = { workspace = true } -bevy_common_assets = { workspace = true } -bevy_debug_log = { workspace = true } -bevy_sprite3d = { workspace = true } -bevy_trenchbroom = { workspace = true } -happy_feet = { workspace = true } -nil = { workspace = true } -rand = { workspace = true } -ron = { workspace = true } -serde = { workspace = true } -steamworks = { workspace = true } - -[build-dependencies] -vergen-gitcl = "1.0" - -[lints.clippy] -too_many_arguments = "allow" -type_complexity = "allow" diff --git a/crates/shared/src/lib.rs b/crates/shared/src/lib.rs deleted file mode 100644 index b6a13b2..0000000 --- a/crates/shared/src/lib.rs +++ /dev/null @@ -1,52 +0,0 @@ -pub mod abilities; -pub mod ai; -pub mod aim; -pub mod animation; -pub mod backpack; -pub mod camera; -pub mod cash; -pub mod cash_heal; -pub mod character; -pub mod control; -pub mod cutscene; -pub mod debug; -pub mod gates; -pub mod head; -pub mod head_drop; -pub mod heads; -pub mod heads_database; -pub mod heal_effect; -pub mod hitpoints; -pub mod keys; -pub mod loading_assets; -pub mod loading_map; -pub mod movables; -pub mod npc; -pub mod physics_layers; -pub mod platforms; -pub mod player; -pub mod sounds; -pub mod tb_entities; -pub mod utils; -pub mod water; - -use bevy::{core_pipeline::tonemapping::Tonemapping, prelude::*}; -use utils::{billboards, squish_animation}; - -#[derive(Resource, Reflect, Debug)] -#[reflect(Resource)] -pub struct DebugVisuals { - pub unlit: bool, - pub tonemapping: Tonemapping, - pub exposure: f32, - pub shadows: bool, - pub cam_follow: bool, -} - -#[derive(States, Default, Clone, Eq, PartialEq, Debug, Hash)] -pub enum GameState { - #[default] - AssetLoading, - MapLoading, - Playing, -} diff --git a/justfile b/justfile index 0d287f8..3c2b5a1 100644 --- a/justfile +++ b/justfile @@ -5,14 +5,8 @@ tb_setup_mac: ln -s $(pwd)/trenchbroom/hedz/hedz.fgd "$HOME/Library/Application Support/TrenchBroom/games/hedz/hedz.fgd" | true ln -s $(pwd)/trenchbroom/hedz/GameConfig.cfg "$HOME/Library/Application Support/TrenchBroom/games/hedz/GameConfig.cfg" | true -run: - RUST_BACKTRACE=1 cargo r --bin client - dbg: - RUST_BACKTRACE=1 cargo r --bin client --features dbg - -dbg-server: - RUST_BACKTRACE=1 cargo r --bin server --features dbg + RUST_BACKTRACE=1 cargo r --features dbg check: cargo fmt --check diff --git a/crates/shared/src/abilities/arrow.rs b/src/abilities/arrow.rs similarity index 100% rename from crates/shared/src/abilities/arrow.rs rename to src/abilities/arrow.rs diff --git a/crates/shared/src/abilities/curver.rs b/src/abilities/curver.rs similarity index 100% rename from crates/shared/src/abilities/curver.rs rename to src/abilities/curver.rs diff --git a/crates/shared/src/abilities/gun.rs b/src/abilities/gun.rs similarity index 100% rename from crates/shared/src/abilities/gun.rs rename to src/abilities/gun.rs diff --git a/crates/shared/src/abilities/healing.rs b/src/abilities/healing.rs similarity index 100% rename from crates/shared/src/abilities/healing.rs rename to src/abilities/healing.rs diff --git a/crates/shared/src/abilities/missile.rs b/src/abilities/missile.rs similarity index 100% rename from crates/shared/src/abilities/missile.rs rename to src/abilities/missile.rs diff --git a/crates/shared/src/abilities/mod.rs b/src/abilities/mod.rs similarity index 100% rename from crates/shared/src/abilities/mod.rs rename to src/abilities/mod.rs diff --git a/crates/shared/src/abilities/thrown.rs b/src/abilities/thrown.rs similarity index 100% rename from crates/shared/src/abilities/thrown.rs rename to src/abilities/thrown.rs diff --git a/crates/shared/src/ai/mod.rs b/src/ai/mod.rs similarity index 100% rename from crates/shared/src/ai/mod.rs rename to src/ai/mod.rs diff --git a/crates/shared/src/aim/marker.rs b/src/aim/marker.rs similarity index 100% rename from crates/shared/src/aim/marker.rs rename to src/aim/marker.rs diff --git a/crates/shared/src/aim/mod.rs b/src/aim/mod.rs similarity index 100% rename from crates/shared/src/aim/mod.rs rename to src/aim/mod.rs diff --git a/crates/shared/src/aim/target_ui.rs b/src/aim/target_ui.rs similarity index 100% rename from crates/shared/src/aim/target_ui.rs rename to src/aim/target_ui.rs diff --git a/crates/shared/src/animation.rs b/src/animation.rs similarity index 100% rename from crates/shared/src/animation.rs rename to src/animation.rs diff --git a/crates/shared/src/backpack/backpack_ui.rs b/src/backpack/backpack_ui.rs similarity index 100% rename from crates/shared/src/backpack/backpack_ui.rs rename to src/backpack/backpack_ui.rs diff --git a/crates/shared/src/backpack/mod.rs b/src/backpack/mod.rs similarity index 100% rename from crates/shared/src/backpack/mod.rs rename to src/backpack/mod.rs diff --git a/crates/shared/src/backpack/ui_head_state.rs b/src/backpack/ui_head_state.rs similarity index 100% rename from crates/shared/src/backpack/ui_head_state.rs rename to src/backpack/ui_head_state.rs diff --git a/crates/shared/src/camera.rs b/src/camera.rs similarity index 100% rename from crates/shared/src/camera.rs rename to src/camera.rs diff --git a/crates/shared/src/cash.rs b/src/cash.rs similarity index 100% rename from crates/shared/src/cash.rs rename to src/cash.rs diff --git a/crates/shared/src/cash_heal.rs b/src/cash_heal.rs similarity index 100% rename from crates/shared/src/cash_heal.rs rename to src/cash_heal.rs diff --git a/crates/shared/src/character.rs b/src/character.rs similarity index 100% rename from crates/shared/src/character.rs rename to src/character.rs diff --git a/crates/shared/src/control/controller_common.rs b/src/control/controller_common.rs similarity index 100% rename from crates/shared/src/control/controller_common.rs rename to src/control/controller_common.rs diff --git a/crates/shared/src/control/controller_flying.rs b/src/control/controller_flying.rs similarity index 100% rename from crates/shared/src/control/controller_flying.rs rename to src/control/controller_flying.rs diff --git a/crates/shared/src/control/controller_running.rs b/src/control/controller_running.rs similarity index 100% rename from crates/shared/src/control/controller_running.rs rename to src/control/controller_running.rs diff --git a/crates/shared/src/control/controls.rs b/src/control/controls.rs similarity index 100% rename from crates/shared/src/control/controls.rs rename to src/control/controls.rs diff --git a/crates/shared/src/control/mod.rs b/src/control/mod.rs similarity index 100% rename from crates/shared/src/control/mod.rs rename to src/control/mod.rs diff --git a/crates/shared/src/cutscene.rs b/src/cutscene.rs similarity index 100% rename from crates/shared/src/cutscene.rs rename to src/cutscene.rs diff --git a/crates/shared/src/debug.rs b/src/debug.rs similarity index 100% rename from crates/shared/src/debug.rs rename to src/debug.rs diff --git a/crates/shared/src/gates.rs b/src/gates.rs similarity index 100% rename from crates/shared/src/gates.rs rename to src/gates.rs diff --git a/crates/shared/src/head.rs b/src/head.rs similarity index 100% rename from crates/shared/src/head.rs rename to src/head.rs diff --git a/crates/shared/src/head_drop.rs b/src/head_drop.rs similarity index 100% rename from crates/shared/src/head_drop.rs rename to src/head_drop.rs diff --git a/crates/shared/src/heads/heads_ui.rs b/src/heads/heads_ui.rs similarity index 100% rename from crates/shared/src/heads/heads_ui.rs rename to src/heads/heads_ui.rs diff --git a/crates/shared/src/heads/mod.rs b/src/heads/mod.rs similarity index 100% rename from crates/shared/src/heads/mod.rs rename to src/heads/mod.rs diff --git a/crates/shared/src/heads_database.rs b/src/heads_database.rs similarity index 100% rename from crates/shared/src/heads_database.rs rename to src/heads_database.rs diff --git a/crates/shared/src/heal_effect.rs b/src/heal_effect.rs similarity index 100% rename from crates/shared/src/heal_effect.rs rename to src/heal_effect.rs diff --git a/crates/shared/src/hitpoints.rs b/src/hitpoints.rs similarity index 100% rename from crates/shared/src/hitpoints.rs rename to src/hitpoints.rs diff --git a/crates/shared/src/keys.rs b/src/keys.rs similarity index 100% rename from crates/shared/src/keys.rs rename to src/keys.rs diff --git a/crates/shared/src/loading_assets.rs b/src/loading_assets.rs similarity index 100% rename from crates/shared/src/loading_assets.rs rename to src/loading_assets.rs diff --git a/crates/shared/src/loading_map.rs b/src/loading_map.rs similarity index 100% rename from crates/shared/src/loading_map.rs rename to src/loading_map.rs diff --git a/crates/server/src/main.rs b/src/main.rs similarity index 91% rename from crates/server/src/main.rs rename to src/main.rs index 6b3ec2d..4a59730 100644 --- a/crates/server/src/main.rs +++ b/src/main.rs @@ -1,3 +1,35 @@ +mod abilities; +mod ai; +mod aim; +mod animation; +mod backpack; +mod camera; +mod cash; +mod cash_heal; +mod character; +mod control; +mod cutscene; +mod debug; +mod gates; +mod head; +mod head_drop; +mod heads; +mod heads_database; +mod heal_effect; +mod hitpoints; +mod keys; +mod loading_assets; +mod loading_map; +mod movables; +mod npc; +mod physics_layers; +mod platforms; +mod player; +mod sounds; +mod tb_entities; +mod utils; +mod water; + use crate::utils::{auto_rotate, explosions}; use avian3d::prelude::*; use bevy::{ @@ -14,10 +46,27 @@ use bevy_ui_gradients::UiGradientsPlugin; use camera::MainCamera; use heads_database::HeadDatabaseAsset; use loading_assets::AudioAssets; -use shared::*; use std::io::{Read, Write}; use utils::{billboards, sprite_3d_animation, squish_animation, trail}; +#[derive(Resource, Reflect, Debug)] +#[reflect(Resource)] +struct DebugVisuals { + pub unlit: bool, + pub tonemapping: Tonemapping, + pub exposure: f32, + pub shadows: bool, + pub cam_follow: bool, +} + +#[derive(States, Default, Clone, Eq, PartialEq, Debug, Hash)] +enum GameState { + #[default] + AssetLoading, + MapLoading, + Playing, +} + fn main() { let mut app = App::new(); diff --git a/crates/shared/src/movables.rs b/src/movables.rs similarity index 100% rename from crates/shared/src/movables.rs rename to src/movables.rs diff --git a/crates/shared/src/npc.rs b/src/npc.rs similarity index 100% rename from crates/shared/src/npc.rs rename to src/npc.rs diff --git a/crates/shared/src/physics_layers.rs b/src/physics_layers.rs similarity index 100% rename from crates/shared/src/physics_layers.rs rename to src/physics_layers.rs diff --git a/crates/shared/src/platforms.rs b/src/platforms.rs similarity index 100% rename from crates/shared/src/platforms.rs rename to src/platforms.rs diff --git a/crates/shared/src/player.rs b/src/player.rs similarity index 100% rename from crates/shared/src/player.rs rename to src/player.rs diff --git a/crates/shared/src/sounds.rs b/src/sounds.rs similarity index 95% rename from crates/shared/src/sounds.rs rename to src/sounds.rs index 3e14c63..8db87d4 100644 --- a/crates/shared/src/sounds.rs +++ b/src/sounds.rs @@ -70,11 +70,11 @@ fn on_spawn_sounds( } } PlaySound::Head(name) => { - let filename = format!("{name}.ogg"); + let filename = format!("{}.ogg", name); assets .head .get(filename.as_str()) - .unwrap_or_else(|| panic!("invalid head '{filename}'")) + .unwrap_or_else(|| panic!("invalid head '{}'", filename)) .clone() } }; diff --git a/crates/shared/src/tb_entities.rs b/src/tb_entities.rs similarity index 99% rename from crates/shared/src/tb_entities.rs rename to src/tb_entities.rs index 13990a6..1817aa0 100644 --- a/crates/shared/src/tb_entities.rs +++ b/src/tb_entities.rs @@ -141,7 +141,7 @@ impl EnemySpawn { world.commands().entity(entity).insert(( this_transform, - Name::from(format!("enemy [{head}]")), + Name::from(format!("enemy [{}]", head)), Visibility::default(), RigidBody::Dynamic, Collider::capsule(0.6, 2.), diff --git a/crates/shared/src/utils/auto_rotate.rs b/src/utils/auto_rotate.rs similarity index 100% rename from crates/shared/src/utils/auto_rotate.rs rename to src/utils/auto_rotate.rs diff --git a/crates/shared/src/utils/billboards.rs b/src/utils/billboards.rs similarity index 100% rename from crates/shared/src/utils/billboards.rs rename to src/utils/billboards.rs diff --git a/crates/shared/src/utils/explosions.rs b/src/utils/explosions.rs similarity index 100% rename from crates/shared/src/utils/explosions.rs rename to src/utils/explosions.rs diff --git a/crates/shared/src/utils/mod.rs b/src/utils/mod.rs similarity index 100% rename from crates/shared/src/utils/mod.rs rename to src/utils/mod.rs diff --git a/crates/shared/src/utils/observers.rs b/src/utils/observers.rs similarity index 100% rename from crates/shared/src/utils/observers.rs rename to src/utils/observers.rs diff --git a/crates/shared/src/utils/sprite_3d_animation.rs b/src/utils/sprite_3d_animation.rs similarity index 100% rename from crates/shared/src/utils/sprite_3d_animation.rs rename to src/utils/sprite_3d_animation.rs diff --git a/crates/shared/src/utils/squish_animation.rs b/src/utils/squish_animation.rs similarity index 100% rename from crates/shared/src/utils/squish_animation.rs rename to src/utils/squish_animation.rs diff --git a/crates/shared/src/utils/trail.rs b/src/utils/trail.rs similarity index 100% rename from crates/shared/src/utils/trail.rs rename to src/utils/trail.rs diff --git a/crates/shared/src/water.rs b/src/water.rs similarity index 100% rename from crates/shared/src/water.rs rename to src/water.rs