preperation for usage of grid_to_absolute_position

This commit is contained in:
2025-12-16 15:08:59 +08:00
parent df934afefa
commit c3268cf298
12 changed files with 162 additions and 97 deletions

View File

@@ -3,9 +3,44 @@ use ts_rs::TS;
use crate::remotes::{friends::FriendshipResponseDto, user::UserProfile};
#[derive(Serialize, Deserialize, Clone, Debug, TS)]
#[ts(export)]
pub struct DisplayData {
pub screen_width: i32,
pub screen_height: i32,
pub monitor_scale_factor: f64,
}
impl Default for DisplayData {
fn default() -> Self {
Self {
screen_width: 0,
screen_height: 0,
monitor_scale_factor: 1.0,
}
}
}
#[derive(Serialize, Deserialize, Clone, Debug, TS)]
#[ts(export)]
pub struct SceneData {
pub display: DisplayData,
pub grid_size: i32,
}
impl Default for SceneData {
fn default() -> Self {
Self {
display: DisplayData::default(),
grid_size: 600,
}
}
}
#[derive(Default, Serialize, Deserialize, Clone, Debug, TS)]
#[ts(export)]
pub struct AppData {
pub user: Option<UserProfile>,
pub friends: Option<Vec<FriendshipResponseDto>>,
pub scene: SceneData,
}