package vooga.scroller.level_management; import java.awt.Dimension; import java.awt.Image; import util.Location; import vooga.scroller.sprites.Sprite; import vooga.scroller.sprites.interfaces.IDoor; import vooga.scroller.util.IGameComponent; import vooga.scroller.util.ISpriteView; import vooga.scroller.util.Pixmap; /** * LevelPortal extends Sprite and implements IDoor. Used for advancing to * the next Level in LevelManager. * * @author Danny Goodman, Scott Valentine */ public abstract class LevelPortal extends Sprite implements IDoor { private static final String DEFAULT_FILENAME = "portal.png"; private static final String DEFAULT_PATH = "/vooga/scroller/images/"; private static final Dimension DEFAULT_SIZE = new Dimension(50, 50); private static final Pixmap DEFAULT_IMG = new Pixmap(DEFAULT_PATH, DEFAULT_FILENAME); private IGameComponent myNextLevel; private LevelManager myLevelManager; /** * Default constructor. Creates LevelPortal and initializes the image. */ protected LevelPortal () { super(DEFAULT_IMG, DEFAULT_SIZE); setView(initView()); setDefaultImg(initView()); setSize(initSize().width, initSize().height); } @Override public Image getDefaultImg () { return initView().getImage(); } public abstract ISpriteView initView (); public abstract Dimension initSize (); @Override public void goToNextLevel () { myLevelManager.setCurrentLevel(myNextLevel); } @Override public void setNextLevel (IGameComponent level) { myNextLevel = level; } @Override public IGameComponent getNextLevel () { return myNextLevel; } @Override public void setManager (LevelManager lm) { myLevelManager = lm; } }