cz.cuni.amis.pogamut.defcon.communication.worldview.modules.managers.buildings
Class BuildingsManager

Package class diagram package BuildingsManager
java.lang.Object
  extended by cz.cuni.amis.pogamut.defcon.communication.worldview.modules.managers.buildings.BuildingsManager

public class BuildingsManager
extends Object

Manages all known buildings. Be they either own or enemies. Also takes care of updating of all you buildings AIs.

Author:
Radek 'Black_Hand' Pibil

Nested Class Summary
 class BuildingsManager.BuildingWithAI<T extends DefConUnitObject<?>>
          Building and AI pair.
 
Field Summary
protected  IWorldObjectListener<DefConUnitObject<?>> buildingListener
           
protected  SortedMap<Integer,List<DefConUnitObject<?>>> enemyBuildings
           
protected  long lastPlacement
           
protected  DefConAgentLogicController<?> logic
           
protected  ILogicUpdateListener logicListener
           
protected  ArrayList<BuildingsManager.BuildingWithAI<?>> ownBuildings
           
protected static int PLACEMENT_PER_TICK
           
protected static long PLACEMENT_TIMEOUT
           
protected  LinkedList<PlaceStructure> placementQueue
           
protected  int placementsCounter
           
 
Constructor Summary
BuildingsManager(DefConAgentLogicController<?> logic)
           
 
Method Summary
protected  void act(DefConCommand command)
           
protected  void addBuilding(DefConUnitObject<?> building)
           
protected  void addEnemyBuilding(DefConUnitObject<?> building)
           
protected  void addOwnBuilding(DefConUnitObject<?> building)
           
 boolean assignAI(DefConUnitObject<?> building, IBuildingAI ai)
          Assigns AI to the given building.
 SortedMap<Integer,List<DefConUnitObject<?>>> getEnemyBuildings()
          Returns a list of all enemy buildings.
 List<BuildingsManager.BuildingWithAI<?>> getOwnBuildings()
          Returns a list of all own buildings with their AIs.
 List<DefConUnitObject<?>> getSingleEnemyBuildings(int enemyId)
          Returns the list of enemy buildings of the enemy of given id.
static boolean isBuilding(DefConUnitObject<?> unitObject)
           
static boolean isBuilding(UnitType type)
           
 boolean isFinished()
          Returns true if all attempts to place buildings were processed.
 void placeBuildings(List<DefConLocation> locations, UnitType type)
          Tries to place buildings on all given buildings location.
protected  void removeBuilding(DefConUnitObject<?> building)
           
protected  void removeEnemyBuilding(DefConUnitObject<?> building)
           
protected  void removeOwnBuilding(DefConUnitObject<?> building)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ownBuildings

protected final ArrayList<BuildingsManager.BuildingWithAI<?>> ownBuildings

enemyBuildings

protected final SortedMap<Integer,List<DefConUnitObject<?>>> enemyBuildings

placementQueue

protected final LinkedList<PlaceStructure> placementQueue

placementsCounter

protected int placementsCounter

PLACEMENT_PER_TICK

protected static final int PLACEMENT_PER_TICK
See Also:
Constant Field Values

PLACEMENT_TIMEOUT

protected static final long PLACEMENT_TIMEOUT
See Also:
Constant Field Values

lastPlacement

protected long lastPlacement

logicListener

protected final ILogicUpdateListener logicListener

logic

protected DefConAgentLogicController<?> logic

buildingListener

protected IWorldObjectListener<DefConUnitObject<?>> buildingListener
Constructor Detail

BuildingsManager

public BuildingsManager(DefConAgentLogicController<?> logic)
Method Detail

addBuilding

protected void addBuilding(DefConUnitObject<?> building)

removeBuilding

protected void removeBuilding(DefConUnitObject<?> building)

addOwnBuilding

protected void addOwnBuilding(DefConUnitObject<?> building)

removeOwnBuilding

protected void removeOwnBuilding(DefConUnitObject<?> building)

addEnemyBuilding

protected void addEnemyBuilding(DefConUnitObject<?> building)

removeEnemyBuilding

protected void removeEnemyBuilding(DefConUnitObject<?> building)

getOwnBuildings

public List<BuildingsManager.BuildingWithAI<?>> getOwnBuildings()
Returns a list of all own buildings with their AIs.

Returns:

getEnemyBuildings

public SortedMap<Integer,List<DefConUnitObject<?>>> getEnemyBuildings()
Returns a list of all enemy buildings.

Returns:

getSingleEnemyBuildings

public List<DefConUnitObject<?>> getSingleEnemyBuildings(int enemyId)
Returns the list of enemy buildings of the enemy of given id.

Returns:

isBuilding

public static boolean isBuilding(DefConUnitObject<?> unitObject)

isBuilding

public static boolean isBuilding(UnitType type)

placeBuildings

public void placeBuildings(List<DefConLocation> locations,
                           UnitType type)
Tries to place buildings on all given buildings location.

Parameters:
locations -
type -

assignAI

public boolean assignAI(DefConUnitObject<?> building,
                        IBuildingAI ai)
Assigns AI to the given building.

Parameters:
building -
ai -
Returns:

act

protected void act(DefConCommand command)

isFinished

public boolean isFinished()
Returns true if all attempts to place buildings were processed.

Returns:


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