本文整理汇总了C++中luaplus::LuaObject类的典型用法代码示例。如果您正苦于以下问题:C++ LuaObject类的具体用法?C++ LuaObject怎么用?C++ LuaObject使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了LuaObject类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: Wrap
static LuaPlus::LuaObject Wrap(Vec3 vector){
LuaPlus::LuaObject vecObj;
vecObj.AssignNewTable(LuaManager::Get()->GetState());
vecObj.SetNumber("x", vector.x);
vecObj.SetNumber("y", vector.y);
vecObj.SetNumber("z", vector.z);
return vecObj;
}
开发者ID:Lanowen,项目名称:DGEngine,代码行数:10,代码来源:ScriptWrappers.hpp
示例2: ApplyTorque
// apply torque to an object from lua
void LuaInternalScriptExports::ApplyTorque(LuaPlus::LuaObject axisLua, float force, int gameObjectId)
{
if (axisLua.IsTable())
{
Vec3 axis(axisLua["x"].GetFloat(), axisLua["y"].GetFloat(), axisLua["z"].GetFloat());
g_pApp->m_pGame->GetGamePhysics()->ApplyTorque(axis, force, gameObjectId);
return;
}
CB_ERROR("Invalid object passed to ApplyForce(). Type = " + std::string(axisLua.TypeName()));
}
开发者ID:deanmarsinelli,项目名称:City-Protectors,代码行数:11,代码来源:LuaScriptExports.cpp
示例3: registerScripts
void LuaScriptExports::registerScripts( void )
{
LuaPlus::LuaObject globals = LuaStateManager::instance()->getGlobalVars();
// Init
InternalLuaScriptExports::init();
// Resource loading
globals.RegisterDirect("loadAndExecuteScriptResource",InternalLuaScriptExports::loadAndExecutreScriptResource);
// Process manager
globals.RegisterDirect("attachProcess",&InternalLuaScriptExports::attachScriptProcess);
// Event system
globals.RegisterDirect("registerEventListener", &InternalLuaScriptExports::registerEventListener);
globals.RegisterDirect("removeEventListener", &InternalLuaScriptExports::removeEventListener);
globals.RegisterDirect("queueEvent", &InternalLuaScriptExports::queueEvent);
globals.RegisterDirect("triggerEvent", &InternalLuaScriptExports::triggerEvent);
// Actors
globals.RegisterDirect("createActor", &InternalLuaScriptExports::createActor);
// Lua log
globals.RegisterDirect("log",&InternalLuaScriptExports::lualog);
}
开发者ID:Ostkaka,项目名称:ANT,代码行数:25,代码来源:LuaScriptExports.cpp
示例4: LuaLog
// write to the log from lua script
void LuaInternalScriptExports::LuaLog(LuaPlus::LuaObject text)
{
if (text.IsConvertibleToString())
{
CB_LOG("Lua", text.ToString());
}
else
{
CB_LOG("Lua", "<" + std::string(text.TypeName()) + ">");
}
}
开发者ID:deanmarsinelli,项目名称:City-Protectors,代码行数:12,代码来源:LuaScriptExports.cpp
示例5:
void ant::InternalLuaScriptExports::lualog( LuaPlus::LuaObject text )
{
if (text.IsConvertibleToString())
{
GCC_LOG("Lua",text.ToString());
}
else
{
GCC_LOG("Lua","<" + std::string(text.TypeName()) + ">");
}
}
开发者ID:Ostkaka,项目名称:ANT,代码行数:11,代码来源:LuaScriptExports.cpp
示例6: GetLookAt
LuaPlus::LuaObject BaseScriptComponent::GetLookAt(void) const
{
LuaPlus::LuaObject ret;
shared_ptr<TransformComponent> pTransformComponent = MakeStrongPtr(m_pOwner->GetComponent<TransformComponent>(TransformComponent::g_Name));
if (pTransformComponent)
LuaStateManager::Get()->ConvertVec3ToTable(pTransformComponent->GetLookAt(), ret);
else
ret.AssignNil(LuaStateManager::Get()->GetLuaState());
return ret;
}
开发者ID:JDHDEV,项目名称:AlphaEngine,代码行数:12,代码来源:BaseScriptComponent.cpp
示例7: AttachScriptProcess
void InternalScriptExports::AttachScriptProcess(LuaPlus::LuaObject scriptProcess)
{
LuaPlus::LuaObject temp = scriptProcess.Lookup("__object");
if (!temp.IsNil())
{
shared_ptr<Process> pProcess(static_cast<Process*>(temp.GetLightUserData()));
g_pApp->m_pGame->AttachProcess(pProcess);
}
else
{
GCC_ERROR("Couldn't find __object in script process");
}
}
开发者ID:wsantas,项目名称:gamecode4,代码行数:13,代码来源:ScriptExports.cpp
示例8: GetYRotationFromVector
// get the y rotation in radians from a lua vec3
float LuaInternalScriptExports::GetYRotationFromVector(LuaPlus::LuaObject vec3)
{
// make sure vec3 is a table
if (vec3.IsTable())
{
Vec3 lookAt(vec3["x"].GetFloat(), vec3["y"].GetFloat(), vec3["z"].GetFloat());
// use the GetYRotationFromVector from math.h
return ::GetYRotationFromVector(lookAt);
}
CB_ERROR("Invalid object passed to GetYRotationFromVector(); type = " + std::string(vec3.TypeName()));
return 0;
}
开发者ID:deanmarsinelli,项目名称:City-Protectors,代码行数:14,代码来源:LuaScriptExports.cpp
示例9: pProcess
void ant::InternalLuaScriptExports::attachScriptProcess( LuaPlus::LuaObject scriptProcess )
{
LuaPlus::LuaObject temp = scriptProcess.Lookup("__object");
if (!temp.IsNil())
{
IProcessStrongPtr pProcess(static_cast<IProcess*>(temp.GetLightUserData()));
ProcessManagerSingleton::instance()->getProcessManager()->attachProcess(pProcess);
}
else
{
GCC_ERROR("Could not find __object in script proces");
}
}
开发者ID:Ostkaka,项目名称:ANT,代码行数:13,代码来源:LuaScriptExports.cpp
示例10: GetPos
LuaPlus::LuaObject LuaScriptComponent::GetPos()
{
// return the objects position to lua
LuaPlus::LuaObject ret;
shared_ptr<TransformComponent> pTransformComponent = MakeStrongPtr(m_pOwner->GetComponent<TransformComponent>(TransformComponent::g_Name));
if (pTransformComponent)
LuaStateManager::Get()->ConvertVec3ToTable(pTransformComponent->GetPosition(), ret);
else
ret.AssignNil(LuaStateManager::Get()->GetLuaState());
return ret;
}
开发者ID:deanmarsinelli,项目名称:City-Protectors,代码行数:13,代码来源:ScriptComponent.cpp
示例11: RegisterEventTypeWithScript
//---------------------------------------------------------------------------------------------------------------------
// This function is called to register an event type with the script to link them. The simplest way to do this is
// with the REGISTER_SCRIPT_EVENT() macro, which calls this function.
//---------------------------------------------------------------------------------------------------------------------
void ScriptEvent::RegisterEventTypeWithScript(const char* key, EventType type)
{
// get or create the EventType table
LuaPlus::LuaObject eventTypeTable = LuaStateManager::Get()->GetGlobalVars().GetByName("EventType");
if (eventTypeTable.IsNil())
eventTypeTable = LuaStateManager::Get()->GetGlobalVars().CreateTable("EventType");
// error checking
GCC_ASSERT(eventTypeTable.IsTable());
GCC_ASSERT(eventTypeTable[key].IsNil());
// add the entry
eventTypeTable.SetNumber(key, (double)type);
}
开发者ID:Rocket-Buddha,项目名称:GameCode4,代码行数:18,代码来源:ScriptEvent.cpp
示例12: GetVectorFromRotation
// create a lua vec3 table from an angle in radians
LuaPlus::LuaObject LuaInternalScriptExports::GetVectorFromRotation(float angleRadians)
{
// use the GetVectorFromYRotation from math.h
Vec3 result = ::GetVectorFromYRotation(angleRadians);
// create a lua vec3 table from the result
LuaPlus::LuaObject luaResult;
luaResult.AssignNewTable(LuaStateManager::Get()->GetLuaState());
luaResult.SetNumber("x", result.x);
luaResult.SetNumber("y", result.y);
luaResult.SetNumber("z", result.z);
return luaResult;
}
开发者ID:deanmarsinelli,项目名称:City-Protectors,代码行数:15,代码来源:LuaScriptExports.cpp
示例13: CreateScriptObject
void BaseScriptComponent::CreateScriptObject(void)
{
LuaStateManager* pStateMgr = LuaStateManager::Get();
AC_ASSERT(pStateMgr);
AC_ASSERT(!m_scriptObject.IsNil());
LuaPlus::LuaObject metaTableObj = pStateMgr->GetGlobalVars().Lookup(METATABLE_NAME);
AC_ASSERT(!metaTableObj.IsNil());
LuaPlus::LuaObject boxedPtr = pStateMgr->GetLuaState()->BoxPointer(this);
boxedPtr.SetMetaTable(metaTableObj);
m_scriptObject.SetLightUserData("__object", this);
m_scriptObject.SetMetaTable(metaTableObj);
}
开发者ID:JDHDEV,项目名称:AlphaEngine,代码行数:14,代码来源:BaseScriptComponent.cpp
示例14: RegisterEventTransformer
void LuaScriptEventManager::RegisterEventTransformer(LuaScriptEventTransformation transformer, EventType type, LPCSTR name)
{
LuaScript* luas = (LuaScript*)chimera::g_pApp->GetScript();
LuaPlus::LuaObject table = luas->GetState()->GetGlobals().GetByName("EventType");
if(table.IsNil())
{
table = luas->GetState()->GetGlobals().CreateTable("EventType");
}
table.SetNumber(name, type);
m_transformMap[type] = transformer;
}
开发者ID:moresascha,项目名称:Chimera,代码行数:14,代码来源:ScriptEvent.cpp
示例15: CreateScriptObject
void LuaScriptComponent::CreateScriptObject()
{
LuaStateManager* pStateManager = LuaStateManager::Get();
CB_ASSERT(pStateManager);
CB_ASSERT(!m_ScriptObject.IsNil());
LuaPlus::LuaObject metaTableObj = pStateManager->GetGlobalVars().Lookup(LUA_METATABLE_NAME);
CB_ASSERT(!metaTableObj.IsNil());
// bind the __object field in lua to this object
LuaPlus::LuaObject boxedPtr = pStateManager->GetLuaState()->BoxPointer(this);
boxedPtr.SetMetaTable(metaTableObj);
m_ScriptObject.SetLightUserData("__object", this);
m_ScriptObject.SetMetaTable(metaTableObj);
}
开发者ID:deanmarsinelli,项目名称:City-Protectors,代码行数:15,代码来源:ScriptComponent.cpp
示例16: LuaPlusGCFunction
void LuaPlusGCFunction(void* s)
{
lua_State* L = (lua_State*)s;
LuaPlus::LuaState* state = lua_State_To_LuaState(L);
if (!state)
return;
global_State* g = G(L);
LuaPlus::LuaObject* curObj = (LuaPlus::LuaObject*)G(L)->gchead_next;
while (curObj != (LuaPlus::LuaObject*)&G(L)->gctail_next)
{
markvalue(g, curObj->GetTObject());
curObj = *(LuaPlus::LuaObject**)curObj;
}
}
开发者ID:Rocket-Buddha,项目名称:GameCode4,代码行数:16,代码来源:LuaPlus.cpp
示例17: GetActorId
LuaPlus::LuaObject BaseScriptComponent::GetActorId(void)
{
//GCC_LOG("ObjectSystem", "BaseScriptComponent::GetEntityId() return 0x" + ToStr(m_pOwner->GetId(), 16) + " on C++ side");
// [rez] Wtf?? Returning an unsigned int here will produce really odd results in Release mode (debug is
// fine). The number will sometimes get truncated, so 0xb1437643 might become 0xb1437600. Even though the
// C++ side is getting the right number, it gets mangled on the way out to Lua. The somewhat hacky fix here
// is to return a LuaPlus::LuaObject, which seems to work just fine. I'm not sure if this will cause any
// efficiency issues, but I'm guessing the LuaPlus internals do something like this anyway to marshal the
// data back to Lua land, so it's probably okay.
LuaPlus::LuaObject ret;
ret.AssignInteger(LuaStateManager::Get()->GetLuaState(), m_pOwner->GetId());
return ret;
//return m_pOwner->GetId();
}
开发者ID:JDHDEV,项目名称:AlphaEngine,代码行数:16,代码来源:BaseScriptComponent.cpp
示例18:
// /////////////////////////////////////////////////////////////////
//
// /////////////////////////////////////////////////////////////////
LuaStateManager::LuaStateManager(void) : m_GlobalState(true)
{
//Create our metatable...
m_MetaTable = m_GlobalState->GetGlobals().CreateTable("LuaStateManagerMetaTable");
m_MetaTable.SetObject("__index", m_MetaTable);
// Here we register two functions to make them accessible to script.
m_MetaTable.RegisterObjectDirect("DoFile", (LuaStateManager *)0, &LuaStateManager::DoFile);
m_MetaTable.RegisterObjectDirect("DoResourceFile", (LuaStateManager *)0, &LuaStateManager::DoResourceFile);
m_MetaTable.RegisterObjectDirect("PrintDebugMessage", (LuaStateManager *)0, &LuaStateManager::PrintDebugMessage);
LuaPlus::LuaObject luaStateManObj = m_GlobalState->BoxPointer(this);
luaStateManObj.SetMetaTable(m_MetaTable);
// And here we expose the metatable as a named entity.
m_GlobalState->GetGlobals().SetObject("LuaStateManager", luaStateManObj);
}
开发者ID:pjohalloran,项目名称:gameframework,代码行数:20,代码来源:LuaStateManager.cpp
示例19: RegisterScriptFunctions
void BaseScriptComponent::RegisterScriptFunctions(void)
{
// create the metatable
LuaPlus::LuaObject metaTableObj = LuaStateManager::Get()->GetGlobalVars().CreateTable(METATABLE_NAME);
metaTableObj.SetObject("__index", metaTableObj);
// transform component functions
metaTableObj.RegisterObjectDirect("GetActorId", (BaseScriptComponent*)0, &BaseScriptComponent::GetActorId);
metaTableObj.RegisterObjectDirect("GetPos", (BaseScriptComponent*)0, &BaseScriptComponent::GetPos);
metaTableObj.RegisterObjectDirect("SetPos", (BaseScriptComponent*)0, &BaseScriptComponent::SetPos);
metaTableObj.RegisterObjectDirect("GetLookAt", (BaseScriptComponent*)0, &BaseScriptComponent::GetLookAt);
metaTableObj.RegisterObjectDirect("GetYOrientationRadians", (BaseScriptComponent*)0, &BaseScriptComponent::GetYOrientationRadians);
metaTableObj.RegisterObjectDirect("RotateY", (BaseScriptComponent*)0, &BaseScriptComponent::RotateY);
metaTableObj.RegisterObjectDirect("Stop", (BaseScriptComponent*)0, &BaseScriptComponent::Stop);
metaTableObj.RegisterObjectDirect("SetPosition", (BaseScriptComponent*)0, &BaseScriptComponent::SetPosition);
}
开发者ID:AsbjoernS,项目名称:gamecode4,代码行数:17,代码来源:BaseScriptComponent.cpp
示例20: LoadScene
bool LoadScene(const std::string &sceneName)
{
std::string fullPath;
fullPath = "Scenes/";
fullPath += sceneName;
fullPath += ".lua";
LuaPlus::LuaStateAuto state;
state = LuaPlus::LuaState::Create();
int retVal = state->DoFile(fullPath.c_str());
_ASSERT(retVal==0);
LuaPlus::LuaObject meshList = state->GetGlobals()["MeshList"];
_ASSERT(meshList.IsTable());
int numMeshes = meshList.GetCount();
for(int meshIndex=1;meshIndex <= meshList.GetCount(); meshIndex++)
{
LuaPlus::LuaObject meshObj = meshList[meshIndex];
LuaPlus::LuaObject nameObj = meshObj["Name"];
_ASSERT(nameObj.IsString());
std::string meshName = nameObj.GetString();
MeshManager::GetInstance().Load(meshName,meshObj);
Instance *inst = InstanceManager::GetInstance().CreateInstance(meshName);
inst->SetMeshName(meshName);
}
return true;
}
开发者ID:brkpt,项目名称:Helix,代码行数:33,代码来源:SceneLoader.cpp
注:本文中的luaplus::LuaObject类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论