diff --git a/SDK/include/NDK/LuaAPI.inl b/SDK/include/NDK/LuaAPI.inl index 1987bf7c1..685603a6a 100644 --- a/SDK/include/NDK/LuaAPI.inl +++ b/SDK/include/NDK/LuaAPI.inl @@ -625,6 +625,22 @@ namespace Nz return 1; } + /*! + * \brief Queries arguments for Lua + * \return 1 in case of success + * + * \param instance Lua instance to interact with + * \param index Index type + * \param renderable Resulting reference to a sprite + */ + + inline unsigned int LuaImplQueryArg(const LuaInstance& instance, int index, SpriteRef* spriteRef, TypeTag) + { + *spriteRef = *static_cast(instance.CheckUserdata(index, "Sprite")); + + return 1; + } + /*! * \brief Queries arguments for Lua * \return 1 in case of success @@ -1033,6 +1049,20 @@ namespace Nz return 1; } + /*! + * \brief Replies by value for Lua + * \return 1 in case of success + * + * \param instance Lua instance to interact with + * \param handle Resulting sprite + */ + + inline int LuaImplReplyVal(const LuaInstance& instance, SpriteRef&& handle, TypeTag) + { + instance.PushInstance("Sprite", handle); + return 1; + } + /*! * \brief Replies by value for Lua * \return 1 in case of success diff --git a/SDK/include/NDK/LuaBinding.hpp b/SDK/include/NDK/LuaBinding.hpp index 2b3d8d3a0..d22628470 100644 --- a/SDK/include/NDK/LuaBinding.hpp +++ b/SDK/include/NDK/LuaBinding.hpp @@ -78,6 +78,7 @@ namespace Ndk Nz::LuaClass instancedRenderable; Nz::LuaClass model; Nz::LuaClass sprite; + Nz::LuaClass spriteLibrary; // Renderer Nz::LuaClass texture; diff --git a/SDK/src/NDK/LuaBinding.cpp b/SDK/src/NDK/LuaBinding.cpp index c0399ab3a..3a82ffe1a 100644 --- a/SDK/src/NDK/LuaBinding.cpp +++ b/SDK/src/NDK/LuaBinding.cpp @@ -58,6 +58,7 @@ namespace Ndk instancedRenderable("InstancedRenderable"), model("Model"), sprite("Sprite"), + spriteLibrary("SpriteLibrary"), // Renderer texture("Texture"), diff --git a/SDK/src/NDK/LuaBinding_Graphics.cpp b/SDK/src/NDK/LuaBinding_Graphics.cpp index 69545ccdf..3f59b7400 100644 --- a/SDK/src/NDK/LuaBinding_Graphics.cpp +++ b/SDK/src/NDK/LuaBinding_Graphics.cpp @@ -71,6 +71,14 @@ namespace Ndk sprite.BindMethod("SetTexture", &Nz::Sprite::SetTexture, true); sprite.BindMethod("SetTextureCoords", &Nz::Sprite::SetTextureCoords); sprite.BindMethod("SetTextureRect", &Nz::Sprite::SetTextureRect); + + /*********************************** Nz::SpriteLibrary ***********************************/ + + spriteLibrary.BindStaticMethod("Get", &Nz::SpriteLibrary::Get); + spriteLibrary.BindStaticMethod("Has", &Nz::SpriteLibrary::Has); + spriteLibrary.BindStaticMethod("Register", &Nz::SpriteLibrary::Register); + spriteLibrary.BindStaticMethod("Query", &Nz::SpriteLibrary::Query); + spriteLibrary.BindStaticMethod("Unregister", &Nz::SpriteLibrary::Unregister); } /*! @@ -84,5 +92,6 @@ namespace Ndk instancedRenderable.Register(instance); model.Register(instance); sprite.Register(instance); + spriteLibrary.Register(instance); } } \ No newline at end of file