refactor(replay): use Instant for timestamps
This commit is contained in:
parent
b2d8618bba
commit
09543b2dcd
@ -12,14 +12,14 @@ use smallvec::SmallVec;
|
|||||||
use std::{
|
use std::{
|
||||||
fs::File,
|
fs::File,
|
||||||
io::Write,
|
io::Write,
|
||||||
time::{SystemTime, UNIX_EPOCH},
|
time::{Instant, SystemTime, UNIX_EPOCH},
|
||||||
};
|
};
|
||||||
use zip::{ZipWriter, write::SimpleFileOptions};
|
use zip::{ZipWriter, write::SimpleFileOptions};
|
||||||
|
|
||||||
#[derive(Resource)]
|
#[derive(Resource)]
|
||||||
pub struct Recorder {
|
pub struct Recorder {
|
||||||
zip_writer: ZipWriter<File>,
|
zip_writer: ZipWriter<File>,
|
||||||
start_time: u128,
|
start: Instant,
|
||||||
server: String,
|
server: String,
|
||||||
ignore_compression: bool,
|
ignore_compression: bool,
|
||||||
}
|
}
|
||||||
@ -36,21 +36,23 @@ impl Recorder {
|
|||||||
zip_writer.start_file("recording.tmcpr", SimpleFileOptions::default())?;
|
zip_writer.start_file("recording.tmcpr", SimpleFileOptions::default())?;
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
zip_writer,
|
zip_writer,
|
||||||
start_time: SystemTime::now().duration_since(UNIX_EPOCH)?.as_millis(),
|
start: Instant::now(),
|
||||||
server,
|
server,
|
||||||
ignore_compression,
|
ignore_compression,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn finish(mut self) -> Result<()> {
|
pub fn finish(mut self) -> Result<()> {
|
||||||
|
let elapsed = self.start.elapsed();
|
||||||
|
|
||||||
self.zip_writer
|
self.zip_writer
|
||||||
.start_file("metaData.json", SimpleFileOptions::default())?;
|
.start_file("metaData.json", SimpleFileOptions::default())?;
|
||||||
self.zip_writer.write_all(
|
self.zip_writer.write_all(
|
||||||
json!({
|
json!({
|
||||||
"singleplayer": false,
|
"singleplayer": false,
|
||||||
"serverName": self.server,
|
"serverName": self.server,
|
||||||
"duration": SystemTime::now().duration_since(UNIX_EPOCH)?.as_millis() - self.start_time,
|
"duration": elapsed.as_millis(),
|
||||||
"date": self.start_time,
|
"date": SystemTime::now().duration_since(UNIX_EPOCH)? - elapsed,
|
||||||
"mcversion": VERSION_NAME,
|
"mcversion": VERSION_NAME,
|
||||||
"fileFormat": "MCPR",
|
"fileFormat": "MCPR",
|
||||||
"fileFormatVersion": 14,
|
"fileFormatVersion": 14,
|
||||||
@ -66,10 +68,7 @@ impl Recorder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn get_timestamp(&self) -> Result<[u8; 4]> {
|
fn get_timestamp(&self) -> Result<[u8; 4]> {
|
||||||
Ok(TryInto::<u32>::try_into(
|
Ok(TryInto::<u32>::try_into(self.start.elapsed().as_millis())?.to_be_bytes())
|
||||||
SystemTime::now().duration_since(UNIX_EPOCH)?.as_millis() - self.start_time,
|
|
||||||
)?
|
|
||||||
.to_be_bytes())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn save_raw_packet(&mut self, raw_packet: &[u8]) -> Result<()> {
|
fn save_raw_packet(&mut self, raw_packet: &[u8]) -> Result<()> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user