当前位置: 首页>>代码示例>>C++>>正文


C++ SmartScriptTable::Create方法代码示例

本文整理汇总了C++中SmartScriptTable::Create方法的典型用法代码示例。如果您正苦于以下问题:C++ SmartScriptTable::Create方法的具体用法?C++ SmartScriptTable::Create怎么用?C++ SmartScriptTable::Create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SmartScriptTable的用法示例。


在下文中一共展示了SmartScriptTable::Create方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CreateScriptTable

void CScriptProxy::CreateScriptTable( SEntitySpawnParams* pSpawnParams )
{
	m_pThis = m_pScript->GetScriptSystem()->CreateTable();
	m_pThis->AddRef();
	//m_pThis->Clone( m_pScript->GetScriptTable() );

	CEntitySystem* pEntitySystem = (CEntitySystem*)m_pEntity->GetEntitySystem();
	if (pEntitySystem)
	{
		//pEntitySystem->GetScriptBindEntity()->DelegateCalls( m_pThis );
		m_pThis->Delegate(m_pScript->GetScriptTable());
	}

	// Clone Properties table recursively.
	if (m_pScript->GetPropertiesTable())
	{
		// If entity have an archetype use shared property table.
		IEntityArchetype* pArchetype = m_pEntity->GetArchetype();
		if (!pArchetype)
		{
			// Custom properties table passed
			if (pSpawnParams && pSpawnParams->pPropertiesTable)
			{
				m_pThis->SetValue( SCRIPT_PROPERTIES_TABLE, pSpawnParams->pPropertiesTable);
			}
			else
			{
				SmartScriptTable pProps;
				pProps.Create( m_pScript->GetScriptSystem());
				pProps->Clone( m_pScript->GetPropertiesTable(),true,true );
				m_pThis->SetValue( SCRIPT_PROPERTIES_TABLE,pProps );
			}
		}
		else
		{
			IScriptTable* pPropertiesTable = pArchetype->GetProperties();
			if (pPropertiesTable)
				m_pThis->SetValue( SCRIPT_PROPERTIES_TABLE,pPropertiesTable );
		}

		SmartScriptTable pEntityPropertiesInstance;
		SmartScriptTable pPropsInst;
		if (m_pThis->GetValue("PropertiesInstance",pEntityPropertiesInstance))
		{
			pPropsInst.Create( m_pScript->GetScriptSystem());
			pPropsInst->Clone( pEntityPropertiesInstance, true,true );
			m_pThis->SetValue("PropertiesInstance", pPropsInst);
		}
	}

	// Set self.__this to this pointer of CScriptProxy
	ScriptHandle handle;
	handle.ptr = m_pEntity;
	m_pThis->SetValue( "__this",handle );
	handle.n = m_pEntity->GetId();
	m_pThis->SetValue( "id",handle );
	m_pThis->SetValue( "class",m_pEntity->GetClass()->GetName());
}
开发者ID:joewan,项目名称:pycmake,代码行数:58,代码来源:ScriptProxy.cpp


注:本文中的SmartScriptTable::Create方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。