Skip to main content

nurtex_protocol/types/
experience.rs

1use nurtex_codec::Buffer;
2use nurtex_codec::types::variable::VarI32;
3
4/// Структура опыта
5#[derive(Clone, Copy, Debug, PartialEq)]
6pub struct Experience {
7  pub bar: f32,
8  pub level: i32,
9  pub total: i32,
10}
11
12impl Default for Experience {
13  fn default() -> Self {
14    Self { bar: 0.0, level: 0, total: 0 }
15  }
16}
17
18impl Buffer for Experience {
19  fn read_buf(buffer: &mut std::io::Cursor<&[u8]>) -> Option<Self> {
20    Some(Self {
21      bar: f32::read_buf(buffer)?,
22      level: i32::read_var(buffer)?,
23      total: i32::read_var(buffer)?,
24    })
25  }
26
27  fn write_buf(&self, buffer: &mut impl std::io::Write) -> std::io::Result<()> {
28    self.bar.write_buf(buffer)?;
29    self.level.write_var(buffer)?;
30    self.total.write_var(buffer)?;
31    Ok(())
32  }
33}