cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages
Class NavPointCompositeImpl

java.lang.Object
  extended by cz.cuni.amis.pogamut.base.communication.messages.InfoMessage
      extended by cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPoint
          extended by cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPointCompositeImpl
All Implemented Interfaces:
IWorldChangeEvent, IWorldEvent, IWorldObject, ILocated, ILocomotive, IViewable, ICompositeWorldObject, IGBViewable, Event

public class NavPointCompositeImpl
extends NavPoint

Composite implementation of the NAV abstract message. It wraps Local/Shared/Static parts in single object allowing to presenting a nice facade for users.

Complete message documentation: Synchronous message. NavPoint carries information about UT navigation point - location, reachability... Also some item can be respawned at this point. Or some additional information can be stored here (if it is an ambush point, or sniper point..).


Nested Class Summary
 
Nested classes/interfaces inherited from class cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPoint
NavPoint.NavPointUpdate, NavPoint.ObjectDisappeared
 
Field Summary
protected  NavPointLocalImpl partLocal
           
protected  NavPointStaticImpl partStatic
           
 
Fields inherited from class cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPoint
PROTOTYPE, SimTime
 
Constructor Summary
NavPointCompositeImpl()
          Parameter-less contructor for the message.
NavPointCompositeImpl(NavPointCompositeImpl original)
          Cloning constructor.
NavPointCompositeImpl(NavPointLocalImpl partLocal, NavPointSharedImpl partShared, NavPointStaticImpl partStatic)
          Composite-impl constructor.
 
Method Summary
 int getDomPointController()
          Exported if this NavPoint is a DominationPoint (for BotDoubleDomination game) - which team controls this point.
 UnrealId getId()
          A unique Id of this navigation point assigned by the game.
 java.util.Map<UnrealId,NavPointNeighbourLink> getIncomingEdges()
          Maps edge-ORIGINATES_FROM-navpoint-UnrealId to neighbour link, those are incoming edges (those edges that originates in different navpoint and ends here, do not use this to ask whether you can get to navpoint of specific unreal id, use OutgoingEdges instead).
 UnrealId getItem()
          Unique Id of the respawned item (the item respawns at this point).
 ItemType getItemClass()
          Class of the item (e.g.
 Item getItemInstance()
          If item should be present at this navpoint it's instance will be here.
 Vector3d getLiftOffset()
          Starting vector between MyLift location and LiftCenter location.
 NavPointLocal getLocal()
           
 Location getLocation()
          Location of navigation point.
 UnrealId getMover()
          If this NavPoint is marking some mover, the mover id will be here.
 java.util.Map<UnrealId,NavPointNeighbourLink> getOutgoingEdges()
          Maps edge-LEADING_TO-navpoint-UnrealId to neighbour link, those are outgoing edges (those edges that originates in this navpoint going to another one, those you may usually travel).
 java.lang.String getPreferedWeapon()
          Class of the weapon that should be prefered when using this point for AIMarker specified action.
 Rotation getRotation()
          If the type is AIMarker.
 NavPointShared getShared()
           
 NavPointStatic getStatic()
           
 int getTeamNumber()
          Will be sent if this is a player start.
 Velocity getVelocity()
          Velocity of the navigation point (if the navigation point is currently moving).
 boolean isAIMarker()
          If this point is an AI marker - marks an interesting spot in the environment.
 boolean isDomPoint()
          If this point marks a DominationPoint (for BotDoubleDomination game).
 boolean isDoor()
          If this point marks a door mover.
 boolean isDoorOpened()
          True if this NavPoint is a Door and door is opened.
 boolean isInvSpot()
          If this is an inventory spot (item is respawned at this point).
 boolean isItemSpawned()
          True if the item is spawned at the point.
 boolean isJumpDest()
          If this point marks a jump destination - some place that can be reached by some special jump.
 boolean isJumpSpot()
          If this point marks a jump spot (a special device that causes the bot to jump high or far).
 boolean isLiftCenter()
          If this point marks a lift center (used to mark center of a lift mover, note that this point will be always moved with the lift).
 boolean isLiftExit()
          If this point marks a lift exit (used to mark exit point of a lift mover).
 boolean isLiftJumpExit()
          Boolean.
 boolean isNoDoubleJump()
          Boolean.
 boolean isPlayerStart()
          If this is a player start (players and/or bots are respawned at this point).
 boolean isReachable()
          If the bot can reach the point directly.
 boolean isRoamingSpot()
          Some ambush point, where is good chance to intercept approaching opponents.
 boolean isSnipingSpot()
          Point good for sniping.
 boolean isTeleporter()
          If this point marks a teleport.
 boolean isVisible()
          If the point is in the field of view of the bot.
 void setSimTime(long SimTime)
          Used by Yylex to slip correct time of the object or programmatically.
 java.lang.String toHtmlString()
           
 java.lang.String toString()
           
 
Methods inherited from class cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPoint
createDisappearEvent, getSimTime
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

partStatic

protected NavPointStaticImpl partStatic

partLocal

protected NavPointLocalImpl partLocal
Constructor Detail

NavPointCompositeImpl

public NavPointCompositeImpl()
Parameter-less contructor for the message.


NavPointCompositeImpl

public NavPointCompositeImpl(NavPointLocalImpl partLocal,
                             NavPointSharedImpl partShared,
                             NavPointStaticImpl partStatic)
Composite-impl constructor. It assembles the message from its three fragments - local/shared/static.

Parameters:
partLocal - local-part of the message
partShared - shared-part of the message
partStatic - static-part of the message

NavPointCompositeImpl

public NavPointCompositeImpl(NavPointCompositeImpl original)
Cloning constructor.

Parameters:
original -
Method Detail

setSimTime

public void setSimTime(long SimTime)
Description copied from class: NavPoint
Used by Yylex to slip correct time of the object or programmatically.

Overrides:
setSimTime in class NavPoint

getStatic

public NavPointStatic getStatic()

getLocal

public NavPointLocal getLocal()

getShared

public NavPointShared getShared()

getId

public UnrealId getId()
Description copied from class: NavPoint
A unique Id of this navigation point assigned by the game.

Specified by:
getId in interface IWorldObject
Specified by:
getId in class NavPoint
Returns:

getLocation

public Location getLocation()
Description copied from class: NavPoint
Location of navigation point.

Specified by:
getLocation in interface ILocated
Specified by:
getLocation in class NavPoint
Returns:
Current location of the object, represented as a point within the world's coordinates.

getVelocity

public Velocity getVelocity()
Description copied from class: NavPoint
Velocity of the navigation point (if the navigation point is currently moving). Not sent at the moment.

Specified by:
getVelocity in interface ILocomotive
Specified by:
getVelocity in class NavPoint
Returns:
Current direction in which the object is moving and absolute velocity of the object within the world. The direction is represented as a vector within the world's coordinates. The size of velocity is represented by length of that vector.

isVisible

public boolean isVisible()
Description copied from class: NavPoint
If the point is in the field of view of the bot.

Specified by:
isVisible in interface IViewable
Specified by:
isVisible in class NavPoint
Returns:
True if the object is visible; false otherwise.

isReachable

public boolean isReachable()
Description copied from class: NavPoint
If the bot can reach the point directly. This is a bit tricky. Only point in radius around 900 ut units are evaluated. More ditant points will always return false. Moreover, bot may be required to jump somewhere on the direct path toward this point, if reachable it true (only normal jump is required, if double jump would be required, reachable would be false). Also, bot may be required to fall down from a ramp if he is standing on some.

Specified by:
isReachable in class NavPoint

getItem

public UnrealId getItem()
Description copied from class: NavPoint
Unique Id of the respawned item (the item respawns at this point). Not sent if point is not an inventory spot. Sent only in HandShake.

Specified by:
getItem in class NavPoint

getItemClass

public ItemType getItemClass()
Description copied from class: NavPoint
Class of the item (e.g. xWeapons.FlakCannonPickup). Not sent if point is not an inventory spot. Sent only in HandShake.

Specified by:
getItemClass in class NavPoint

isItemSpawned

public boolean isItemSpawned()
Description copied from class: NavPoint
True if the item is spawned at the point. Not sent if point is not an inventory spot.

Specified by:
isItemSpawned in class NavPoint

isDoorOpened

public boolean isDoorOpened()
Description copied from class: NavPoint
True if this NavPoint is a Door and door is opened. Not sent if point is not a door.

Specified by:
isDoorOpened in class NavPoint

getMover

public UnrealId getMover()
Description copied from class: NavPoint
If this NavPoint is marking some mover, the mover id will be here. Not sent if point is not a Door, a LiftCenter or a LiftExit. Sent only in HandShake.

Specified by:
getMover in class NavPoint

getLiftOffset

public Vector3d getLiftOffset()
Description copied from class: NavPoint
Starting vector between MyLift location and LiftCenter location. Not sent if point is not a LiftCenter. Sent only in HandShake.

Specified by:
getLiftOffset in class NavPoint

isLiftJumpExit

public boolean isLiftJumpExit()
Description copied from class: NavPoint
Boolean. If we can/should exit the lift by a jump when near the destination place. Not sent if point is not a LiftExit. Sent only in HandShake.

Specified by:
isLiftJumpExit in class NavPoint

isNoDoubleJump

public boolean isNoDoubleJump()
Description copied from class: NavPoint
Boolean. If we should or not use double jump when exiting lift with a jump. Not sent if point is not a LiftExit. Sent only in HandShake.

Specified by:
isNoDoubleJump in class NavPoint

isInvSpot

public boolean isInvSpot()
Description copied from class: NavPoint
If this is an inventory spot (item is respawned at this point).

Specified by:
isInvSpot in class NavPoint

isPlayerStart

public boolean isPlayerStart()
Description copied from class: NavPoint
If this is a player start (players and/or bots are respawned at this point).

Specified by:
isPlayerStart in class NavPoint

getTeamNumber

public int getTeamNumber()
Description copied from class: NavPoint
Will be sent if this is a player start. In Team games (team deathmatch, capture the flag, domination) holds information about which team respawns at this player start spot. In non-team games will return 0!

Specified by:
getTeamNumber in class NavPoint

isDomPoint

public boolean isDomPoint()
Description copied from class: NavPoint
If this point marks a DominationPoint (for BotDoubleDomination game).

Specified by:
isDomPoint in class NavPoint

getDomPointController

public int getDomPointController()
Description copied from class: NavPoint
Exported if this NavPoint is a DominationPoint (for BotDoubleDomination game) - which team controls this point.

Specified by:
getDomPointController in class NavPoint

isDoor

public boolean isDoor()
Description copied from class: NavPoint
If this point marks a door mover.

Specified by:
isDoor in class NavPoint

isLiftCenter

public boolean isLiftCenter()
Description copied from class: NavPoint
If this point marks a lift center (used to mark center of a lift mover, note that this point will be always moved with the lift).

Specified by:
isLiftCenter in class NavPoint

isLiftExit

public boolean isLiftExit()
Description copied from class: NavPoint
If this point marks a lift exit (used to mark exit point of a lift mover).

Specified by:
isLiftExit in class NavPoint

isAIMarker

public boolean isAIMarker()
Description copied from class: NavPoint
If this point is an AI marker - marks an interesting spot in the environment. May be ambush point or sniping spot, etc.

Specified by:
isAIMarker in class NavPoint

isJumpSpot

public boolean isJumpSpot()
Description copied from class: NavPoint
If this point marks a jump spot (a special device that causes the bot to jump high or far).

Specified by:
isJumpSpot in class NavPoint

isJumpDest

public boolean isJumpDest()
Description copied from class: NavPoint
If this point marks a jump destination - some place that can be reached by some special jump.

Specified by:
isJumpDest in class NavPoint

isTeleporter

public boolean isTeleporter()
Description copied from class: NavPoint
If this point marks a teleport.

Specified by:
isTeleporter in class NavPoint

getRotation

public Rotation getRotation()
Description copied from class: NavPoint
If the type is AIMarker. The rotation the bot should be facing, when doing the action specified by AIMarker. Sent only in HandShake.

Specified by:
getRotation in class NavPoint

isRoamingSpot

public boolean isRoamingSpot()
Description copied from class: NavPoint
Some ambush point, where is good chance to intercept approaching opponents. Sent only in HandShake.

Specified by:
isRoamingSpot in class NavPoint

isSnipingSpot

public boolean isSnipingSpot()
Description copied from class: NavPoint
Point good for sniping. Sent only in HandShake.

Specified by:
isSnipingSpot in class NavPoint

getItemInstance

public Item getItemInstance()
Description copied from class: NavPoint
If item should be present at this navpoint it's instance will be here.

Specified by:
getItemInstance in class NavPoint

getOutgoingEdges

public java.util.Map<UnrealId,NavPointNeighbourLink> getOutgoingEdges()
Description copied from class: NavPoint
Maps edge-LEADING_TO-navpoint-UnrealId to neighbour link, those are outgoing edges (those edges that originates in this navpoint going to another one, those you may usually travel).

Specified by:
getOutgoingEdges in class NavPoint

getIncomingEdges

public java.util.Map<UnrealId,NavPointNeighbourLink> getIncomingEdges()
Description copied from class: NavPoint
Maps edge-ORIGINATES_FROM-navpoint-UnrealId to neighbour link, those are incoming edges (those edges that originates in different navpoint and ends here, do not use this to ask whether you can get to navpoint of specific unreal id, use OutgoingEdges instead).

Specified by:
getIncomingEdges in class NavPoint

getPreferedWeapon

public java.lang.String getPreferedWeapon()
Description copied from class: NavPoint
Class of the weapon that should be prefered when using this point for AIMarker specified action. Sent only in HandShake.

Specified by:
getPreferedWeapon in class NavPoint

toString

public java.lang.String toString()
Overrides:
toString in class NavPoint

toHtmlString

public java.lang.String toHtmlString()
Overrides:
toHtmlString in class NavPoint