paiagram/vehicles/
services.rs

1use bevy::prelude::*;
2use egui::{Color32, Stroke};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Component)]
6#[require(Name)]
7pub struct VehicleService {
8    pub class: Option<Entity>,
9}
10
11#[derive(Debug, Serialize, Deserialize)]
12pub enum StrokeStyle {
13    Filled,
14    Dotted { spacing: f32, radius: f32 },
15    Dashed { dash_length: f32, gap_length: f32 },
16}
17
18#[derive(Debug, Component, Serialize, Deserialize)]
19#[require(Name)]
20pub struct VehicleClass {
21    pub stroke: (Stroke, StrokeStyle),
22}
23
24impl Default for VehicleClass {
25    fn default() -> Self {
26        Self {
27            stroke: (
28                Stroke {
29                    width: 1.0,
30                    color: Color32::GRAY,
31                },
32                StrokeStyle::Filled,
33            ),
34        }
35    }
36}