17 #ifndef HEADER_SUPERTUX_SQUIRREL_EXPOSED_OBJECT_HPP 18 #define HEADER_SUPERTUX_SQUIRREL_EXPOSED_OBJECT_HPP 22 #include "squirrel/squirrel_virtual_machine.hpp" 23 #include "squirrel/squirrel_util.hpp" 24 #include "squirrel/script_interface.hpp" 25 #include "util/log.hpp" 44 template<
class S,
class T>
68 virtual void expose(HSQUIRRELVM vm, SQInteger table_idx)
override 70 auto name = m_parent->get_name();
76 log_debug <<
"Exposing " << m_parent->get_class() <<
" object " << name << std::endl;
78 auto object = std::make_unique<T>(m_parent->get_uid());
79 expose_object(vm, table_idx, std::move(
object), name);
87 virtual void unexpose(HSQUIRRELVM vm, SQInteger table_idx)
override 89 auto name = m_parent->get_name();
95 log_debug <<
"Unexposing object " << name << std::endl;
97 unexpose_object(vm, table_idx, name);
virtual void unexpose(HSQUIRRELVM vm, SQInteger table_idx) override
Un-exposes the parent GameObject to the script Interface.
Definition: exposed_object.hpp:87
ExposedObject(S *parent)
Constructor.
Definition: exposed_object.hpp:58
This class binds a certain GameObject class to a scripting class.
Definition: exposed_object.hpp:45
Objects that want to expose themself to the scripting environment should implement this interface...
Definition: script_interface.hpp:26
virtual void expose(HSQUIRRELVM vm, SQInteger table_idx) override
Exposes the parent GameObject to the script Interface.
Definition: exposed_object.hpp:68