Compare commits

..

No commits in common. "cacb322fac7347c9f4353c2cc3512ef0553dd3db" and "0592ae588a1e1c36ebdbe4dea4e4aff19364ca05" have entirely different histories.

5 changed files with 752 additions and 1369 deletions

2081
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,13 +1,13 @@
[package] [package]
name = "cyber_rider" name = "cyber_rider"
version = "0.1.0" version = "0.1.0"
edition = "2024" edition = "2021"
[dependencies] [dependencies]
rand = "0.8" rand = "0.8"
# bevy_polyline = "0.4" # bevy_polyline = "0.4"
noise = "0.9" noise = "0.9"
hexasphere = "15" hexasphere = "14"
#wgpu = "0.20" #wgpu = "0.20"
# bevy-inspector-egui = "0.18" # bevy-inspector-egui = "0.18"
@ -15,13 +15,13 @@ hexasphere = "15"
inspector = [] inspector = []
[dependencies.bevy] [dependencies.bevy]
version = "0.15" version = "0.14"
default-features = true default-features = true
features = ["bevy_dev_tools"] features = ["bevy_dev_tools"]
[dependencies.avian3d] [dependencies.avian3d]
default-features = false default-features = false
version = "0.2" version = "0.1"
features = ["3d", "f32", "parry-f32", "debug-plugin", "default-collider", "collider-from-mesh"] features = ["3d", "f32", "parry-f32", "debug-plugin", "default-collider", "collider-from-mesh"]
# Maybe also enable only a small amount of optimization for our code: # Maybe also enable only a small amount of optimization for our code:

View file

@ -100,7 +100,7 @@ pub(super) fn apply_inputs(
// steering // steering
let mut steering = steering.single_mut(); let mut steering = steering.single_mut();
let angle = yaw_to_angle(input.yaw); 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); let limit = AngleLimit::new(angle - 0.01, angle + 0.01);
steering.angle_limit = Some(limit); steering.angle_limit = Some(limit);
} }

View file

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

View file

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