Пользовательские дополнения

На главную


common.GetAddonRelatedTextureGroup( sysGroup, optional )

Возвращает группу связанных с аддоном текстурных ресурсов. Группа представляет собой userdata (RelatedTexturesLua).

-- библиотека:
common

-- объявление:
function GetAddonRelatedTextureGroup( sysGroup, optional )

-- параметры:
sysGroup: string - идентификатор группы
optional: boolean or nil - если true, то отсутствие искомой группы не считается ошибкой (по умолчанию false)

-- возвращаемые значения:
RelatedTexturesLua or nil - группа текстур или nil в случае если группа не найдена

-- пример:
--------------------------------------------------------------------------------
-- Texture caches
--------------------------------------------------------------------------------
do
	--------------------------------------------------------------------------------
	local _textureDefaultGroupId = "Common"
	local _dummyGroup = { HasTexture = function() return false end }
	local _textureAddonGroups = {}
	local _textureAddonCache = {}
	local _textureStateGroups = {}
	local _textureStateCache = {}
	--------------------------------------------------------------------------------
	local function GetGroupTexture( group, groupCache, sysName, optional )
		local result = groupCache[ sysName ]
		if result == nil then
			local hasText = group:HasTexture( sysName )
			if hasText then
				result = group:GetTexture( sysName )
			elseif optional then
				result = false
			---BEGIN_DEBUG---
			else
				local _, sysGroup = table.search( _textureAddonGroups, group )
				if not sysGroup then
					_, sysGroup = table.search( _textureStateGroups, group )
				end
				if group == _dummyGroup then
					LogError( string.format( "Requested texture [%s] from non-existent group [%s]", tostring( sysName ), tostring( sysGroup ) ) )
				else
					LogError( string.format( "Requested non-existent texture [%s] from group [%s]", tostring( sysName ), tostring( sysGroup ) ) )
				end
			---END_DEBUG---
			end
			groupCache[ sysName ] = result
		end
		return result
	end
	--------------------------------------------------------------------------------
	-- Получить текстуру sysName из группы аддона sysGroup (или Common если nil)
	-- Если задано optional то отсутствие текстуры не считается ошибкой (группа должна существовать)
	function GetAddonTexture( sysGroup, sysName, optional )
		sysGroup = sysGroup or _textureDefaultGroupId
		local group = _textureAddonGroups[ sysGroup ]
		if not group then
			group = common.GetAddonRelatedTextureGroup( sysGroup, true ) or _dummyGroup
			_textureAddonGroups[ sysGroup ] = group
			_textureAddonCache[ sysGroup ] = {}
		end
		return GetGroupTexture( group, _textureAddonCache[ sysGroup ], sysName, optional )
	end
	--------------------------------------------------------------------------------
	-- Получить текстуру sysName из группы стейта sysGroup (или Common если nil)
	-- Если задано optional то отсутствие текстуры не считается ошибкой (группа должна существовать)
	function GetStateTexture( sysGroup, sysName, optional )
		sysGroup = sysGroup or _textureDefaultGroupId
		local group = _textureStateGroups[ sysGroup ]
		if not group then
			group = common.GetStateRelatedTextureGroup( sysGroup, true ) or _dummyGroup
			_textureStateGroups[ sysGroup ] = group
			_textureStateCache[ sysGroup ] = {}
		end
		return GetGroupTexture( group, _textureStateCache[ sysGroup ], sysName, optional )
	end
	--------------------------------------------------------------------------------
end
--------------------------------------------------------------------------------

См. описание группы текстурных ресурсов: RelatedTexturesLua

Связанные страницы: "CategoryLuaApi" "CategoryRelatedResources"

CategoryRelatedResources
FunctionCommonGetAddonRelatedSoundGroup
FunctionCommonGetAddonRelatedTextGroup
FunctionCommonGetAddonRelatedTextureGroup
FunctionCommonGetStateRelatedSoundGroup
FunctionCommonGetStateRelatedTextGroup
FunctionCommonGetStateRelatedTextureGroup
FunctionRelatedSoundsLuaGetList
FunctionRelatedSoundsLuaGetSound
FunctionRelatedSoundsLuaHasSound
FunctionRelatedTextsLuaGetList
FunctionRelatedTextsLuaGetText
FunctionRelatedTextsLuaHasText
FunctionRelatedTexturesLuaGetList
FunctionRelatedTexturesLuaGetTexture
FunctionRelatedTexturesLuaHasTexture
RelatedResources
RelatedSoundsLua
RelatedTextsLua
RelatedTexturesLua


CategoryLuaApi CategoryFunction CategoryRelatedResources

На главную