The following document contains the results of PMD's CPD 4.2.5.
| File | Line |
|---|---|
| cz\cuni\amis\pogamut\sposh\context\UT2004Behaviour.java | 372 |
| cz\cuni\amis\pogamut\sposh\context\UT2004Context.java | 363 |
protected void initialize() {
initializeModules(bot);
initializePathFinding(bot);
initializeListeners(bot);
}
/**
* Initializes {@link UT2004Behaviour#listenerRegistrator} and calls {@link AnnotationListenerRegistrator#addListeners()} method
* to probe all declared methods for event-annotation presence.
* @param bot
*/
protected void initializeListeners(BOT bot) {
listenerRegistrator = new AnnotationListenerRegistrator(this, getWorldView(), bot.getLogger().getCategory("Listeners"));
listenerRegistrator.addListeners();
}
/**
* Initializes path-finding modules: {@link UT2004BotModuleControllerNew#pathPlanner} and {@link UT2004BotModuleControllerNew#pathExecutor}.
* If you need different path planner / path executor - override this method and initialize your own modules.
* @param bot
*/
protected void initializePathFinding(BOT bot) {
pathPlanner = new UT2004AStarPathPlanner(bot);
fwMap = new FloydWarshallMap(bot);
aStar = new UT2004AStar(bot);
pathExecutor =
new UT2004PathExecutor<ILocated>(
bot,
new LoqueNavigator<ILocated>(bot,
bot.getLog())
);
getBackToNavGraph = new UT2004GetBackToNavGraph(bot, info, move);
runStraight = new UT2004RunStraight(bot, info, move);
navigation = new UT2004Navigation(bot, pathExecutor, fwMap, getBackToNavGraph, runStraight);
}
/**
* Initializes memory/command modules of the bot.
*
* @param bot
*/
protected void initializeModules(BOT bot) {
world = getWorldView();
act = getAct();
game = new Game(bot);
navPoints = new NavPoints(bot);
players = new Players(bot);
descriptors = new ItemDescriptors(bot);
config = new AgentConfig(bot);
raycasting = new Raycasting(bot);
stats = new AgentStats(bot);
navBuilder = new NavigationGraphBuilder(bot);
info = new AgentInfo(bot, game);
visibility = new Visibility(bot, info);
ctf = new CTF(bot, info);
weaponry = new Weaponry(bot, descriptors);
items = new Items(bot, info, game, weaponry, null);
senses = new Senses(bot, info, players);
body = new CompleteBotCommandsWrapper(bot, weaponry, null);
shoot = body.getImprovedShooting();
move = body.getLocomotion();
weaponPrefs = new WeaponPrefs(weaponry, bot);
combo = new AdrenalineCombo(bot, info);
}
/**
* Called after the behaviour construction to initialize user's data structures.
* @param bot
*/
protected void prepareBehaviour(BOT bot) {
}
/**
* This method is called whenever {@link InitedMessage} is received. Various agent modules are usable since this
* method is called.
*
* @param gameInfo
* @param config
* @param init
* @param self
*/
public void botInitialized(GameInfo info, ConfigChange config, InitedMessage init) {
}
/**
* This method is called only once whenever first batch of information what the bot can see is received.
* <i><i>
* It is sort of "first-logic-method" where you may issue commands for the first time and handle everything
* else in bot's logic then. It eliminates the need to have 'boolean firstLogic' field inside your bot.
* <p><p>
* Note that this method has advantage over the {@link IUT2004BotController#botInitialized(GameInfo, ConfigChange, InitedMessage)}
* that you already have {@link Self} object.
*
* @param gameInfo
* @param config
* @param init
* @param self
*/
public void botSpawned(GameInfo gameInfo, ConfigChange config, InitedMessage init, Self self) {
}
/**
* Called after {@link UT2004Behaviour#botFirstSpawn(GameInfo, ConfigChange, InitedMessage, Self)} as a hook for Pogamut's core developers
* to finalize initialization of various modules.
* <p><p>
* <b>NOTE:</b> This is Pogamut's developers reserved method - do not override it and if you do, always use 'super'
* to call parent's finishControllerInitialization.
*/
public void finishInitialization() { | |