17 lines
645 B
Rust
17 lines
645 B
Rust
|
|
use bevy::prelude::*;
|
||
|
|
|
||
|
|
#[derive(Component)]
|
||
|
|
pub struct Track{
|
||
|
|
pub start_point: Vec2,
|
||
|
|
pub start_direction: Vec2, // будет нормализовано при построении
|
||
|
|
pub segments: Vec<PathSegment>,
|
||
|
|
}
|
||
|
|
|
||
|
|
// линия всегда строится от точки старта по направлению
|
||
|
|
// направление изменяется сегментами поворота
|
||
|
|
// left при истине - поворот против часовой стрелки, ложь - по часовой
|
||
|
|
#[derive(Clone, Copy)]
|
||
|
|
pub enum PathSegment{
|
||
|
|
Line { length: f32 },
|
||
|
|
Turn { radius: f32, left: bool },
|
||
|
|
}
|