internal ChestData(OldPacket pkt, bool containsCoords) : this() { X = containsCoords ? pkt.GetChar() : byte.MinValue; Y = containsCoords ? pkt.GetChar() : byte.MinValue; var numRemaining = pkt.PeekEndString().Length / 5; _items = new List <InventoryItem>(numRemaining); for (var i = 0; i < numRemaining; ++i) { _items.Add(new InventoryItem(pkt.GetShort(), pkt.GetThree())); } }