BWAPI
|
00001 #pragma once 00002 #include <map> 00003 #include <set> 00004 #include <BWAPI.h> 00005 #include <BWTA.h> 00006 #include "Macro/Arbitrator.h" 00007 #include <Macro/Base.h> 00008 #include <Macro/BorderManager.h> 00009 00010 class BasesManager 00011 { 00012 public: 00013 static BasesManager* create(); 00014 static void destroy(); 00015 00016 void setBorderManager(BorderManager* borderManager); 00017 void update(); 00018 00019 Base* getBase(BWTA::BaseLocation* location); 00020 void expand(BWTA::BaseLocation* location = NULL); 00021 void setFirstGasPop(int pop); 00022 00023 const std::list<Base*>& getAllBases() const; 00024 std::set<BWTA::Region*> getRegionsBases() const; 00025 const std::set<Base*>& getActiveBases() const; 00026 const std::set<Base*>& getReadyBases() const; 00027 const std::set<Base*>& getDestroyedBases() const; 00028 00029 std::string getName(); 00030 void onUnitDestroy(BWAPI::Unit* unit); 00031 00032 private: 00033 int firstGasPop; 00034 bool expanding; 00035 BasesManager(); 00036 ~BasesManager(); 00037 std::list<Base*> allBases; 00038 std::map<BWTA::BaseLocation*, Base*> location2base; 00039 std::set<Base*> activeBases; 00040 std::set<Base*> readyBases; 00041 std::set<Base*> destroyedBases; 00042 }; 00043 extern BasesManager* TheBasesManager;