use bevy::asset::Asset;
use bevy::prelude::{Bundle, Component, Transform, TypePath};
use bevy_rapier2d::prelude::{AdditionalMassProperties, Collider, ReadMassProperties, RigidBody};
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Asset, TypePath, Component, Serialize, Clone, Debug)]
#[require(ReadMassProperties, RigidBody::Fixed)]
pub struct Planet {
pub name: String,
pub sprite: String,
pub radius: f32,
pub mass: f32,
pub default_transform: [f32; 3],
}
#[derive(Bundle)]
pub struct PlanetBundle {
pub planet: Planet,
pub transform: Transform,
pub collider: Collider,
pub additional_mass_properties: AdditionalMassProperties,
}
#[derive(Deserialize, Asset, TypePath)]
pub struct PlanetConfigCollection {
pub planets: Vec<Planet>,
}