Advertisement
Viraax

Untitled

Mar 26th, 2023
506
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include <Python.h>
  4. #include <pybind11/embed.h>
  5. #include <pybind11/stl.h>
  6.  
  7. #include <pixel-core/engine.h>
  8.  
  9. namespace py = pybind11;
  10. using namespace py::literals;
  11.  
  12.  
  13. PYBIND11_EMBEDDED_MODULE(core, m) {
  14.     py::class_<Scene, std::shared_ptr<Scene>>(m, "Scene")
  15.         .def(py::init())
  16.         .def_property_readonly("name", &Scene::getName)
  17.         .def("getEntities", &Scene::getEntities)
  18.         .def("getMetaDataComponent", &Scene::getMetaDataComponent, py::return_value_policy::automatic_reference)
  19.         .def("getTransformComponentByName", &Scene::getTransformComponentByName, py::return_value_policy::automatic_reference)
  20.         .def("getTransformComponent", &Scene::getTransformComponent, py::return_value_policy::automatic_reference);
  21.  
  22.     py::class_<SceneManager, std::shared_ptr<SceneManager>>(m, "SceneManager")
  23.         .def(py::init())
  24.         .def_property_readonly("active_scene", &SceneManager::getActiveScene);
  25.  
  26.     m.def("getSceneManager", []() {
  27.         return Engine::scene_manager;
  28.         });
  29.  
  30.     py::class_<MetaDataComponent, std::shared_ptr<MetaDataComponent>>(m, "MetaDataComponent")
  31.         .def(py::init())
  32.         .def_property("name", &MetaDataComponent::getName, &MetaDataComponent::setName);
  33.  
  34.     py::class_<TransformComponent, std::shared_ptr<TransformComponent>>(m, "TransformComponent")
  35.         .def(py::init())
  36.         .def_property("position", &TransformComponent::getPosition, &TransformComponent::setPosition)
  37.         .def_property("rotation", &TransformComponent::getRotation, &TransformComponent::setRotation)
  38.         .def_property("scale", &TransformComponent::getScale, &TransformComponent::setScale);
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement