public void Unpack(NetBuffer netBuffer) { for (int x = 0; x < _tiles.GetLength(0); x++) { for (int y = 0; y < _tiles.GetLength(1); y++) { var tile = Tile.Unpack(netBuffer); if (tile != null) { tile.ZIndex = this.ZIndex; this.SetTile(x, y, tile); } } } int collisionDescriptorCount = netBuffer.ReadInt32(); for (int c = 0; c < collisionDescriptorCount; c++) { var position = new Vector2(netBuffer.ReadInt32(), netBuffer.ReadInt32()); var collisionArea = new Rectangle(netBuffer.ReadInt32(), netBuffer.ReadInt32(), netBuffer.ReadInt32(), netBuffer.ReadInt32()); var collisionDescriptor = new CollisionDescriptor(collisionArea); this.AddCollisionDescriptor(position, collisionDescriptor); } var mapObjectCount = netBuffer.ReadInt32(); for (int i = 0; i < mapObjectCount; i++) { var mapObject = MapObject.Unpack(netBuffer); if (mapObject != null) { _mapObjects.Add(mapObject); } } }
public void AddCollisionDescriptor(Vector2 position, CollisionDescriptor descriptor) { _collisionDescriptors.Add(position, descriptor); }