Compare commits
No commits in common. "b1254d9029e9c2f7569f80c1f46d7ac7241860c5" and "4ecacb73adbd6444e8f9660cba6f45280e1a2356" have entirely different histories.
b1254d9029
...
4ecacb73ad
|
@ -38,5 +38,6 @@ maze_generator = "2"
|
|||
once_cell = "1"
|
||||
pathfinding = "4"
|
||||
rand = "0.8"
|
||||
sentry = "0.29"
|
||||
serde = "1"
|
||||
shadowcast = "0.8"
|
24
src/error.rs
24
src/error.rs
|
@ -4,6 +4,9 @@ use std::{panic, thread};
|
|||
use backtrace::Backtrace;
|
||||
use bevy::prelude::*;
|
||||
|
||||
#[derive(Resource)]
|
||||
struct Guard(sentry::ClientInitGuard);
|
||||
|
||||
pub fn error_handler(In(result): In<Result<(), Box<dyn Error>>>) {
|
||||
if let Err(e) = result {
|
||||
error!("{}", e);
|
||||
|
@ -44,10 +47,29 @@ fn init_panic_handler() {
|
|||
}));
|
||||
}
|
||||
|
||||
#[derive(Resource, Clone, Debug, Default)]
|
||||
pub struct ErrorConfig {
|
||||
pub sentry_dsn: Option<String>,
|
||||
pub version: Option<String>,
|
||||
}
|
||||
|
||||
pub struct ErrorPlugin;
|
||||
|
||||
impl Plugin for ErrorPlugin {
|
||||
fn build(&self, _app: &mut App) {
|
||||
fn build(&self, app: &mut App) {
|
||||
init_panic_handler();
|
||||
if let Some(config) = app.world.get_resource::<ErrorConfig>() {
|
||||
if let Some(dsn) = &config.sentry_dsn {
|
||||
let release = config.version.clone().unwrap_or_default();
|
||||
let guard = sentry::init((
|
||||
dsn.as_str(),
|
||||
sentry::ClientOptions {
|
||||
release: Some(release.into()),
|
||||
..default()
|
||||
},
|
||||
));
|
||||
app.insert_resource(Guard(guard));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ pub enum NavigationAction {
|
|||
SnapRight,
|
||||
SnapCardinal,
|
||||
SnapReverse,
|
||||
Sprint,
|
||||
}
|
||||
|
||||
#[derive(Component, Clone, Copy, Debug, Deref, DerefMut, Reflect)]
|
||||
|
@ -77,6 +78,7 @@ fn movement_controls<State>(
|
|||
for (entity, mut actions, mut velocity, mut speed, max_speed, rotation_speed, transform) in
|
||||
&mut query
|
||||
{
|
||||
let sprinting = actions.pressed(NavigationAction::Sprint);
|
||||
let mut cleanup = false;
|
||||
if actions.pressed(NavigationAction::Move) {
|
||||
if let Some(pair) = actions.clamped_axis_pair(NavigationAction::Move) {
|
||||
|
@ -98,7 +100,11 @@ fn movement_controls<State>(
|
|||
} else {
|
||||
forward_backward_movement_factor
|
||||
};
|
||||
let mut s = **max_speed;
|
||||
let mut s = if sprinting {
|
||||
**max_speed
|
||||
} else {
|
||||
**max_speed / config.sprint_movement_factor
|
||||
};
|
||||
s *= movement_factor;
|
||||
**speed = s;
|
||||
let mut v = direction * **speed;
|
||||
|
@ -334,6 +340,7 @@ pub struct NavigationPlugin<State> {
|
|||
pub forward_movement_factor: f32,
|
||||
pub backward_movement_factor: f32,
|
||||
pub strafe_movement_factor: f32,
|
||||
pub sprint_movement_factor: f32,
|
||||
pub states: Vec<State>,
|
||||
pub describe_undescribed_areas: bool,
|
||||
pub log_area_descriptions: bool,
|
||||
|
@ -345,6 +352,7 @@ impl<State> Default for NavigationPlugin<State> {
|
|||
forward_movement_factor: 1.,
|
||||
backward_movement_factor: 1.,
|
||||
strafe_movement_factor: 1.,
|
||||
sprint_movement_factor: 3.,
|
||||
states: vec![],
|
||||
describe_undescribed_areas: false,
|
||||
log_area_descriptions: true,
|
||||
|
|
Loading…
Reference in New Issue
Block a user