package com.lyndir.omicron.api;
import com.lyndir.omicron.api.util.Maybe;
import java.util.Optional;
/**
* Any object that can be observed in the game.
*
* @author lhunath, 2/25/2014
*/
public interface GameObservable {
/**
* @return The player that has control over this observable, if any.
*/
Optional<? extends IPlayer> getOwner();
/**
* @return The observable's location or {@link Maybe#unknown()} if the current player doesn't own the observable and none of its game objects can observe it.
*/
Maybe<? extends ITile> getLocation();
}