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); }
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); }