Skip to content
Snippets Groups Projects
lib_base_location.cpp 1.64 KiB
Newer Older
  • Learn to ignore specific revisions
  • #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);
    }