checkpoint

This commit is contained in:
Joe Ardent 2025-01-25 17:36:01 -08:00
parent 0592ae588a
commit 180070c5af
3 changed files with 25 additions and 7 deletions

View file

@ -100,7 +100,7 @@ pub(super) fn apply_inputs(
// steering
let mut steering = steering.single_mut();
let angle = yaw_to_angle(input.yaw);
let angle = if angle.is_normal() { angle } else { 0.0 };
let angle = if angle.is_normal() { -angle } else { 0.0 };
let limit = AngleLimit::new(angle - 0.01, angle + 0.01);
steering.angle_limit = Some(limit);
}

View file

@ -1,4 +1,8 @@
use avian3d::prelude::*;
use avian3d::prelude::{
AngularDamping, AngularVelocity, CoefficientCombine, Collider, ColliderDensity,
CollisionLayers, ExternalTorque, Friction, LinearDamping, LinearVelocity, Restitution,
RigidBody, SleepingDisabled,
};
use bevy::{
core::Name,
prelude::{AssetServer, BuildChildren, Commands, Quat, Res, SpatialBundle, Transform, Vec3},

View file

@ -1,5 +1,14 @@
use avian3d::{math::FRAC_PI_2, prelude::*};
use bevy::prelude::*;
use avian3d::{
math::FRAC_PI_2,
prelude::{
Collider, ColliderDensity, CollisionLayers, CollisionMargin, ExternalTorque, FixedJoint,
Friction, Joint, MassPropertiesBundle, Restitution, RevoluteJoint, RigidBody, SweptCcd,
},
};
use bevy::prelude::{
AlphaMode, Assets, Color, Commands, Entity, Mesh, Name, PbrBundle, Quat, ResMut, Sphere,
StandardMaterial, Torus, Transform, Vec3,
};
use super::{CyberSteering, CyberWheel, Meshterial, WheelConfig};
use crate::ColliderGroups;
@ -50,6 +59,7 @@ pub fn spawn_wheels(
mesh.clone(),
collider.clone(),
conf,
steering.is_some(),
);
if let Some(steering) = steering {
@ -75,6 +85,7 @@ fn wheels_helper(
tire_mesh: Mesh,
collider: Collider,
conf: &WheelConfig,
is_front: bool,
) -> Entity {
let wheel_material = &StandardMaterial {
base_color: Color::srgb(0.01, 0.01, 0.01),
@ -83,14 +94,17 @@ fn wheels_helper(
..Default::default()
};
let pos_name = if is_front { "front" } else { "rear" };
let xform = Transform::from_translation(position);
let hub_mesh: Mesh = Sphere::new(0.1).into();
let hub = commands
.spawn((
Name::new("hub"),
Name::new(format!("{pos_name} hub")),
RigidBody::Dynamic,
MassPropertiesBundle::new_computed(&Collider::sphere(0.1), 200.0),
MassPropertiesBundle::new_computed(&Collider::sphere(0.1), 1000.0),
CollisionLayers::NONE,
PbrBundle {
mesh: meshes.add(hub_mesh),
material: materials.add(wheel_material.clone()),
@ -102,7 +116,7 @@ fn wheels_helper(
let tire = commands
.spawn((
Name::new("tire"),
Name::new(format!("{pos_name} tire")),
PbrBundle {
mesh: meshes.add(tire_mesh),
material: materials.add(wheel_material.clone()),