use super::deserialize_path;
use crate::{default_scale, default_scale3, Vec2, Vec3};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SpriteMaterial {
#[serde(rename = "$basetexture", deserialize_with = "deserialize_path")]
pub base_texture: String,
#[serde(rename = "$surfaceprop", default)]
pub surface_prop: Option<String>,
#[serde(rename = "$spriteorientation", default)]
pub sprite_orientation: SpriteOrientation,
#[serde(rename = "$spriteorigin", default)]
pub sprite_origin: Vec2,
#[serde(rename = "$color", default = "default_scale3")]
pub color: Vec3,
#[serde(rename = "$alpha", default = "default_scale")]
pub alpha: f32,
#[serde(rename = "$alphatest", default)]
pub alpha_test: bool,
#[serde(rename = "$alphatestreference", default = "default_scale")]
pub alpha_test_reference: f32,
#[serde(rename = "$translucent", default)]
pub translucent: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "snake_case")]
pub enum SpriteOrientation {
ParallelUpright,
#[default]
VpParallel,
Oriented,
VpParallelOriented,
}