package games.strategy.triplea.ui.screen.drawable;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import games.strategy.engine.data.GameData;
import games.strategy.engine.data.PlayerID;
import games.strategy.engine.data.Territory;
import games.strategy.triplea.ui.IUIContext;
import games.strategy.triplea.ui.mapdata.MapData;
public class CapitolMarkerDrawable implements IDrawable {
private final String m_player;
private final String m_location;
private final IUIContext m_uiContext;
public CapitolMarkerDrawable(final PlayerID player, final Territory location, final IUIContext uiContext) {
super();
if (player == null) {
throw new IllegalStateException("no player for capitol:" + location);
}
m_player = player.getName();
m_location = location.getName();
m_uiContext = uiContext;
}
@Override
public void draw(final Rectangle bounds, final GameData data, final Graphics2D graphics, final MapData mapData,
final AffineTransform unscaled, final AffineTransform scaled) {
// Changed back to use Large flags
final Image img = m_uiContext.getFlagImageFactory().getLargeFlag(data.getPlayerList().getPlayerID(m_player));
final Point point = mapData.getCapitolMarkerLocation(data.getMap().getTerritory(m_location));
graphics.drawImage(img, point.x - bounds.x, point.y - bounds.y, null);
}
@Override
public int getLevel() {
return CAPITOL_MARKER_LEVEL;
}
}