Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <Python.h>
- #include <pybind11/embed.h>
- #include <pybind11/stl.h>
- #include <pixel-core/engine.h>
- namespace py = pybind11;
- using namespace py::literals;
- PYBIND11_EMBEDDED_MODULE(core, m) {
- py::class_<Scene, std::shared_ptr<Scene>>(m, "Scene")
- .def(py::init())
- .def_property_readonly("name", &Scene::getName)
- .def("getEntities", &Scene::getEntities)
- .def("getMetaDataComponent", &Scene::getMetaDataComponent, py::return_value_policy::automatic_reference)
- .def("getTransformComponentByName", &Scene::getTransformComponentByName, py::return_value_policy::automatic_reference)
- .def("getTransformComponent", &Scene::getTransformComponent, py::return_value_policy::automatic_reference);
- py::class_<SceneManager, std::shared_ptr<SceneManager>>(m, "SceneManager")
- .def(py::init())
- .def_property_readonly("active_scene", &SceneManager::getActiveScene);
- m.def("getSceneManager", []() {
- return Engine::scene_manager;
- });
- py::class_<MetaDataComponent, std::shared_ptr<MetaDataComponent>>(m, "MetaDataComponent")
- .def(py::init())
- .def_property("name", &MetaDataComponent::getName, &MetaDataComponent::setName);
- py::class_<TransformComponent, std::shared_ptr<TransformComponent>>(m, "TransformComponent")
- .def(py::init())
- .def_property("position", &TransformComponent::getPosition, &TransformComponent::setPosition)
- .def_property("rotation", &TransformComponent::getRotation, &TransformComponent::setRotation)
- .def_property("scale", &TransformComponent::getScale, &TransformComponent::setScale);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement