cz.cuni.amis.pogamut.udk.bot.impl
Class UDKBotModuleController<BOT extends UDKBot>

Package class diagram package UDKBotModuleController
java.lang.Object
  extended by cz.cuni.amis.pogamut.udk.bot.impl.UDKBotController<BOT>
      extended by cz.cuni.amis.pogamut.udk.bot.impl.UDKBotLogicController<BOT>
          extended by cz.cuni.amis.pogamut.udk.bot.impl.UDKBotModuleController<BOT>
Type Parameters:
BOT -
All Implemented Interfaces:
IAgentLogic<LogicModule>, IUDKBotController<BOT>, IUDKBotLogicController<BOT,LogicModule>

public class UDKBotModuleController<BOT extends UDKBot>
extends UDKBotLogicController<BOT>

The most advanced controller that is available. This controller contains all useful modules instantiated.

Modules currently available:

Author:
Jimmy

Field Summary
protected  IAct act
          Shortcut for the UDKBotModuleControllerNew#getAct().
protected  CompleteBotCommandsWrapper body
          Wraps all available commands that can be issued to the virtual body of the bot inside UDK.
protected  AgentConfig config
          Memory module specialized on the agent's configuration inside UDK - name, vision time, manual spawn, cheats (if enabled at GB2004).
protected  ItemDescriptors descriptors
          Sensory module that provides mapping between ItemType and ItemDescriptor providing an easy way to obtain item descriptors for various items in UDK.
protected  Game game
          Memory module specialized on general info about the game - game type, time limit, frag limit, etc.
protected  AgentInfo info
          Memory module specialized on general info about the agent whereabouts - location, rotation, health, current weapon, who is enemy/friend, etc.
protected  Items items
          Memory module specialized on items on the map - which are visible and which are probably spawned.
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
          Shortcut for body.getAdvancedLocomotion() that allows you to manually steer the movement through the environment.
protected  IPathExecutor<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  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  Senses senses
          Memory module specialized on agent's senses - whether the bot has been recently killed, collide with level's geometry, etc.
protected  AdvancedShooting shoot
          Shortcut for body.getAdvancedShooting() that allows you to shoot at opponent.
protected  Weaponry weaponry
          Memory module specialized on info about the bot's weapon and ammo inventory - it can tell you which weapons are loaded, melee/ranged, etc.
protected  IVisionWorldView world
          Shortcut for the UDKBotModuleControllerNew#getWorldView().
 
Fields inherited from class cz.cuni.amis.pogamut.udk.bot.impl.UDKBotLogicController
logicModule
 
Fields inherited from class cz.cuni.amis.pogamut.udk.bot.impl.UDKBotController
bot, user, USER_LOG_CATEGORY_ID
 
Constructor Summary
UDKBotModuleController()
           
 
Method Summary
 void initializeController(BOT bot)
          Called during the construction of the UDKBot before the GameBots2004 greets the bot even before IUDKBotController.prepareBot(UDKBot) method.
protected  void initializeListeners(BOT bot)
          Initializes UDKBotModuleControllerNew#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: UDKBotModuleControllerNew#pathPlanner and UDKBotModuleControllerNew#pathExecutor.
 
Methods inherited from class cz.cuni.amis.pogamut.udk.bot.impl.UDKBotLogicController
beforeFirstLogic, getLogicInitializeTime, getLogicShutdownTime, logic, logicInitialize, logicShutdown
 
Methods inherited from class cz.cuni.amis.pogamut.udk.bot.impl.UDKBotController
botInitialized, botKilled, botShutdown, botSpawned, 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.udk.bot.IUDKBotController
botInitialized, botKilled, botShutdown, botSpawned, getInitializeCommand, getPassword, 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 IUDKBotController.botInitialized(cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.GameInfo, cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.ConfigChange, cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.InitedMessage) is called.

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


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 IUDKBotController.botSpawned(cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


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 IUDKBotController.botInitialized(cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.GameInfo, cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.ConfigChange, cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.InitedMessage) is called.

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


descriptors

protected ItemDescriptors descriptors
Sensory module that provides mapping between ItemType and ItemDescriptor providing an easy way to obtain item descriptors for various items in UDK.

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

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


items

protected Items items
Memory module specialized on items on the map - which are visible and which are probably spawned.

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

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


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 IUDKBotController.botInitialized(cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.GameInfo, cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.ConfigChange, cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.InitedMessage) is called.

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


weaponry

protected Weaponry weaponry
Memory module specialized on info about the bot's weapon and ammo inventory - it can tell you which weapons are loaded, melee/ranged, etc.

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

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


config

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

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

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


raycasting

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

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


body

protected CompleteBotCommandsWrapper body
Wraps all available commands that can be issued to the virtual body of the bot inside UDK.

May be used since since the first IUDKBotController.botSpawned(cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


shoot

protected AdvancedShooting shoot
Shortcut for body.getAdvancedShooting() that allows you to shoot at opponent.

Note: more weapon-handling methods are available through UDKBotModuleControllerNew#weaponry.

May be used since since the first IUDKBotController.botSpawned(cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


move

protected AdvancedLocomotion move
Shortcut for body.getAdvancedLocomotion() that allows you to manually steer the movement through the environment.

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

May be used since since the first IUDKBotController.botSpawned(cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UDKBotModuleControllerNew#initializeModules(UDKBot).


pathExecutor

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

May be used since since the first IUDKBotController.botSpawned(cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UDKBotModuleControllerNew#initializePathFinding(UDKBot).


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 IUDKBotController.botSpawned(cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.GameInfo, ConfigChange, InitedMessage, Self) is called.

Initialized inside UDKBotModuleControllerNew#initializePathFinding(UDKBot).


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.


world

protected IVisionWorldView world
Shortcut for the UDKBotModuleControllerNew#getWorldView().


act

protected IAct act
Shortcut for the UDKBotModuleControllerNew#getAct().

Constructor Detail

UDKBotModuleController

public UDKBotModuleController()
Method Detail

initializeController

public void initializeController(BOT bot)
Description copied from interface: IUDKBotController
Called during the construction of the UDKBot before the GameBots2004 greets the bot even before IUDKBotController.prepareBot(UDKBot) method.

NOTE: This is Pogamut's developers reserved method - do not override it and if you do, always use 'super' to call parent's initializeController.

Specified by:
initializeController in interface IUDKBotController<BOT extends UDKBot>
Overrides:
initializeController in class UDKBotLogicController<BOT extends UDKBot>

initializeListeners

protected void initializeListeners(BOT bot)
Initializes UDKBotModuleControllerNew#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: UDKBotModuleControllerNew#pathPlanner and UDKBotModuleControllerNew#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 -


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