package vooga.rts.gui.menus.gamesubmenus;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.util.Observable;
import java.util.Observer;
import util.Location;
import vooga.rts.gamedesign.sprite.gamesprites.interactive.InteractiveEntity;
import vooga.rts.resourcemanager.ResourceManager;
import vooga.rts.util.Scale;
public abstract class SubMenu extends Observable implements Observer {
protected InteractiveEntity mySelectedEntity;
private BufferedImage myBGImage;
private Dimension mySize;
private Location myPos;
private boolean isFocused;
public SubMenu (String image, Dimension size, Location pos) {
myBGImage =
ResourceManager.getInstance().<BufferedImage> getFile(image,
BufferedImage.class);
mySize = size;
myPos = pos;
}
public void setSelectedEntity (InteractiveEntity i) {
mySelectedEntity = i;
}
public void paint (Graphics2D pen) {
if (myBGImage != null) {
pen.drawImage(myBGImage, (int) myPos.getX(), (int) myPos.getY(),
(int) mySize.getWidth(), (int) mySize.getHeight(), null);
}
}
public boolean checkWithinBounds (int x, int y) {
return (x > Scale.scaleX(myPos.x) && y > Scale.scaleY(myPos.y) &&
x < (Scale.scaleX(myPos.x) + Scale.scaleX(mySize.width)) && y < (Scale
.scaleY(myPos.y) + Scale.scaleY(mySize.height)));
}
public boolean checkWithinBounds (Location l) {
return checkWithinBounds((int) l.getX(), (int) l.getY());
}
public abstract void processClick (int x, int y);
public abstract void processHover (int x, int y);
public void update (double elapsedTime) {
};
public void setFocused (boolean b) {
isFocused = b;
}
public void processClick () {
// TODO Auto-generated method stub
}
public Location getLocation() {
return myPos;
}
}