public void Deserialize(AtmoReader reader) { var count = reader.ReadByte(); Rules = new Dictionary<string, string>(count); for (var i = 0; i < count; i++) { var ruleParts = reader.ReadString().Split(PropertySeparator.ToCharArray(), 2); Rules[ruleParts[0]] = ruleParts[1]; } }
public void Deserialize(AtmoReader reader) { ResourceName = reader.Solver.Solve(reader.ReadString()); switch (ResourceName) { case "EOF": throw new EndOfStreamException("Found EOF item"); case "Rulebook": Rulebook = reader.Read<Rulebook>(); return; } Position = reader.Read<FloatVector>(); Rotation = reader.Read<ByteVector>(); Scale = reader.ReadSingle(); var propCount = reader.ReadByte(); Properties = new Dictionary<string, string>(propCount); for (var i = 0; i < propCount; i++) { var key = reader.Solver.Solve(reader.ReadString()); var value = reader.ReadString(); Properties[key] = value; } }
public static Map Deserialize(Stream stream, Encoding encoding = null) { var reader = new AtmoReader(stream, encoding); var header = reader.Read<MapHeader>(); int version; if (header.Format != FormatIdentifier || !int.TryParse(header.Version, out version)) { throw new InvalidDataException("Unknown map format"); } if (header.Compressed) { reader = new AtmoReader(new InflaterInputStream(stream)); } var body = reader.Read<MapBody>(); var map = new Map(version) { Rulebook = body.Content .Select(i => i.Rulebook) .First(r => r != null) }; map.Items.AddRange(body.Content.Where(i => i.Rulebook == null)); return map; }
public void Deserialize(AtmoReader reader) { References = reader.ReadCollection(reader.ReadString); reader.Solver = new ReferenceSolver(References); Content = reader.ReadToEnd<MapItem>(); }
public void Deserialize(AtmoReader reader) { X = reader.ReadByte(); Y = reader.ReadByte(); Z = reader.ReadByte(); }
public void Deserialize(AtmoReader reader) { Format = reader.ReadString(); Version = reader.ReadString(); Compressed = reader.ReadBoolean(); }
public void Deserialize(AtmoReader reader) { _references.Clear(); _references.AddRange(reader.ReadCollection(reader.ReadString)); }