package games.scroller.marioGame.spritesDefinitions.collisions;
import vooga.scroller.collision_manager.VisitLibrary;
import vooga.scroller.extra_resources.sprite_interfaces.ICollectible;
import vooga.scroller.extra_resources.sprite_interfaces.IEnemy;
import vooga.scroller.extra_resources.sprite_interfaces.IPlatform;
import vooga.scroller.marioGame.spritesDefinitions.players.Mario;
import vooga.scroller.sprites.interfaces.IDoor;
import vooga.scroller.sprites.superclasses.Player;
/**
* This is where you want to place your visit methods. To keep this class as
* clean as possible, I don't actually handle the collision logic here. I handle
* that logic in a Game specific Collisions class. You can, of course, handle all
* collisions in these visit() methods if you prefer.
* <br>
* <br>
* Note that your game's VisitMethods needs to extend VisitLibrary. This is because
* the Collision Manager is going to exepect a VisitLibrary object in its constructor.
*
* @author Jay Wang
*
*/
public class MarioVisitMethods extends VisitLibrary {
private MarioCollisions collisions = new MarioCollisions();
public void visit (Mario mario, IPlatform platform) {
collisions.marioAndPlatformCollision(mario, platform);
}
public void visit (Mario mario, ICollectible collectible) {
collisions.marioAndCollectibleCollision(mario, collectible);
}
public void visit (Mario mario, IEnemy enemy) {
collisions.marioAndEnemyCollision(mario, enemy);
}
public void visit (Player player, IDoor levelPortal) {
collisions.marioAndLevelPortalCollision(levelPortal);
}
}