2021-04-11 20:13:07 +00:00
|
|
|
use bevy_math::Vec2;
|
|
|
|
use bevy_reflect::{Reflect, ReflectDeserialize, TypeUuid};
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
|
|
|
|
#[derive(Debug, Default, Clone, TypeUuid, Reflect)]
|
|
|
|
#[uuid = "7233c597-ccfa-411f-bd59-9af349432ada"]
|
|
|
|
#[repr(C)]
|
|
|
|
pub struct Sprite {
|
|
|
|
pub size: Vec2,
|
|
|
|
pub flip_x: bool,
|
|
|
|
pub flip_y: bool,
|
|
|
|
pub resize_mode: SpriteResizeMode,
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Determines how `Sprite` resize should be handled
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize, Reflect)]
|
|
|
|
#[reflect_value(PartialEq, Serialize, Deserialize)]
|
|
|
|
pub enum SpriteResizeMode {
|
|
|
|
Manual,
|
|
|
|
Automatic,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Default for SpriteResizeMode {
|
|
|
|
fn default() -> Self {
|
|
|
|
SpriteResizeMode::Automatic
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Sprite {
|
|
|
|
/// Creates new `Sprite` with `SpriteResizeMode::Manual` value for `resize_mode`
|
|
|
|
pub fn new(size: Vec2) -> Self {
|
|
|
|
Self {
|
|
|
|
size,
|
|
|
|
resize_mode: SpriteResizeMode::Manual,
|
|
|
|
flip_x: false,
|
|
|
|
flip_y: false,
|
|
|
|
}
|
|
|
|
}
|
2021-05-30 22:54:48 +00:00
|
|
|
}
|