public HFloorObject(IHFormat format, ref ReadOnlySpan <byte> packetSpan) { Id = format.Read <int>(ref packetSpan); TypeId = format.Read <int>(ref packetSpan); int x = format.Read <int>(ref packetSpan); int y = format.Read <int>(ref packetSpan); Facing = (HDirection)format.Read <int>(ref packetSpan); Tile = new HPoint(x, y, float.Parse(format.ReadUTF8(ref packetSpan), CultureInfo.InvariantCulture)); Height = double.Parse(format.ReadUTF8(ref packetSpan), CultureInfo.InvariantCulture); Extra = format.Read <int>(ref packetSpan); StuffData = HStuffData.Parse(format, ref packetSpan); SecondsToExpiration = format.Read <int>(ref packetSpan); UsagePolicy = (HUsagePolicy)format.Read <int>(ref packetSpan); OwnerId = format.Read <int>(ref packetSpan); if (TypeId < 0) { StaticClass = format.ReadUTF8(ref packetSpan); } }
public HItem(IHFormat format, ref ReadOnlySpan <byte> packetSpan) { RoomItemId = format.Read <int>(ref packetSpan); Type = (HProductType)format.ReadUTF8(ref packetSpan)[0]; Id = format.Read <int>(ref packetSpan); TypeId = format.Read <int>(ref packetSpan); Category = (HFurniCategory)format.Read <int>(ref packetSpan); StuffData = HStuffData.Parse(format, ref packetSpan); IsRecyclable = format.Read <bool>(ref packetSpan); IsTradable = format.Read <bool>(ref packetSpan); IsGroupable = format.Read <bool>(ref packetSpan); IsSellable = format.Read <bool>(ref packetSpan); CanPlaceInMarketplace = format.Read <bool>(ref packetSpan); SecondsToExpiration = format.Read <int>(ref packetSpan); HasRentPeriodStarted = format.Read <bool>(ref packetSpan); RoomId = format.Read <int>(ref packetSpan); if (Type == HProductType.Stuff) { SlotId = format.ReadUTF8(ref packetSpan); Extra = format.Read <int>(ref packetSpan); } }