cz.cuni.amis.pogamut.emohawk.bot.impl
Class EmohawkBotController<BOT extends UT2004Bot>

Package class diagram package EmohawkBotController
java.lang.Object
  extended by cz.cuni.amis.pogamut.ut2004.bot.impl.UT2004BotController<BOT>
      extended by cz.cuni.amis.pogamut.ut2004.bot.impl.UT2004BotLogicController<BOT>
          extended by cz.cuni.amis.pogamut.emohawk.bot.impl.EmohawkBotController<BOT>
All Implemented Interfaces:
IAgentLogic<LogicModule>, IUT2004BotController<BOT>, IUT2004BotLogicController<BOT,LogicModule>

public class EmohawkBotController<BOT extends UT2004Bot>
extends UT2004BotLogicController<BOT>


Field Summary
protected  IAct act
          Shortcut for the UT2004BotController.getAct().
protected  Animations animations
          Module for handling animations.
protected  Communication comm
          Allows you to speak!
protected  AgentConfig config
          Memory module specialized on the agent's configuration inside UT2004 - name, vision time, manual spawn, cheats (if enabled at GB2004).
protected  EmohawkNavigation emohawkNavigation
          Can be used for bot navigation within the environment.
protected  Emoticons emoticons
          Module for handling emoticons.
protected  FloydWarshallMap fwMap
          Path-planner (IPathPlanner using NavPoints), you may use it to find paths inside the environment wihtout waiting for round-trip of GetPath command and PathLists response from UT2004.
protected  Game game
          Memory module specialized on general info about the game - game type, time limit, frag limit, etc.
protected  UT2004GetBackToNavGraph getBackToNavGraph
          Navigation helper that is able to get your bot back to the nearest navigation graph so you can use UT2004BotModuleController.navigation without fear of catastrophe.
protected  AgentInfo info
          Memory module specialized on general info about the agent whereabouts - location, rotation, health, current weapon, who is enemy/friend, etc.
protected  Inventory inventory
          High-level access to inventory and items.
protected  AnnotationListenerRegistrator listenerRegistrator
          Listener registrator that probes declared methods for the presence of EventListener, ObjectClassEventListener, ObjectClassListener, ObjectEventListener and ObjectListener annotations and automatically registers them as listeners on a specific events.
protected  AdvancedLocomotion move
          This allows you to manually steer the movement through the environment.
protected  UT2004Navigation navigation
          Command module that is internally using UT2004PathExecutor for path-following and FloydWarshallMap for path planning resulting in unified class that can solely handle navigation of the bot within the environment.
protected  UT2004PathExecutor<ILocated> pathExecutor
          Executor is used for following a path in the environment.
protected  IPathPlanner<ILocated> pathPlanner
          Planner used to compute the path (consisting of navigation points) inside the map.
protected  Places places
          High-level description of the map.
protected  Players players
          Memory module specialized on whereabouts of other players - who is visible, enemy / friend, whether bot can see anybody, etc.
protected  Random random
          Random number generator that is usually useful to have during decision making.
protected  Raycasting raycasting
          Support for creating rays used for raycasting (see AutoTraceRay that is being utilized).
protected  UT2004RunStraight runStraight
          Navigation helper that can run-straight to some point with stuck detectors.
protected  Senses senses
          Memory module specialized on agent's senses - whether the bot has been recently killed, collide with level's geometry, etc.
protected  AgentStats stats
          Module that is providing various statistics about the bot.
protected  Steering steering
          High-level access to steering library.
protected  IVisionWorldView world
          Shortcut for the UT2004BotController.getWorldView().
 
Fields inherited from class cz.cuni.amis.pogamut.ut2004.bot.impl.UT2004BotLogicController
logicModule
 
Fields inherited from class cz.cuni.amis.pogamut.ut2004.bot.impl.UT2004BotController
bot, log, USER_LOG_CATEGORY_ID
 
Constructor Summary
EmohawkBotController()
           
 
Method Summary
 void finishControllerInitialization()
           
 AgentConfig getConfig()
           
 FloydWarshallMap getFwMap()
           
 Game getGame()
           
 AgentInfo getInfo()
           
 AdvancedLocomotion getMove()
           
 UT2004Navigation getNavigation()
           
 cz.cuni.amis.pogamut.unreal.agent.navigation.IUnrealPathExecutor<ILocated> getPathExecutor()
           
 IPathPlanner<ILocated> getPathPlanner()
           
 Players getPlayers()
           
 Random getRandom()
           
 Raycasting getRaycasting()
           
 Senses getSenses()
           
 AgentStats getStats()
           
 IVisionWorldView getWorld()
           
 void initializeController(BOT bot)
           
protected  void initializeListeners(BOT bot)
          Initializes UT2004BotModuleControllerNew#listenerRegistrator and calls AnnotationListenerRegistrator.addListeners() method to probe all declared methods for event-annotation presence.
protected  void initializeModules(BOT bot)
          Initializes memory/command modules of the bot.
protected  void initializePathFinding(BOT bot)
          Initializes path-finding modules: UT2004BotModuleControllerNew#pathPlanner, UT2004BotModuleController.fwMap and UT2004BotModuleControllerNew#pathExecutor.
 
Methods inherited from class cz.cuni.amis.pogamut.ut2004.bot.impl.UT2004BotLogicController
beforeFirstLogic, getLogicInitializeTime, getLogicShutdownTime, initializeLogic, logic, logicInitialize, logicShutdown
 
Methods inherited from class cz.cuni.amis.pogamut.ut2004.bot.impl.UT2004BotController
botFirstSpawn, botInitialized, botKilled, botShutdown, getAct, getBot, getInitializeCommand, getLog, getPassword, getWorldView, prepareBot
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface cz.cuni.amis.pogamut.ut2004.bot.IUT2004BotController
botFirstSpawn, botInitialized, botKilled, botShutdown, getAct, getBot, getInitializeCommand, getLog, getPassword, getWorldView, prepareBot
 

Field Detail

random

protected Random random
Random number generator that is usually useful to have during decision making.


game

protected Game game
Memory module specialized on general info about the game - game type, time limit, frag limit, etc.

May be used since IUT2004BotController.botInitialized(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.ConfigChange, cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.InitedMessage) is called.

Initialized inside UT2004BotModuleController.initializeModules(UT2004Bot).


info

protected AgentInfo info
Memory module specialized on general info about the agent whereabouts - location, rotation, health, current weapon, who is enemy/friend, etc.

May be used since first Self message is received, i.e, since the first IUT2004BotController.botFirstSpawn(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UT2004BotModuleController.initializeModules(UT2004Bot).


players

protected Players players
Memory module specialized on whereabouts of other players - who is visible, enemy / friend, whether bot can see anybody, etc.

May be used since IUT2004BotController.botInitialized(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.ConfigChange, cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.InitedMessage) is called.

Initialized inside UT2004BotModuleController.initializeModules(UT2004Bot).


senses

protected Senses senses
Memory module specialized on agent's senses - whether the bot has been recently killed, collide with level's geometry, etc.

May be used since IUT2004BotController.botInitialized(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.ConfigChange, cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.InitedMessage) is called.

Initialized inside UT2004BotModuleController.initializeModules(UT2004Bot).


config

protected AgentConfig config
Memory module specialized on the agent's configuration inside UT2004 - name, vision time, manual spawn, cheats (if enabled at GB2004).

May be used since IUT2004BotController.botInitialized(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, ConfigChange, cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.InitedMessage) is called.

Initialized inside UT2004BotModuleController.initializeModules(UT2004Bot).


raycasting

protected Raycasting raycasting
Support for creating rays used for raycasting (see AutoTraceRay that is being utilized).

May be used since IUT2004BotController.botInitialized(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.ConfigChange, cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.InitedMessage) is called.

Initialized inside UT2004BotModuleController.initializeModules(UT2004Bot).


move

protected AdvancedLocomotion move
This allows you to manually steer the movement through the environment.

Note: navigation is done via UT2004BotModuleControllerNew#pathExecutor that needs PathHandle from the UT2004BotModuleControllerNew#pathPlanner.

May be used since since the first IUT2004BotController.botFirstSpawn(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UT2004BotModuleController.initializeModules(UT2004Bot).


comm

protected Communication comm
Allows you to speak!


pathExecutor

protected UT2004PathExecutor<ILocated> pathExecutor
Executor is used for following a path in the environment.

May be used since since the first IUT2004BotController.botFirstSpawn(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UT2004BotModuleController.initializePathFinding(UT2004Bot).


pathPlanner

protected IPathPlanner<ILocated> pathPlanner
Planner used to compute the path (consisting of navigation points) inside the map.

May be used since since the first IUT2004BotController.botFirstSpawn(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UT2004BotModuleController.initializePathFinding(UT2004Bot).


getBackToNavGraph

protected UT2004GetBackToNavGraph getBackToNavGraph
Navigation helper that is able to get your bot back to the nearest navigation graph so you can use UT2004BotModuleController.navigation without fear of catastrophe.

May be used since IUT2004BotController.botInitialized(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage) is called.

Initialized inside UT2004BotModuleController.initializePathFinding(UT2004Bot).


runStraight

protected UT2004RunStraight runStraight
Navigation helper that can run-straight to some point with stuck detectors.

May be used since IUT2004BotController.botInitialized(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage) is called.

Initialized inside UT2004BotModuleController.initializePathFinding(UT2004Bot).


navigation

protected UT2004Navigation navigation
Command module that is internally using UT2004PathExecutor for path-following and FloydWarshallMap for path planning resulting in unified class that can solely handle navigation of the bot within the environment.

In contrast to UT2004PathExecutor methods of this module may be recalled every UT2004BotLogicController.logic() iteration even with the same argument (which is not true for BasePathExecutor.followPath(cz.cuni.amis.pogamut.base.agent.navigation.IPathFuture).

Note that this class is actually initialized with instances of UT2004BotModuleController.pathExecutor and UT2004BotModuleController.fwMap so you must take care if using add/remove stuck detectors or reinitilize this property to your liking (you can do that in UT2004BotController.botInitialized(cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage) method.

May be used since first UT2004BotLogicController.logic() is called.

Initialized inside UT2004BotModuleController.initializePathFinding(UT2004Bot).


listenerRegistrator

protected AnnotationListenerRegistrator listenerRegistrator
Listener registrator that probes declared methods for the presence of EventListener, ObjectClassEventListener, ObjectClassListener, ObjectEventListener and ObjectListener annotations and automatically registers them as listeners on a specific events.

Note that this registrator is usable for 'this' object only! It will work only for 'this' object.


emohawkNavigation

protected EmohawkNavigation emohawkNavigation
Can be used for bot navigation within the environment. Similar to UT2004Navigation but uses Steering with PeopleAvoidanceSteer.

May be used since first UT2004BotLogicController.logic() is called.

Initialized inside UT2004BotModuleController.initializePathFinding(UT2004Bot).


world

protected IVisionWorldView world
Shortcut for the UT2004BotController.getWorldView().


act

protected IAct act
Shortcut for the UT2004BotController.getAct().


stats

protected AgentStats stats
Module that is providing various statistics about the bot. You may also used it to output these stats (in CSV format) into some file using AgentStats.startOutput(String) or AgentStats.startOutput(String, boolean).


fwMap

protected FloydWarshallMap fwMap
Path-planner (IPathPlanner using NavPoints), you may use it to find paths inside the environment wihtout waiting for round-trip of GetPath command and PathLists response from UT2004. It is much faster than UT2004BotModuleController.pathPlanner but you need to pass NavPoint instances to planner instead of ILocated ... to find the nearest NavPoint instance, DistanceUtils is a handy, check especially DistanceUtils.getNearest(java.util.Collection, ILocated).


animations

protected Animations animations
Module for handling animations.


emoticons

protected Emoticons emoticons
Module for handling emoticons.


places

protected Places places
High-level description of the map.


steering

protected Steering steering
High-level access to steering library.


inventory

protected Inventory inventory
High-level access to inventory and items.

Constructor Detail

EmohawkBotController

public EmohawkBotController()
Method Detail

initializeController

public void initializeController(BOT bot)
Specified by:
initializeController in interface IUT2004BotController<BOT extends UT2004Bot>
Overrides:
initializeController in class UT2004BotLogicController<BOT extends UT2004Bot>

initializeListeners

protected void initializeListeners(BOT bot)
Initializes UT2004BotModuleControllerNew#listenerRegistrator and calls AnnotationListenerRegistrator.addListeners() method to probe all declared methods for event-annotation presence.

Parameters:
bot -

initializePathFinding

protected void initializePathFinding(BOT bot)
Initializes path-finding modules: UT2004BotModuleControllerNew#pathPlanner, UT2004BotModuleController.fwMap and UT2004BotModuleControllerNew#pathExecutor. If you need different path planner / path executor - override this method and initialize your own modules.

Parameters:
bot -

initializeModules

protected void initializeModules(BOT bot)
Initializes memory/command modules of the bot.

Parameters:
bot -

finishControllerInitialization

public void finishControllerInitialization()
Specified by:
finishControllerInitialization in interface IUT2004BotController<BOT extends UT2004Bot>
Overrides:
finishControllerInitialization in class UT2004BotController<BOT extends UT2004Bot>

getRandom

public Random getRandom()

getGame

public Game getGame()

getInfo

public AgentInfo getInfo()

getPlayers

public Players getPlayers()

getSenses

public Senses getSenses()

getConfig

public AgentConfig getConfig()

getRaycasting

public Raycasting getRaycasting()

getMove

public AdvancedLocomotion getMove()

getPathExecutor

public cz.cuni.amis.pogamut.unreal.agent.navigation.IUnrealPathExecutor<ILocated> getPathExecutor()

getPathPlanner

public IPathPlanner<ILocated> getPathPlanner()

getWorld

public IVisionWorldView getWorld()

getStats

public AgentStats getStats()

getFwMap

public FloydWarshallMap getFwMap()

getNavigation

public UT2004Navigation getNavigation()


Copyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.