lua binders updated + renderable2dcomponent binding

This commit is contained in:
turanszkij
2015-08-06 19:19:40 +02:00
parent 82452ad93c
commit 0355ff651e
9 changed files with 129 additions and 5 deletions
+26 -4
View File
@@ -1,9 +1,12 @@
#include "MainComponent_BindLua.h"
#include "Renderable3DComponent_BindLua.h"
#include "Renderable2DComponent_BindLua.h"
#include "wiResourceManager_BindLua.h"
const char MainComponent_BindLua::className[] = "MainComponent";
Luna<MainComponent_BindLua>::FunctionType MainComponent_BindLua::methods[] = {
lunamethod(MainComponent_BindLua, GetContent),
lunamethod(MainComponent_BindLua, GetActiveComponent),
lunamethod(MainComponent_BindLua, SetActiveComponent),
lunamethod(MainComponent_BindLua, SetFrameSkip),
@@ -26,16 +29,35 @@ MainComponent_BindLua::~MainComponent_BindLua()
{
}
int MainComponent_BindLua::GetContent(lua_State *L)
{
if (component == nullptr)
{
wiLua::SError(L, "GetContent() component is empty!");
return 0;
}
Luna<wiResourceManager_BindLua>::push(L, new wiResourceManager_BindLua(&component->Content));
return 1;
}
int MainComponent_BindLua::GetActiveComponent(lua_State *L)
{
Renderable3DComponent* comp = dynamic_cast<Renderable3DComponent*>(component->getActiveComponent());
if (comp != nullptr)
//return 3d component if the active one is of that type
Renderable3DComponent* comp3D = dynamic_cast<Renderable3DComponent*>(component->getActiveComponent());
if (comp3D != nullptr)
{
Luna<Renderable3DComponent_BindLua>::push(L, new Renderable3DComponent_BindLua(comp));
Luna<Renderable3DComponent_BindLua>::push(L, new Renderable3DComponent_BindLua(comp3D));
return 1;
}
wiLua::SError(L, "GetActiveComponent() Warning: type of active component not registered with lua!");
//return 2d component if the active one is of that type
Renderable2DComponent* comp2D = dynamic_cast<Renderable2DComponent*>(component->getActiveComponent());
if (comp2D != nullptr)
{
Luna<Renderable2DComponent_BindLua>::push(L, new Renderable2DComponent_BindLua(comp2D));
return 1;
}
wiLua::SError(L, "GetActiveComponent() Warning: type of active component not registered!");
return 0;
}
int MainComponent_BindLua::SetActiveComponent(lua_State *L)
+1
View File
@@ -16,6 +16,7 @@ public:
MainComponent_BindLua(lua_State *L);
~MainComponent_BindLua();
int GetContent(lua_State *L);
int GetActiveComponent(lua_State *L);
int SetActiveComponent(lua_State *L);
int SetFrameSkip(lua_State *L);
+3
View File
@@ -1,11 +1,14 @@
#include "Renderable2DComponent.h"
#include "wiResourceManager.h"
#include "wiSprite.h"
#include "Renderable2DComponent_BindLua.h"
Renderable2DComponent::Renderable2DComponent()
{
setSpriteSpeed(1.f);
m_sprites.clear();
Renderable2DComponent_BindLua::Bind();
}
@@ -0,0 +1,62 @@
#include "Renderable2DComponent_BindLua.h"
#include "wiResourceManager_BindLua.h"
const char Renderable2DComponent_BindLua::className[] = "Renderable2DComponent";
Luna<Renderable2DComponent_BindLua>::FunctionType Renderable2DComponent_BindLua::methods[] = {
lunamethod(Renderable2DComponent_BindLua, GetContent),
lunamethod(Renderable2DComponent_BindLua, AddSprite),
{ NULL, NULL }
};
Luna<Renderable2DComponent_BindLua>::PropertyType Renderable2DComponent_BindLua::properties[] = {
{ NULL, NULL }
};
Renderable2DComponent_BindLua::Renderable2DComponent_BindLua(Renderable2DComponent* component) :component(component)
{
}
Renderable2DComponent_BindLua::Renderable2DComponent_BindLua(lua_State *L)
{
component = new Renderable2DComponent();
}
Renderable2DComponent_BindLua::~Renderable2DComponent_BindLua()
{
}
int Renderable2DComponent_BindLua::GetContent(lua_State *L)
{
if (component == nullptr)
{
wiLua::SError(L, "GetContent() component is empty!");
return 0;
}
Luna<wiResourceManager_BindLua>::push(L, new wiResourceManager_BindLua(&component->Content));
return 1;
}
int Renderable2DComponent_BindLua::AddSprite(lua_State *L)
{
int argc = wiLua::SGetArgCount(L);
if (argc > 1)
{
//TODO
}
else
{
wiLua::SError(L, "AddSprite(Sprite sprite) not enough arguments!");
}
return 0;
}
void Renderable2DComponent_BindLua::Bind()
{
static bool initialized = false;
if (!initialized)
{
initialized = true;
Luna<Renderable2DComponent_BindLua>::Register(wiLua::GetGlobal()->GetLuaState());
}
}
@@ -0,0 +1,24 @@
#pragma once
#include "wiLua.h"
#include "wiLuna.h"
#include "Renderable2DComponent.h"
class Renderable2DComponent_BindLua
{
private:
Renderable2DComponent* component;
public:
static const char className[];
static Luna<Renderable2DComponent_BindLua>::FunctionType methods[];
static Luna<Renderable2DComponent_BindLua>::PropertyType properties[];
Renderable2DComponent_BindLua(Renderable2DComponent* component = nullptr);
Renderable2DComponent_BindLua(lua_State *L);
~Renderable2DComponent_BindLua();
int GetContent(lua_State *L);
int AddSprite(lua_State *L);
static void Bind();
};
@@ -26,6 +26,11 @@ Renderable3DComponent_BindLua::~Renderable3DComponent_BindLua()
int Renderable3DComponent_BindLua::GetContent(lua_State *L)
{
if (component == nullptr)
{
wiLua::SError(L, "GetContent() component is empty!");
return 0;
}
Luna<wiResourceManager_BindLua>::push(L, new wiResourceManager_BindLua(&component->Content));
return 1;
}
+2
View File
@@ -212,6 +212,7 @@
<ClCompile Include="LoadingScreenComponent.cpp" />
<ClCompile Include="MainComponent_BindLua.cpp" />
<ClCompile Include="Renderable2DComponent.cpp" />
<ClCompile Include="Renderable2DComponent_BindLua.cpp" />
<ClCompile Include="Renderable3DComponent_BindLua.cpp" />
<ClCompile Include="wiBackLog.cpp" />
<ClCompile Include="wiBULLET.cpp" />
@@ -411,6 +412,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="MainComponent_BindLua.h" />
<ClInclude Include="Renderable2DComponent_BindLua.h" />
<ClInclude Include="Renderable3DComponent_BindLua.h" />
<ClInclude Include="wiLuna.h" />
<ClInclude Include="wiRenderer_BindLua.h" />
@@ -752,6 +752,9 @@
<ClCompile Include="MainComponent_BindLua.cpp">
<Filter>ScriptBinders</Filter>
</ClCompile>
<ClCompile Include="Renderable2DComponent_BindLua.cpp">
<Filter>ScriptBinders</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="typelib.h">
@@ -1675,6 +1678,9 @@
<ClInclude Include="MainComponent_BindLua.h">
<Filter>ScriptBinders</Filter>
</ClInclude>
<ClInclude Include="Renderable2DComponent_BindLua.h">
<Filter>ScriptBinders</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\io_export_wicked_wi_bin.py" />
@@ -103,7 +103,6 @@ int wiResourceManager_BindLua::Del(lua_State *L)
int wiResourceManager_BindLua::List(lua_State *L)
{
stringstream ss("");
ss << "Resources of: " << wiLua::SGetString(L, 1) << endl;
for (auto& x : resources->resources)
{
ss << x.first << endl;