Example #1
0
 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];
     }
 }
Example #2
0
        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;
        }
Example #4
0
        public void Deserialize(AtmoReader reader) {
            References = reader.ReadCollection(reader.ReadString);
            reader.Solver = new ReferenceSolver(References);

            Content = reader.ReadToEnd<MapItem>();
        }
Example #5
0
 public void Deserialize(AtmoReader reader) {
     X = reader.ReadByte();
     Y = reader.ReadByte();
     Z = reader.ReadByte();
 }
Example #6
0
 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));
 }