Skip to content
Snippets Groups Projects
Commit 0637111d authored by David Bergström's avatar David Bergström
Browse files

Add BaseManager to Python-API

parent 2b4077c3
No related branches found
No related tags found
No related merge requests found
#include "library.h"
namespace py = pybind11;
void define_base_location(py::module & m)
{
py::class_<BaseLocation>(m, "BaseLocation")
.def_property_readonly("geysers", &BaseLocation::getGeysers)
.def_property_readonly("minerals", &BaseLocation::getMinerals)
.def_property_readonly("start_location", &BaseLocation::isStartLocation)
.def_property_readonly("depot_position", &BaseLocation::getDepotPosition)
.def_property_readonly("position", &BaseLocation::getPosition)
.def("get_ground_distance", py::overload_cast<const CCPosition &>(&BaseLocation::getGroundDistance, py::const_))
.def("get_ground_distance", py::overload_cast<const CCTilePosition &>(&BaseLocation::getGroundDistance, py::const_))
.def("is_occupied_by_player", &BaseLocation::isOccupiedByPlayer)
.def("is_player_start_location", &BaseLocation::isPlayerStartLocation)
.def("contains_position", &BaseLocation::containsPosition);
py::class_<BaseLocationManager>(m, "BaseLocationManager")
.def_property_readonly("base_locations", &BaseLocationManager::getBaseLocations, py::return_value_policy::reference)
.def_property_readonly("starting_base_locations", &BaseLocationManager::getStartingBaseLocations, py::return_value_policy::reference)
.def("get_occupied_base_locations", &BaseLocationManager::getOccupiedBaseLocations, py::return_value_policy::reference)
.def("get_player_starting_base_locations", &BaseLocationManager::getPlayerStartingBaseLocation, py::return_value_policy::copy)
.def("get_next_expansion", &BaseLocationManager::getNextExpansion, py::return_value_policy::copy);
}
\ No newline at end of file
......@@ -11,6 +11,7 @@ PYBIND11_MODULE(library, m)
define_unittype(m);
define_util(m);
define_point(m);
define_base_location(m);
py::class_<Coordinator>(m, "Coordinator")
.def(py::init())
......@@ -35,7 +36,8 @@ PYBIND11_MODULE(library, m)
.def("OnStep", &IDABot::OnStep)
.def("OnStep_UpdateIDABot", &IDABot::OnStep_UpdateIDABot)
.def("GetAllUnits", &IDABot::GetAllUnits)
.def("GetMyUnits", &IDABot::GetMyUnits);
.def("GetMyUnits", &IDABot::GetMyUnits)
.def_property_readonly("base_manager", &IDABot::Bases);
py::class_<sc2::PlayerSetup>(m, "PlayerSetup");
......
......@@ -50,8 +50,11 @@ public:
}
};
// The functions below are all defined in different .cpp files, in order
// to keep compilation snappy
void define_typeenums(pybind11::module & m);
void define_unit(pybind11::module & m);
void define_unittype(pybind11::module &m);
void define_util(pybind11::module &m);
void define_point(pybind11::module &m);
\ No newline at end of file
void define_point(pybind11::module &m);
void define_base_location(pybind11::module & m);
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment