perf(replay): only add systems if recorder exists

This commit is contained in:
Ryan 2025-03-11 17:40:55 -04:00
parent ca1162e99a
commit f77aea28d1
Signed by: ErrorNoInternet
GPG Key ID: 2486BFB7B1E6A4A3

@ -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) {