Beispiel #1
0
        public static Variant FromStream(IStarboundStream stream)
        {
            var  variant = new Variant();
            byte type    = stream.ReadUInt8();

            switch (type)
            {
            case 1:
                variant.Value = null;
                break;

            case 2:
                variant.Value = stream.ReadDouble();
                break;

            case 3:
                variant.Value = stream.ReadBoolean();
                break;

            case 4:
                variant.Value = stream.ReadVLQ();
                break;

            case 5:
                variant.Value = stream.ReadString();
                break;

            case 6:
                var array = new Variant[stream.ReadVLQ()];
                for (int i = 0; i < array.Length; i++)
                {
                    array[i] = FromStream(stream);
                }
                variant.Value = array;
                break;

            case 7:
                var dict   = new VariantDict();
                var length = stream.ReadVLQ();
                while (length-- > 0)
                {
                    dict[stream.ReadString()] = FromStream(stream);
                }

                variant.Value = dict;
                break;

            default:
                throw new InvalidOperationException(string.Format("Unknown Variant type: 0x{0:X2}", type));
            }
            return(variant);
        }
Beispiel #2
0
        public static Sector FromStream(IStarboundStream stream)
        {
            Sector sector = new Sector();

            sector.SectorId     = stream.ReadString();
            sector.SectorName   = stream.ReadString();
            sector.SectorSeed   = stream.ReadDouble();
            sector.SectorPrefix = stream.ReadString();
            sector.Parameters   = stream.ReadVariant();
            sector.SectorConfig = stream.ReadVariant();

            return(sector);
        }