perf(replay): only add systems if recorder exists
This commit is contained in:
parent
ca1162e99a
commit
f77aea28d1
@ -22,50 +22,41 @@ pub struct RecordPlugin {
|
||||
impl Plugin for RecordPlugin {
|
||||
fn build(&self, app: &mut bevy_app::App) {
|
||||
if let Some(recorder) = self.recorder.lock().take() {
|
||||
app.insert_resource(recorder);
|
||||
app.insert_resource(recorder)
|
||||
.add_systems(First, record_login_packets.before(process_packet_events))
|
||||
.add_systems(First, record_configuration_packets)
|
||||
.add_systems(First, record_game_packets.before(send_packet_events));
|
||||
}
|
||||
app.add_systems(First, record_login_packets.before(process_packet_events))
|
||||
.add_systems(First, record_configuration_packets)
|
||||
.add_systems(First, record_game_packets.before(send_packet_events));
|
||||
}
|
||||
}
|
||||
|
||||
fn record_login_packets(
|
||||
recorder: Option<ResMut<Recorder>>,
|
||||
mut events: EventReader<LoginPacketEvent>,
|
||||
) {
|
||||
if let Some(mut recorder) = recorder {
|
||||
for event in events.read() {
|
||||
if recorder.should_ignore_compression
|
||||
&& let ClientboundLoginPacket::LoginCompression(_) = *event.packet
|
||||
{
|
||||
continue;
|
||||
}
|
||||
fn record_login_packets(mut recorder: ResMut<Recorder>, mut events: EventReader<LoginPacketEvent>) {
|
||||
for event in events.read() {
|
||||
if recorder.should_ignore_compression
|
||||
&& let ClientboundLoginPacket::LoginCompression(_) = *event.packet
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if let Err(error) = recorder.save_packet(event.packet.as_ref()) {
|
||||
error!("failed to record login packet: {error:?}");
|
||||
}
|
||||
if let Err(error) = recorder.save_packet(event.packet.as_ref()) {
|
||||
error!("failed to record login packet: {error:?}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn record_configuration_packets(
|
||||
recorder: Option<ResMut<Recorder>>,
|
||||
mut recorder: ResMut<Recorder>,
|
||||
mut events: EventReader<ConfigurationEvent>,
|
||||
) {
|
||||
if let Some(mut recorder) = recorder {
|
||||
for event in events.read() {
|
||||
if let Err(error) = recorder.save_packet(&event.packet) {
|
||||
error!("failed to record configuration packet: {error:?}");
|
||||
}
|
||||
for event in events.read() {
|
||||
if let Err(error) = recorder.save_packet(&event.packet) {
|
||||
error!("failed to record configuration packet: {error:?}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn record_game_packets(recorder: Option<ResMut<Recorder>>, query: Query<&RawConnection>) {
|
||||
if let Some(mut recorder) = recorder
|
||||
&& let Ok(raw_conn) = query.get_single()
|
||||
{
|
||||
fn record_game_packets(mut recorder: ResMut<Recorder>, query: Query<&RawConnection>) {
|
||||
for raw_conn in query.iter() {
|
||||
let queue = raw_conn.incoming_packet_queue();
|
||||
for raw_packet in queue.lock().iter() {
|
||||
if let Err(error) = recorder.save_raw_packet(raw_packet) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user