void InitializeCollisionsRelations() { //Create a relation between the boat collision and the tiles that form the island. TileShapeCollection LayerCollisions = Terrain.Collisions.First(x => x.Name == "Collisions"); RelBoatIsland = CollisionManager.Self.CreateTileRelationship( PlayerBoat, LayerCollisions); RelBoatIsland.SetMoveCollision(0, 1); RelPlayerBoat = CollisionManager.Self.CreateRelationship( PlayerInstance, PlayerBoat); RelPlayerBoat.SetMoveCollision(0, 1); RelBoatCannonball = CollisionManager.Self.CreateRelationship(BoatList, CannonballList); RelBoatCannonball.SetEventOnlyCollision(); RelBoatCannonball.CollisionOccurred += BoatCollidedWithCannonball; RelBulletTerrain = CollisionManager.Self.CreateTileRelationship( BulletList, RockCollision); RelBulletTerrain.CollisionOccurred += BulletCollidedWithTerrain; RelPlayerTerrain = CollisionManager.Self.CreateTileRelationship( PlayerInstance, RockCollision); RelPlayerTerrain.SetMoveCollision(1, 0); RelPlayerWeaponEnemies = CollisionManager.Self.CreateRelationship( PlayerInstance.mWeaponEntity, EnemyList); RelPlayerWeaponEnemies.SetEventOnlyCollision(); RelPlayerWeaponEnemies.CollisionOccurred += PlayerWeaponHitEnemy; TileEntityInstantiator.CreateEntitiesFrom(Terrain); }
// List vs. List public ListVsListRelationship <FirstCollidableT, SecondCollidableT> CreateRelationship <FirstCollidableT, SecondCollidableT>( PositionedObjectList <FirstCollidableT> first, PositionedObjectList <SecondCollidableT> second) where FirstCollidableT : PositionedObject, ICollidable where SecondCollidableT : PositionedObject, ICollidable { var relationship = new ListVsListRelationship <FirstCollidableT, SecondCollidableT>(first, second); relationship.Partitions = Partitions; this.Relationships.Add(relationship); return(relationship); }