View Javadoc

1   package cz.cuni.amis.pogamut.ut2004.communication.messages;
2   
3   import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;
4   import java.util.Map;
5   
6   import cz.cuni.amis.pogamut.base.communication.worldview.object.IWorldObject;
7   import cz.cuni.amis.pogamut.base.communication.worldview.object.WorldObjectId;
8   import cz.cuni.amis.pogamut.base3d.worldview.object.ILocated;
9   import cz.cuni.amis.pogamut.base3d.worldview.object.IViewable;
10  import cz.cuni.amis.pogamut.base3d.worldview.object.Location;
11  import cz.cuni.amis.pogamut.base3d.worldview.object.Rotation;
12  import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPointNeighbourLink;
13  
14  
15  /**
16   * Synchronous message. NavPoint carries information about UT navigation point -
17   * location, reachability... Also some item can be respawned at this point. Or
18   * some additional information can be stored here (if it is an ambush point, or
19   * sniper point..). Corresponding GameBots message is NAV.
20   */
21  public interface INavPoint extends ILocated, IViewable, IWorldObject {
22  
23  	/**
24  	 * A unique Id of this navigation point assigned by the game.
25  	 */
26  	public UnrealId getId();
27  
28  	/**
29  	 * Location of navigation point.
30  	 */
31  	public Location getLocation();
32  		
33  	/**
34  	 * If the point is in the field of view of the bot.
35  	 */
36  	public boolean isVisible();
37  		
38  	/**
39  	 * Unique Id of the respawned item (the item respawns at this point).
40  	 */
41  	public WorldObjectId getItem();
42  
43  	/**
44  	 * What type is this NavPoint. The types are: PathNode, PlayerStart,
45  	 * InventorySpot and AIMarker. If the type is AIMarker, more attributes
46  	 * appear in NAV message - see below.
47  	 */
48  	public String getFlag();
49  
50  	/**
51  	 * If the type is AIMarker. The rotation the bot should be facing, when
52  	 * doing the action specified by AIMarker.
53  	 */
54  	public Rotation getRotation();
55  
56  	/**
57  	 * Some ambush point, where is good chance to intercept approaching
58  	 * opponents.
59  	 */
60  	public boolean isRoamingSpot();
61  
62  	/**
63  	 * Point good for sniping.
64  	 */
65  	public boolean isSnipingSpot();
66  
67  	/**
68  	 * Class of the weapon that should be prefered when using this point for
69  	 * AIMarker specified action.
70  	 */
71  	public String getPreferedWeapon();
72  
73  	/**
74  	 * Retuns map with links to navpoint neighbours. Maps
75  	 * neighbour-navpoint-UnrealId to neighbour link.
76  	 */
77  	public Map<UnrealId, NavPointNeighbourLink> getNeighbourLinks();
78  	
79  }