Files
WickedEngine/WickedEngine/SpriteAnim_BindLua.cpp
T
turanszkij 3bad85e596 update
2016-01-10 11:42:10 +01:00

478 lines
10 KiB
C++

#include "SpriteAnim_BindLua.h"
#include "Vector_BindLua.h"
const char SpriteAnim_BindLua::className[] = "SpriteAnim";
Luna<SpriteAnim_BindLua>::FunctionType SpriteAnim_BindLua::methods[] = {
lunamethod(SpriteAnim_BindLua, SetRot),
lunamethod(SpriteAnim_BindLua, SetRotation),
lunamethod(SpriteAnim_BindLua, SetOpacity),
lunamethod(SpriteAnim_BindLua, SetFade),
lunamethod(SpriteAnim_BindLua, SetRepeatable),
lunamethod(SpriteAnim_BindLua, SetVelocity),
lunamethod(SpriteAnim_BindLua, SetScaleX),
lunamethod(SpriteAnim_BindLua, SetScaleY),
lunamethod(SpriteAnim_BindLua, SetMovingTexAnim),
lunamethod(SpriteAnim_BindLua, SetDrawRecAnim),
lunamethod(SpriteAnim_BindLua, GetRot),
lunamethod(SpriteAnim_BindLua, GetRotation),
lunamethod(SpriteAnim_BindLua, GetOpacity),
lunamethod(SpriteAnim_BindLua, GetFade),
lunamethod(SpriteAnim_BindLua, GetRepeatable),
lunamethod(SpriteAnim_BindLua, GetVelocity),
lunamethod(SpriteAnim_BindLua, GetScaleX),
lunamethod(SpriteAnim_BindLua, GetScaleY),
lunamethod(SpriteAnim_BindLua, GetMovingTexAnim),
lunamethod(SpriteAnim_BindLua, GetDrawRecAnim),
{ NULL, NULL }
};
Luna<SpriteAnim_BindLua>::PropertyType SpriteAnim_BindLua::properties[] = {
{ NULL, NULL }
};
SpriteAnim_BindLua::SpriteAnim_BindLua(const wiSprite::Anim& anim) :anim(anim)
{
}
SpriteAnim_BindLua::SpriteAnim_BindLua(lua_State *L)
{
anim = wiSprite::Anim();
}
SpriteAnim_BindLua::~SpriteAnim_BindLua()
{
}
int SpriteAnim_BindLua::SetRot(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
anim.rot = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetRot(float rot) not enough arguments!");
}
return 0;
}
int SpriteAnim_BindLua::SetRotation(lua_State *L)
{
return SetRot(L);
}
int SpriteAnim_BindLua::SetOpacity(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
anim.opa = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetOpacity(float val) not enough arguments!");
}
return 0;
}
int SpriteAnim_BindLua::SetFade(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
anim.fad = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetFade(float val) not enough arguments!");
}
return 0;
}
int SpriteAnim_BindLua::SetRepeatable(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
anim.repeatable = wiLua::SGetBool(L, 1);
}
else
{
wiLua::SError(L, "SetRepeatable(float val) not enough arguments!");
}
return 0;
}
int SpriteAnim_BindLua::SetVelocity(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
Vector_BindLua* vec = Luna<Vector_BindLua>::lightcheck(L, 1);
if (vec != nullptr)
{
XMStoreFloat3(&anim.vel, vec->vector);
}
else
{
wiLua::SError(L, "SetVelocity(Vector val) argument is not a Vector!");
}
}
else
{
wiLua::SError(L, "SetVelocity(Vector val) not enough arguments!");
}
return 0;
}
int SpriteAnim_BindLua::SetScaleX(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
anim.scaleX = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetScaleX(float val) not enough arguments!");
}
return 0;
}
int SpriteAnim_BindLua::SetScaleY(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
anim.scaleY = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetScaleY(float val) not enough arguments!");
}
return 0;
}
int SpriteAnim_BindLua::SetMovingTexAnim(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
MovingTexData_BindLua* data = Luna<MovingTexData_BindLua>::lightcheck(L, 1);
if (data != nullptr)
{
anim.movingTexAnim = data->data;
}
else
{
wiLua::SError(L, "SetMovingTexAnim(MovingTexAnim data) argument is not a MovingTexAnim!");
}
}
else
{
wiLua::SError(L, "SetMovingTexAnim(MovingTexAnim data) not enough arguments!");
}
return 0;
}
int SpriteAnim_BindLua::SetDrawRecAnim(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
DrawRecData_BindLua* data = Luna<DrawRecData_BindLua>::lightcheck(L, 1);
if (data != nullptr)
{
anim.drawRecAnim = data->data;
}
else
{
wiLua::SError(L, "SetDrawRecAnim(DrawRecAnim data) argument is not a DrawRecAnim!");
}
}
else
{
wiLua::SError(L, "SetDrawRecAnim(DrawRecAnim data) not enough arguments!");
}
return 0;
}
int SpriteAnim_BindLua::GetRot(lua_State *L)
{
wiLua::SSetFloat(L, anim.rot);
return 1;
}
int SpriteAnim_BindLua::GetRotation(lua_State *L)
{
return GetRot(L);
}
int SpriteAnim_BindLua::GetOpacity(lua_State *L)
{
wiLua::SSetFloat(L, anim.opa);
return 1;
}
int SpriteAnim_BindLua::GetFade(lua_State *L)
{
wiLua::SSetFloat(L, anim.fad);
return 1;
}
int SpriteAnim_BindLua::GetRepeatable(lua_State *L)
{
wiLua::SSetBool(L, anim.repeatable);
return 1;
}
int SpriteAnim_BindLua::GetVelocity(lua_State *L)
{
Luna<Vector_BindLua>::push(L, new Vector_BindLua(XMLoadFloat3(&anim.vel)));
return 1;
}
int SpriteAnim_BindLua::GetScaleX(lua_State *L)
{
wiLua::SSetFloat(L, anim.scaleX);
return 1;
}
int SpriteAnim_BindLua::GetScaleY(lua_State *L)
{
wiLua::SSetFloat(L, anim.scaleY);
return 1;
}
int SpriteAnim_BindLua::GetMovingTexAnim(lua_State *L)
{
Luna<MovingTexData_BindLua>::push(L, new MovingTexData_BindLua(anim.movingTexAnim));
return 1;
}
int SpriteAnim_BindLua::GetDrawRecAnim(lua_State *L)
{
Luna<DrawRecData_BindLua>::push(L, new DrawRecData_BindLua(anim.drawRecAnim));
return 1;
}
void SpriteAnim_BindLua::Bind()
{
static bool initialized = false;
if (!initialized)
{
initialized = true;
Luna<SpriteAnim_BindLua>::Register(wiLua::GetGlobal()->GetLuaState());
Luna<MovingTexData_BindLua>::Register(wiLua::GetGlobal()->GetLuaState());
Luna<DrawRecData_BindLua>::Register(wiLua::GetGlobal()->GetLuaState());
}
}
const char MovingTexData_BindLua::className[] = "MovingTexAnim";
Luna<MovingTexData_BindLua>::FunctionType MovingTexData_BindLua::methods[] = {
lunamethod(MovingTexData_BindLua, SetSpeedX),
lunamethod(MovingTexData_BindLua, SetSpeedY),
lunamethod(MovingTexData_BindLua, GetSpeedX),
lunamethod(MovingTexData_BindLua, GetSpeedY),
{ NULL, NULL }
};
Luna<MovingTexData_BindLua>::PropertyType MovingTexData_BindLua::properties[] = {
{ NULL, NULL }
};
MovingTexData_BindLua::MovingTexData_BindLua(const wiSprite::Anim::MovingTexData& data) :data(data)
{
}
MovingTexData_BindLua::MovingTexData_BindLua(lua_State *L)
{
data = wiSprite::Anim::MovingTexData();
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
data.speedX = wiLua::SGetFloat(L, 1);
if (argc > 1)
{
data.speedY = wiLua::SGetFloat(L, 2);
}
}
}
MovingTexData_BindLua::~MovingTexData_BindLua()
{
}
int MovingTexData_BindLua::SetSpeedX(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
data.speedX = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetSpeedX(float val) not enough arguments!");
}
return 0;
}
int MovingTexData_BindLua::SetSpeedY(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
data.speedY = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetSpeedY(float val) not enough arguments!");
}
return 0;
}
int MovingTexData_BindLua::GetSpeedX(lua_State *L)
{
wiLua::SSetFloat(L, data.speedX);
return 1;
}
int MovingTexData_BindLua::GetSpeedY(lua_State *L)
{
wiLua::SSetFloat(L, data.speedY);
return 1;
}
const char DrawRecData_BindLua::className[] = "DrawRecAnim";
Luna<DrawRecData_BindLua>::FunctionType DrawRecData_BindLua::methods[] = {
lunamethod(DrawRecData_BindLua, SetOnFrameChangeWait),
lunamethod(DrawRecData_BindLua, SetFrameCount),
lunamethod(DrawRecData_BindLua, SetJumpX),
lunamethod(DrawRecData_BindLua, SetJumpY),
lunamethod(DrawRecData_BindLua, SetSizX),
lunamethod(DrawRecData_BindLua, SetSizY),
lunamethod(DrawRecData_BindLua, GetOnFrameChangeWait),
lunamethod(DrawRecData_BindLua, GetFrameCount),
lunamethod(DrawRecData_BindLua, GetJumpX),
lunamethod(DrawRecData_BindLua, GetJumpY),
lunamethod(DrawRecData_BindLua, GetSizX),
lunamethod(DrawRecData_BindLua, GetSizY),
{ NULL, NULL }
};
Luna<DrawRecData_BindLua>::PropertyType DrawRecData_BindLua::properties[] = {
{ NULL, NULL }
};
DrawRecData_BindLua::DrawRecData_BindLua(const wiSprite::Anim::DrawRecData& data) :data(data)
{
}
DrawRecData_BindLua::DrawRecData_BindLua(lua_State *L)
{
data = wiSprite::Anim::DrawRecData();
}
DrawRecData_BindLua::~DrawRecData_BindLua()
{
}
int DrawRecData_BindLua::SetOnFrameChangeWait(lua_State* L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
data.onFrameChangeWait = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetOnFrameChangeWait(float val) not enough arguments!");
}
return 0;
}
int DrawRecData_BindLua::SetFrameCount(lua_State* L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
data.frameCount = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetFrameCount(float val) not enough arguments!");
}
return 0;
}
int DrawRecData_BindLua::SetJumpX(lua_State* L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
data.jumpX = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetJumpX(float val) not enough arguments!");
}
return 0;
}
int DrawRecData_BindLua::SetJumpY(lua_State* L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
data.jumpY = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetJumpY(float val) not enough arguments!");
}
return 0;
}
int DrawRecData_BindLua::SetSizX(lua_State* L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
data.sizX = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetSizX(float val) not enough arguments!");
}
return 0;
}
int DrawRecData_BindLua::SetSizY(lua_State* L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
data.sizY = wiLua::SGetFloat(L, 1);
}
else
{
wiLua::SError(L, "SetSizY(float val) not enough arguments!");
}
return 0;
}
int DrawRecData_BindLua::GetOnFrameChangeWait(lua_State* L)
{
wiLua::SSetFloat(L, data.onFrameChangeWait);
return 1;
}
int DrawRecData_BindLua::GetFrameCount(lua_State* L)
{
wiLua::SSetFloat(L, data.frameCount);
return 1;
}
int DrawRecData_BindLua::GetJumpX(lua_State* L)
{
wiLua::SSetFloat(L, data.jumpX);
return 1;
}
int DrawRecData_BindLua::GetJumpY(lua_State* L)
{
wiLua::SSetFloat(L, data.jumpY);
return 1;
}
int DrawRecData_BindLua::GetSizX(lua_State* L)
{
wiLua::SSetFloat(L, data.sizX);
return 1;
}
int DrawRecData_BindLua::GetSizY(lua_State* L)
{
wiLua::SSetFloat(L, data.sizY);
return 1;
}