BWAPI
UAlbertaBot_src/Projects/UAlbertaBot/Source/base/BuildingPlacer.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Common.h"
00004 #include "BuildingData.h"
00005 #include "MetaType.h"
00006 
00007 class BuildingPlacer
00008 {
00009 
00010         BuildingPlacer();
00011 
00012         static BuildingPlacer * instance;
00013 
00014         std::vector< std::vector<bool> > reserveMap;
00015         int buildDistance;
00016 
00017         int                                     boxTop, 
00018                                                 boxBottom, 
00019                                                 boxLeft, 
00020                                                 boxRight;
00021 
00022  public:
00023 
00024         
00025         static BuildingPlacer * getInstance();
00026 
00027         // queries for various BuildingPlacer data
00028         bool                                    buildable(int x, int y) const;
00029         bool                                    isReserved(int x, int y) const;
00030         bool                                    isInResourceBox(int x, int y) const;
00031         bool                                    tileOverlapsBaseLocation(BWAPI::TilePosition tile, BWAPI::UnitType type) const;
00032 
00033         // determines whether we can build at a given location
00034         bool                                    canBuildHere(BWAPI::TilePosition position, const Building & b) const;
00035         bool                                    canBuildHereWithSpace(BWAPI::TilePosition position, const Building & b, int buildDist, bool horizontalOnly = false) const;
00036 
00037         // returns a build location near a building's desired location
00038         BWAPI::TilePosition             getBuildLocationNear(const Building & b, int buildDist, bool inRegion = false, bool horizontalOnly = false) const;
00039         
00040         void                                    reserveTiles(BWAPI::TilePosition position, int width, int height);
00041         void                                    freeTiles(BWAPI::TilePosition position, int width, int height);
00042         void                                    setBuildDistance(int distance);
00043         int                                             getBuildDistance() const;
00044         
00045         void                                    drawReservedTiles();
00046         void                                    computeResourceBox();
00047         
00048         BWAPI::TilePosition             getRefineryPosition();
00049         
00050 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines