public class LoqueRunner extends Object implements IUDKPathRunner
This class commands the agent directly to the given location. Silently tries to resolve incidental collisions, troubling pits, obstacles, etc. In other words, give me a destination and you'll be there in no time.
runToLocation(cz.cuni.amis.pogamut.base3d.worldview.object.Location, cz.cuni.amis.pogamut.base3d.worldview.object.Location, cz.cuni.amis.pogamut.base3d.worldview.object.Location, cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.NavPointNeighbourLink, boolean) for details.
| Modifier and Type | Field and Description |
|---|---|
protected AdvancedLocomotion |
body
Agent's body.
|
protected UDKBot |
bot
Agent's bot.
|
protected Logger |
log
Agent's log.
|
protected AgentInfo |
memory
Loque memory.
|
protected Senses |
senses
Base agent's senses.
|
| Constructor and Description |
|---|
LoqueRunner(UDKBot bot,
AgentInfo agentInfo,
AdvancedLocomotion locomotion,
Logger log)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
reset()
Initializes direct running to the given destination.
|
boolean |
runToLocation(Location firstLocation,
Location secondLocation,
Location focus,
NavPointNeighbourLink navPointsLink,
boolean reachable)
Handles running directly to the specified location.
|
protected UDKBot bot
protected AgentInfo memory
protected AdvancedLocomotion body
protected Logger log
protected Senses senses
public LoqueRunner(UDKBot bot, AgentInfo agentInfo, AdvancedLocomotion locomotion, Logger log)
bot - Agent's bot.memory - Loque memory.public void reset()
reset in interface IUDKPathRunnerpublic boolean runToLocation(Location firstLocation, Location secondLocation, Location focus, NavPointNeighbourLink navPointsLink, boolean reachable)
Reachchecks are buggy (they ignore most of the pits). Autotrace rays are buggy (they can not be used to scan the ground). Now, how's the agent supposed to travel along a map full of traps, when he is all blind, his guide-dogs are stupid and blind as well and his white walking stick is twisted?
There is only one thing certain here (besides death and taxes): No navpoint is ever placed above a pit or inside map geometry. But, navpoint positions are usually the only places where we know the ground is safe. So, due to all this, the agent tries to jump whenever possible and still suitable for landing each jump on a navpoint. This still helps overcome most of the map troubles. Though it is counter-productive at times.
runToLocation in interface IUDKPathRunnerfirstLocation - Location to which to run.secondLocation - Location where to continue (may be null).focus - Location to which to look.reachable - Whether the location is reachable.navPointsLink - if we are traveling between two NavPoints connected by a link, we will receive the link with movement information hereCopyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.