mirror of
https://github.com/lcdr/lu_packets.git
synced 2026-05-05 18:00:05 -05:00
Add support for character serialization
This commit is contained in:
@@ -12,7 +12,7 @@ use lu_packets::{
|
||||
ComponentConstruction, ComponentSerialization, ReplicaContext,
|
||||
bbb::BbbConstruction,
|
||||
buff::BuffConstruction,
|
||||
character::CharacterConstruction,
|
||||
character::{CharacterConstruction, CharacterSerialization},
|
||||
controllable_physics::{ControllablePhysicsConstruction, ControllablePhysicsSerialization},
|
||||
destroyable::{DestroyableConstruction, DestroyableSerialization},
|
||||
fx::FxConstruction,
|
||||
@@ -79,6 +79,7 @@ impl ReplicaContext for PlayerContext<'_> {
|
||||
|x| Ok(Box::new(PossessionControlSerialization::deserialize(x)?)),
|
||||
|x| Ok(Box::new(LevelProgressionSerialization::deserialize(x)?)),
|
||||
|x| Ok(Box::new(PlayerForcedMovementSerialization::deserialize(x)?)),
|
||||
|x| Ok(Box::new(CharacterSerialization::deserialize(x)?)),
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use endio_bit::{BEBitReader, BEBitWriter};
|
||||
use lu_packets_derive::{BitVariantTests, ReplicaSerde};
|
||||
|
||||
use crate::common::{LuVarWString, ObjId};
|
||||
use super::ComponentConstruction;
|
||||
use super::{ComponentConstruction, ComponentSerialization};
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
pub enum TransitionState {
|
||||
@@ -119,8 +119,21 @@ pub struct CharacterConstruction {
|
||||
pub social_info: Option<SocialInfo>,
|
||||
}
|
||||
|
||||
#[derive(BitVariantTests, Debug, PartialEq, ReplicaSerde)]
|
||||
pub struct CharacterSerialization {
|
||||
pub gm_pvp_info: Option<GmPvpInfo>,
|
||||
pub current_activity: Option<GameActivity>,
|
||||
pub social_info: Option<SocialInfo>,
|
||||
}
|
||||
|
||||
impl ComponentConstruction for CharacterConstruction {
|
||||
fn ser(&self, writer: &mut BEBitWriter<Vec<u8>>) -> Res<()> {
|
||||
self.serialize(writer)
|
||||
}
|
||||
}
|
||||
|
||||
impl ComponentSerialization for CharacterSerialization {
|
||||
fn ser(&self, writer: &mut BEBitWriter<Vec<u8>>) -> Res<()> {
|
||||
self.serialize(writer)
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
CharacterSerialization {
|
||||
gm_pvp_info: Some(GmPvpInfo {
|
||||
pvp_enabled: true,
|
||||
is_gm: true,
|
||||
gm_level: 44,
|
||||
editor_enabled: true,
|
||||
editor_level: 45,
|
||||
}),
|
||||
current_activity: Some(GameActivity::Quickbuilding),
|
||||
social_info: Some(SocialInfo {
|
||||
guild_id: 46,
|
||||
guild_name: lu!("guild"),
|
||||
is_lego_club_member: true,
|
||||
}),
|
||||
}
|
||||
Reference in New Issue
Block a user