#![warn(clippy::pedantic)]
#![deny(
clippy::allow_attributes_without_reason,
clippy::assertions_on_result_states
)]
#![warn(clippy::if_then_some_else_none)]
#![allow(clippy::type_complexity, reason = "Bevy makes this a nightmare")]
#![allow(clippy::needless_pass_by_value, reason = "Bevy makes this a nightmare")]
#![allow(
clippy::cast_precision_loss,
clippy::cast_possible_truncation,
clippy::cast_sign_loss,
reason = "We cast ints to floats a lot"
)]
#![allow(clippy::missing_panics_doc, reason = "Gamedev! We panic a lot")]
#![allow(clippy::too_many_arguments, reason = "Le Bevy:tm:")]
#![allow(clippy::too_many_lines, reason = "With the three of us, this is impossible")]
pub mod attachment;
pub mod client;
pub mod client_plugins;
pub mod config;
pub mod ecs;
pub mod server;
pub mod server_plugins;
pub mod shared_plugins;
pub mod world_config;
pub mod physics;
pub mod prelude;
#[cfg(target_arch = "wasm32")]
pub mod wasm_entrypoint;
mod cli;
mod thrust;
use std::str::FromStr;
#[cfg(target_arch = "wasm32")]
pub use wasm_entrypoint::*;
use crate::cli::StkArgs;
use crate::client_plugins::ClientPluginGroup;
use crate::prelude::*;
use crate::server_plugins::ServerPluginGroup;
fn run(cli: StkArgs) -> AppExit {
let mut app = App::new();
match cli {
StkArgs::Play => {
app.add_plugins(
DefaultPlugins.build()
.disable::<bevy::log::LogPlugin>()
.disable::<bevy::ui::UiPlugin>()
);
app.add_plugins(shared_plugins::SharedPluginGroup);
app.add_plugins(ServerPluginGroup);
app.add_plugins(ClientPluginGroup);
}
}
app.run()
}
#[cfg(feature = "wasm")]
fn main() {
// noop on webassembly
}
#[cfg(feature = "native")]
fn main() -> AppExit {
use tracing_subscriber::util::SubscriberInitExt;
use bevy::log::tracing_subscriber;
let cli = crate::cli::parse_args();
tracing_subscriber::fmt()
.with_env_filter(
tracing_subscriber::EnvFilter::from_default_env()
.add_directive(tracing_subscriber::filter::Directive::from_str("naga=error").unwrap())
.add_directive(tracing_subscriber::filter::Directive::from_str("info").unwrap())
.add_directive(tracing_subscriber::filter::Directive::from_str("starkingdoms=trace").unwrap()),
)
.finish()
.init();
run(cli)
}