FocusedTileEvent.java

package org.microcol.gui.event;

import java.util.Optional;

import org.microcol.model.Location;
import org.microcol.model.Model;
import org.microcol.model.Ship;
import org.microcol.model.Terrain;

import com.google.common.base.Preconditions;

/**
 * Contains info about focused
 *
 */
public class FocusedTileEvent {

	private final Model game;

	private final Location location;

	private final Terrain terrain;

	public FocusedTileEvent(final Model game, final Location location, final Terrain tile) {
		this.game = Preconditions.checkNotNull(game);
		this.location = Preconditions.checkNotNull(location);
		this.terrain = Preconditions.checkNotNull(tile);
	}

	public boolean isTileContainsMovebleUnit() {
		final Optional<Ship> unit = game.getShipsAt(location).stream().findFirst();
		return unit.isPresent() && unit.get().getOwner().equals(game.getCurrentPlayer());
	}

	public Location getLocation() {
		return location;
	}

	public Terrain getTerrain() {
		return terrain;
	}

}