def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.id = ObjectID() self.id.serialize(bit_stream) self.parent_id = ObjectID() self.parent_id.serialize(bit_stream) bit_stream.write_int(len(self.components)) for item in self.components: bit_stream.write_str(item) bit_stream.write_int(len(self.parent_components)) for item in self.parent_components: bit_stream.write_str(item) bit_stream.write_dt(self.create_time) bit_stream.write_dt(self.modified_time) bit_stream.write_int(len(self.properties)) for key in self.properties: bit_stream.write_str(key) bit_stream.write_int(len(self.properties[key])) for item in self.properties[key]: bit_stream.write_str(item) bit_stream.write_int(len(self.children_group)) for key in self.children_group: bit_stream.write_str(key) bit_stream.write_int(len(self.children_group[key])) for item in self.children_group[key]: bit_stream.write_int(len(item)) for list_item in item: list_item.serialize(bit_stream)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.aw_object_id.serialize(bit_stream) self.invite_player_id.serialize(bit_stream) self.player_id.serialize(bit_stream) bit_stream.write_bool(self.is_player_home) bit_stream.write_int(self.invite_status) bit_stream.write_dt(self.invite_date) bit_stream.write_dt(self.blocked_date)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.aw_object_id.serialize(bit_stream) self.avatar.serialize(bit_stream) self.player_id.serialize(bit_stream) bit_stream.write_str(self.name) bit_stream.write_str(self.bio) bit_stream.write_str(self.secret_code) bit_stream.write_dt(self.create_ts) self.player_avatar_outfit_id.serialize(bit_stream) bit_stream.write_short(self.outfit_no) bit_stream.write_long(self.play_time, nullable=True) bit_stream.write_dt(self.last_play)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.aw_object_id.serialize(bit_stream) self.from_player_id.serialize(bit_stream) bit_stream.write_str(self.from_player_name) self.to_player_id.serialize(bit_stream) bit_stream.write_str(self.village_name) self.village_id.serialize(bit_stream) self.object_id.serialize(bit_stream) bit_stream.write_str(self.notification_text) self.notification.serialize(bit_stream) bit_stream.write_bool(self.is_read) bit_stream.write_dt(self.create_date) bit_stream.write_dt(self.expiry_date)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.site_info.serialize(bit_stream) bit_stream.write_str(self.session_status.name) self.session_id.serialize(bit_stream) bit_stream.write_long(self.conversation_id) bit_stream.write_str(self.asset_delivery_url) self.player.serialize(bit_stream) bit_stream.write_short(self.max_outfit) bit_stream.write_int(len(self.player_stats)) for ps in self.player_stats: ps.serialize(bit_stream) self.player_info.serialize(bit_stream) bit_stream.write_dt(self.current_server_time) bit_stream.write_dt(self.system_lockout_time) bit_stream.write_dt(self.system_shutdown_time) bit_stream.write_int(self.client_inactivity_timeout) bit_stream.write_str(self.cnl)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.aw_object_id.serialize(bit_stream) bit_stream.write_str(self.name) bit_stream.write_long(self.size) bit_stream.write_bytes(self.thumbnail) bit_stream.write_dt(self.publish_timestamp) bit_stream.write_short(self.num_rooms) bit_stream.write_short(self.num_tubes) bit_stream.write_short(self.rating, True) bit_stream.write_bool(self.is_locked) bit_stream.write_bool(self.is_home_maze) bit_stream.write_bool(self.is_published) bit_stream.write_bool(self.is_publish_expired) self.player_id.serialize(bit_stream) bit_stream.write_int(0) # GSFPlayerMazePieces self.home_theme.serialize(bit_stream) self.parent_id.serialize(bit_stream) self.source_id.serialize(bit_stream)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() if self.player_maze: self.player_maze.serialize(bit_stream) else: bit_stream.write_none() bit_stream.write_str(self.player_name) bit_stream.write_bool(self.findable) bit_stream.write_dt(self.findable_date) if self.home_theme: self.home_theme.serialize(bit_stream) else: bit_stream.write_none() if self.player_id: self.player_id.serialize(bit_stream) else: bit_stream.write_none() bit_stream.write_int(len(self.player_mazes)) for item in self.player_mazes: item.serialize(bit_stream)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.aw_object_id.serialize(bit_stream) bit_stream.write_dt(self.create_date) bit_stream.write_dt(self.accepted_date) bit_stream.write_dt(self.started_date) bit_stream.write_dt(self.expiry_date) bit_stream.write_dt(self.completed_date) self.player_id.serialize(bit_stream) self.quest_state_id.serialize(bit_stream) bit_stream.write_str(self.quest_state_name) self.player_avatar_id.serialize(bit_stream) self.parent_player_quest_id.serialize(bit_stream) self.quest.serialize(bit_stream) bit_stream.write_int(self.player_level) bit_stream.write_int(self.npc_relationship_level) bit_stream.write_int(self.npc_relationship_points) bit_stream.write_int(self.player_money) bit_stream.write_int(self.player_xp) bit_stream.write_bool(self.unlocked) self.rule_property.serialize(bit_stream)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.aw_object_id.serialize(bit_stream) bit_stream.write_dt(self.create_date) if self.active_player_avatar: self.active_player_avatar.serialize(bit_stream) else: bit_stream.write_none() self.home_theme_id.serialize(bit_stream) self.current_race_mode.serialize(bit_stream) bit_stream.write_str(self.workshop_options) bit_stream.write_bool(self.is_tutorial_completed) self.yard_building_id.serialize(bit_stream) bit_stream.write_dt(self.last_login) bit_stream.write_long(self.play_time, nullable=True) bit_stream.write_bool(self.is_qa) self.home_village_plot_id.serialize(bit_stream) self.store_village_plot_id.serialize(bit_stream) self.player_store_id.serialize(bit_stream) self.player_maze_id.serialize(bit_stream) self.village_id.serialize(bit_stream)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.tier_id.serialize(bit_stream) bit_stream.write_str(self.player_name) bit_stream.write_str(self.world_name) self.crisp_data.serialize(bit_stream) bit_stream.write_bool(self.verified) bit_stream.write_dt(self.verification_expiry) bit_stream.write_dt(self.scs_block_expiry) self.eula_id.serialize(bit_stream) self.current_eula_id.serialize(bit_stream) bit_stream.write_bool(self.u_13) bit_stream.write_bool(self.chat_blocked_parent) bit_stream.write_bool(self.chat_allowed) bit_stream.write_dt(self.chat_blocked_expiry) bit_stream.write_bool(self.findable) bit_stream.write_dt(self.findable_date) bit_stream.write_dt(self.user_subscription_expiry_date) bit_stream.write_bool(self.qa) bit_stream.write_int(len(self.player_settings)) for ps in self.player_settings: ps.serialize(bit_stream)
def serialize(self, bit_stream: BitStream): bit_stream.write_start() self.crisp_action_id.serialize(bit_stream) bit_stream.write_str(self.crisp_message) bit_stream.write_dt(self.crisp_expiry_date) bit_stream.write_bool(self.crisp_confirmed)
def test_read_write_datetime(self): value = dt.datetime(2020, 3, 27, 19, 30, 42) bit_stream = BitStream() bit_stream.write_dt(value) bit_stream.cursor = 0 self.assertEqual(str(bit_stream.read_dt()), str(value))