View Javadoc

1   package cz.cuni.amis.pogamut.udk.communication.messages;
2   
3   import java.util.Map;
4   
5   import cz.cuni.amis.pogamut.base.communication.worldview.object.IWorldObject;
6   import cz.cuni.amis.pogamut.base.communication.worldview.object.WorldObjectId;
7   import cz.cuni.amis.pogamut.base3d.worldview.object.ILocated;
8   import cz.cuni.amis.pogamut.base3d.worldview.object.IViewable;
9   import cz.cuni.amis.pogamut.base3d.worldview.object.Location;
10  import cz.cuni.amis.pogamut.base3d.worldview.object.Rotation;
11  import cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.NavPointNeighbourLink;
12  import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;
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  	 * If the bot can reach the point directly.
40  	 */
41  	public boolean isReachable();
42  
43  	/**
44  	 * Unique Id of the respawned item (the item respawns at this point).
45  	 */
46  	public WorldObjectId getItem();
47  
48  	/**
49  	 * What type is this NavPoint. The types are: PathNode, PlayerStart,
50  	 * InventorySpot and AIMarker. If the type is AIMarker, more attributes
51  	 * appear in NAV message - see below.
52  	 */
53  	public String getFlag();
54  
55  	/**
56  	 * If the type is AIMarker. The rotation the bot should be facing, when
57  	 * doing the action specified by AIMarker.
58  	 */
59  	public Rotation getRotation();
60  
61  	/**
62  	 * Some ambush point, where is good chance to intercept approaching
63  	 * opponents.
64  	 */
65  	public boolean isRoamingSpot();
66  
67  	/**
68  	 * Point good for sniping.
69  	 */
70  	public boolean isSnipingSpot();
71  
72  	/**
73  	 * Class of the weapon that should be prefered when using this point for
74  	 * AIMarker specified action.
75  	 */
76  	public String getPreferedWeapon();
77  
78  	/**
79  	 * Retuns map with links to navpoint neighbours. Maps
80  	 * neighbour-navpoint-UnrealId to neighbour link.
81  	 */
82  	public Map<UnrealId, NavPointNeighbourLink> getNeighbourLinks();
83  	
84  }