mindustry logic execution, map- and schematic- parsing and rendering
| -rw-r--r-- | mindus/src/data/map.rs | 33 | ||||
| -rw-r--r-- | mindus/src/exe/map.rs | 4 |
2 files changed, 16 insertions, 21 deletions
diff --git a/mindus/src/data/map.rs b/mindus/src/data/map.rs index bb49804..22302aa 100644 --- a/mindus/src/data/map.rs +++ b/mindus/src/data/map.rs @@ -623,27 +623,22 @@ impl MapReader { Ok(tags) } - pub fn content(&mut self, version: u32) -> Result<Registrar, ReadError> { + pub fn content(&mut self) -> Result<Registrar, ReadError> { let mut registrar = BlockEnum::ALL; - let n = self.buff.read_u32()?; - if version < 8 { - for _ in 0..self.buff.read_i8()? { - let ty = self.buff.read_u8()?; - for index in 0..self.buff.read_u16()? as usize { - if ty == 1 { - let name = self.buff.read_utf()?; - registrar - .get_mut(index) - .map(|x| *x = BlockEnum::by_name(name).unwrap_or(BlockEnum::Air)); - } else { - let n = self.buff.read_u16()?; - self.buff.skip(n as usize)?; - } + _ = self.buff.read_u32()?; + for _ in 0..self.buff.read_i8()? { + let ty = self.buff.read_u8()?; + for index in 0..self.buff.read_u16()? as usize { + if ty == 1 { + let name = self.buff.read_utf()?; + registrar + .get_mut(index) + .map(|x| *x = BlockEnum::by_name(name).unwrap_or(BlockEnum::Air)); + } else { + let n = self.buff.read_u16()?; + self.buff.skip(n as usize)?; } } - dbg!(registrar); - } else { - self.buff.skip(n as _)?; } Ok(registrar) } @@ -966,7 +961,7 @@ impl Serializable for Map { buff.header()?; let v = buff.version()?; let tags = buff.tags_alloc()?; - let r = buff.content(v)?; + let r = buff.content()?; let mut m = buff.collect_map(tags, r)?; m.entities = buff.collect_entities()?; diff --git a/mindus/src/exe/map.rs b/mindus/src/exe/map.rs index 09719bd..88342e0 100644 --- a/mindus/src/exe/map.rs +++ b/mindus/src/exe/map.rs @@ -12,11 +12,11 @@ pub fn main(args: Args) { match (|| { let mut m = MapReader::new(&mut DataRead::new(&s))?; m.header()?; - let v = m.version()?; + m.version()?; let t = m.tags()?; dbg!(&t); println!("rendering {}", t.get("name").unwrap_or(&"<unknown>")); - let r = m.content(v)?; + let r = m.content()?; let (mut img, sz) = mindus::data::renderer::draw_map_single(&mut m, r)?; mindus::data::renderer::draw_units(&mut m, img.as_mut(), sz)?; Ok::<_, mindus::data::map::ReadError>(img) |