i32 CMaterialManager::PrepareMaterials(xst_castring& strGroup)
	{
		XST::CLuaTable MaterialsTable( "materials" );

		if( MaterialsTable.Create( &m_LuaApi, "materials" ) != RESULT::OK )
		{
			return RESULT::FAILED;
		}

		CLuaMaterialParser Parser;

		XST::CLuaTable::ChildTableItr TableItr = MaterialsTable.GetChildTableMap().begin();
		for(; TableItr != MaterialsTable.GetChildTableMap().end(); ++TableItr)
		{
			XST::CLuaTable* pTmpTable = TableItr->second;
			if( pTmpTable || this->GetResource( TableItr->first ).IsValid() ) continue;

			MaterialPtr pMat = CreateMaterial( TableItr->first, strGroup );
			if( Parser.Parse( pMat.GetPtr(), pTmpTable ) != RESULT::OK )
			{
				continue;
			}
		}

		return RESULT::OK;
	}