Sdk/Lua: Bind Sprite class
This commit is contained in:
parent
4cd6bdd14a
commit
350c7dad59
|
|
@ -544,10 +544,14 @@ namespace Nz
|
|||
|
||||
inline unsigned int LuaImplQueryArg(const LuaInstance& instance, int index, InstancedRenderableRef* renderable, TypeTag<InstancedRenderableRef>)
|
||||
{
|
||||
if (instance.IsOfType(index, "InstancedRenderable"))
|
||||
*renderable = *static_cast<InstancedRenderableRef*>(instance.CheckUserdata(index, "InstancedRenderable"));
|
||||
if (instance.IsOfType(index, "InstancedRenderable") ||
|
||||
instance.IsOfType(index, "Model") ||
|
||||
instance.IsOfType(index, "Sprite"))
|
||||
{
|
||||
*renderable = *static_cast<InstancedRenderableRef*>(instance.ToUserdata(index));
|
||||
}
|
||||
else
|
||||
*renderable = *static_cast<InstancedRenderableRef*>(instance.CheckUserdata(index, "Model"));
|
||||
instance.ArgError(index, "is not a InstancedRenderable instance");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -650,20 +654,6 @@ namespace Nz
|
|||
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* \brief Replies by value for Lua
|
||||
* \return 1 in case of success
|
||||
*
|
||||
* \param instance Lua instance to interact with
|
||||
* \param val Resulting euler angles
|
||||
*/
|
||||
|
||||
inline int LuaImplReplyVal(const LuaInstance& instance, EulerAnglesd&& val, TypeTag<EulerAnglesd>)
|
||||
{
|
||||
instance.PushInstance<EulerAnglesd>("EulerAngles", val);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Replies by value for Lua
|
||||
* \return 1 in case of success
|
||||
|
|
@ -691,6 +681,20 @@ namespace Nz
|
|||
* \param val Resulting euler angles
|
||||
*/
|
||||
|
||||
inline int LuaImplReplyVal(const LuaInstance& instance, EulerAnglesd&& val, TypeTag<EulerAnglesd>)
|
||||
{
|
||||
instance.PushInstance<EulerAnglesd>("EulerAngles", val);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Replies by value for Lua
|
||||
* \return 1 in case of success
|
||||
*
|
||||
* \param instance Lua instance to interact with
|
||||
* \param val Resulting euler angles
|
||||
*/
|
||||
|
||||
inline int LuaImplReplyVal(const LuaInstance& instance, EulerAnglesf&& val, TypeTag<EulerAnglesf>)
|
||||
{
|
||||
instance.PushInstance<EulerAnglesd>("EulerAngles", val);
|
||||
|
|
@ -847,12 +851,12 @@ namespace Nz
|
|||
* \return 1 in case of success
|
||||
*
|
||||
* \param instance Lua instance to interact with
|
||||
* \param val Resulting vector2D
|
||||
* \param handle Resulting texture
|
||||
*/
|
||||
|
||||
inline int LuaImplReplyVal(const LuaInstance& instance, Vector2d&& val, TypeTag<Vector2d>)
|
||||
inline int LuaImplReplyVal(const LuaInstance& instance, TextureRef&& handle, TypeTag<TextureRef>)
|
||||
{
|
||||
instance.PushInstance<Vector2d>("Vector2", val);
|
||||
instance.PushInstance<TextureRef>("Texture", handle);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -861,12 +865,12 @@ namespace Nz
|
|||
* \return 1 in case of success
|
||||
*
|
||||
* \param instance Lua instance to interact with
|
||||
* \param handle Resulting texture
|
||||
* \param val Resulting vector2D
|
||||
*/
|
||||
|
||||
inline int LuaImplReplyVal(const LuaInstance& instance, TextureRef&& handle, TypeTag<TextureRef>)
|
||||
inline int LuaImplReplyVal(const LuaInstance& instance, Vector2d&& val, TypeTag<Vector2d>)
|
||||
{
|
||||
instance.PushInstance<TextureRef>("Texture", handle);
|
||||
instance.PushInstance<Vector2d>("Vector2", val);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ namespace Ndk
|
|||
// Graphics
|
||||
Nz::LuaClass<Nz::InstancedRenderableRef> instancedRenderable;
|
||||
Nz::LuaClass<Nz::ModelRef> modelClass;
|
||||
Nz::LuaClass<Nz::SpriteRef> spriteClass;
|
||||
|
||||
// Renderer
|
||||
Nz::LuaClass<Nz::TextureRef> texture;
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ namespace Ndk
|
|||
// Graphics
|
||||
instancedRenderable("InstancedRenderable"),
|
||||
modelClass("Model"),
|
||||
spriteClass("Sprite"),
|
||||
|
||||
// Renderer
|
||||
texture("Texture"),
|
||||
|
|
|
|||
|
|
@ -42,6 +42,35 @@ namespace Ndk
|
|||
//modelClass.SetMethod("SetSequence", &Nz::Model::SetSequence);
|
||||
modelClass.BindMethod("SetSkin", &Nz::Model::SetSkin);
|
||||
modelClass.BindMethod("SetSkinCount", &Nz::Model::SetSkinCount);
|
||||
|
||||
/*********************************** Nz::Sprite ***********************************/
|
||||
spriteClass.Inherit<Nz::InstancedRenderableRef>(instancedRenderable, [] (Nz::SpriteRef* sprite) -> Nz::InstancedRenderableRef*
|
||||
{
|
||||
return reinterpret_cast<Nz::InstancedRenderableRef*>(sprite); //TODO: Make a ObjectRefCast
|
||||
});
|
||||
|
||||
spriteClass.SetConstructor([] (Nz::LuaInstance& /*lua*/, Nz::SpriteRef* sprite, std::size_t /*argumentCount*/)
|
||||
{
|
||||
Nz::PlacementNew(sprite, Nz::Sprite::New());
|
||||
return true;
|
||||
});
|
||||
|
||||
spriteClass.BindMethod("GetColor", &Nz::Sprite::GetColor);
|
||||
spriteClass.BindMethod("GetCornerColor", &Nz::Sprite::GetCornerColor);
|
||||
//spriteClass.BindMethod("GetMaterial", &Nz::Sprite::GetMaterial);
|
||||
spriteClass.BindMethod("GetOrigin", &Nz::Sprite::GetOrigin);
|
||||
spriteClass.BindMethod("GetSize", &Nz::Sprite::GetSize);
|
||||
spriteClass.BindMethod("GetTextureCoords", &Nz::Sprite::GetTextureCoords);
|
||||
|
||||
spriteClass.BindMethod("SetColor", &Nz::Sprite::SetColor);
|
||||
spriteClass.BindMethod("SetCornerColor", &Nz::Sprite::SetCornerColor);
|
||||
spriteClass.BindMethod("SetDefaultMaterial", &Nz::Sprite::SetDefaultMaterial);
|
||||
//spriteClass.BindMethod("SetMaterial", &Nz::Sprite::SetMaterial, true);
|
||||
spriteClass.BindMethod("SetOrigin", &Nz::Sprite::SetOrigin);
|
||||
spriteClass.BindMethod("SetSize", (void(Nz::Sprite::*)(const Nz::Vector2f&)) &Nz::Sprite::SetSize);
|
||||
spriteClass.BindMethod("SetTexture", &Nz::Sprite::SetTexture, true);
|
||||
spriteClass.BindMethod("SetTextureCoords", &Nz::Sprite::SetTextureCoords);
|
||||
spriteClass.BindMethod("SetTextureRect", &Nz::Sprite::SetTextureRect);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
@ -54,5 +83,6 @@ namespace Ndk
|
|||
{
|
||||
instancedRenderable.Register(instance);
|
||||
modelClass.Register(instance);
|
||||
spriteClass.Register(instance);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue