fix resources

This commit is contained in:
amizing25
2024-04-17 06:47:34 +07:00
parent 644dd4b400
commit 0e2ef6ce2d
6 changed files with 370 additions and 304 deletions
+76 -22
View File
@@ -10,13 +10,14 @@ pub struct LevelGroup {
pub group_guid: String,
#[serde(default)]
#[serde(rename = "LoadSide")]
pub load_side: String,
pub load_side: LoadSide,
#[serde(default)]
#[serde(rename = "LoadOnInitial")]
pub load_on_initial: bool,
// #[serde(rename = "AnchorList")]
// pub anchor_list: Vec<LevelAnchor>,
#[serde(default)]
#[serde(rename = "AnchorList")]
pub anchor_list: Vec<LevelAnchor>,
#[serde(default)]
#[serde(rename = "MonsterList")]
pub monster_list: Vec<LevelMonster>,
@@ -32,7 +33,7 @@ pub struct LevelGroup {
#[serde(rename_all = "camelCase")]
pub struct LevelProp {
#[serde(rename = "ID")]
pub id: i64,
pub id: u32, // need
#[serde(default)]
#[serde(rename = "Category")]
pub category: String,
@@ -41,27 +42,30 @@ pub struct LevelProp {
pub group_name: String,
#[serde(default)]
#[serde(rename = "LoadSide")]
pub load_side: String,
pub load_side: Option<LoadSide>, // need
#[serde(default)]
#[serde(rename = "PosX")]
pub pos_x: f64,
pub pos_x: f64, // n
#[serde(default)]
#[serde(rename = "PosY")]
pub pos_y: f64,
pub pos_y: f64, // n
#[serde(default)]
#[serde(rename = "PosZ")]
pub pos_z: f64,
pub pos_z: f64, // n
#[serde(default)]
#[serde(rename = "RotY")]
pub rot_y: f64,
pub rot_y: f64, // n
#[serde(rename = "PropID")]
pub prop_id: u32,
pub prop_id: u32, // n
#[serde(rename = "AnchorID")]
pub anchor_id: Option<u32>,
pub anchor_id: Option<u32>, // n
#[serde(rename = "AnchorGroupID")]
pub anchor_group_id: Option<u32>,
pub anchor_group_id: Option<u32>, // n
#[serde(rename = "MappingInfoID")]
pub mapping_info_id: Option<u32>,
pub mapping_info_id: Option<u32>, // n
#[serde(rename = "InitLevelGraph")]
pub init_level_graph: Option<String>,
#[serde(default)]
#[serde(rename = "State")]
@@ -73,17 +77,24 @@ pub struct LevelProp {
pub group_id: u32,
#[serde(rename = "IsDelete")]
#[serde(default)]
pub is_delete: bool,
pub is_delete: bool, // n
#[serde(rename = "IsClientOnly")]
#[serde(default)]
pub client_only: bool,
pub client_only: bool, // n
// #[serde(default)]
// pub is_door: bool,
// #[serde(default)]
// pub is_chest: bool,
#[serde(default)]
pub __test_field: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LevelAnchor {
#[serde(rename = "ID")]
pub id: i64,
pub id: u32,
#[serde(default)]
#[serde(rename = "PosX")]
pub pos_x: f64,
@@ -104,7 +115,7 @@ pub struct LevelAnchor {
#[serde(rename_all = "camelCase")]
pub struct LevelNPC {
#[serde(rename = "ID")]
pub id: i64,
pub id: u32,
#[serde(default)]
#[serde(rename = "PosX")]
pub pos_x: f64,
@@ -120,16 +131,22 @@ pub struct LevelNPC {
#[serde(rename = "RotY")]
pub rot_y: f64,
#[serde(rename = "NPCID")]
pub npcid: i64,
pub npcid: u32,
#[serde(default)]
pub group_id: u32,
#[serde(rename = "IsDelete")]
#[serde(default)]
pub is_delete: bool,
#[serde(rename = "IsClientOnly")]
#[serde(default)]
pub client_only: bool,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LevelMonster {
#[serde(rename = "ID")]
pub id: i64,
pub id: u32,
#[serde(default)]
#[serde(rename = "RotY")]
pub rot_y: f64,
@@ -143,12 +160,44 @@ pub struct LevelMonster {
#[serde(rename = "PosZ")]
pub pos_z: f64,
#[serde(rename = "NPCMonsterID")]
pub npcmonster_id: i64,
pub npcmonster_id: u32,
#[serde(default)]
#[serde(rename = "EventID")]
pub event_id: i64,
pub event_id: u32,
#[serde(default)]
pub group_id: u32,
#[serde(rename = "IsDelete")]
#[serde(default)]
pub is_delete: bool,
#[serde(rename = "IsClientOnly")]
#[serde(default)]
pub client_only: bool,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Copy)]
pub enum LoadSide {
Client = 0,
Server = 1,
Unk = 2,
}
impl Default for LoadSide {
fn default() -> Self {
Self::Client
}
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LevelFloor {
#[serde(rename = "FloorID")]
pub floor_id: u32,
#[serde(rename = "FloorName")]
pub floor_name: String,
#[serde(rename = "StartGroupID")]
pub start_group_id: u32,
#[serde(rename = "StartAnchorID")]
pub start_anchor_id: u32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
@@ -272,10 +321,14 @@ pub type StringMap<T> = HashMap<String, T>;
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SimpleLevelGroup {
pub teleports: IntMap<LevelProp>,
pub group_items: IntMap<LevelGroupItem>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct LevelGroupItem {
pub props: Vec<LevelProp>,
pub npcs: Vec<LevelNPC>,
pub monsters: Vec<LevelMonster>,
pub group_ids: Vec<u32>,
pub anchors: HashMap<u32, LevelAnchor>,
}
#[derive(Debug, Serialize, Deserialize)]
@@ -285,6 +338,7 @@ pub struct GameResources {
pub level_group: StringMap<SimpleLevelGroup>,
pub maze_prop: IntMap<MazeProp>,
pub maze_plane: IntMap<MazePlane>,
pub level_floor: StringMap<LevelFloor>,
}
impl GameResources {