Уважаемые разработчики интерфейсных аддонов!

Сообщаем, что в одном из будущих обновлений будут произведены следующие изменения API:

Будут удалены функции:
common.GetAddonRelatedText
common.GetAddonRelatedGroupText
common.GetAddonRelatedTexture
common.GetAddonRelatedGroupTexture

Будет удалена поддержка неименованных текстовых и текстурных групп и соответствующих полей в UIAddon:
texts
textures

Для замены удалённого функционала останутся существовать соответствующие функции:
common.GetAddonRelatedTextGroup
RelatedTextsLua:HasText
RelatedTextsLua:GetText
common.GetAddonRelatedTextureGroup
RelatedTexturesLua:HasTexture
RelatedTexturesLua:GetTexture

Кроме того, мы рекомендуем использовать кеширование текстов и текстур.

Код:
--------------------------------------------------------------------------------
-- Text caches
--------------------------------------------------------------------------------
local ews = common.GetEmptyWString()
function GetEWs() return ews end
--------------------------------------------------------------------------------
local _textGroups = {}
local _textCache = {}
local _textStateGroups = {}
local _textStateCache = {}
--------------------------------------------------------------------------------
local function GetGroupText( group, groupCache, sysName, optional )
	local result = groupCache[ sysName ]
	if result == nil then
		result = group:HasText( sysName ) and group:GetText( sysName )
		groupCache[ sysName ] = result
	end
	if result == false and not optional then
		assert( false, "Non-existent text requested: " .. tostring( sysName ) )
	end
	return result
end
--------------------------------------------------------------------------------
-- Получить текст sysName из текстовой группы аддона sysGroup (группа должна существовать)
-- Если задан optional то при отсутствии текста вернется false, иначе будет вызван assert
function GetAddonText( sysGroup, sysName, optional )
	local group = _textGroups[ sysGroup ]
	if not group then
		group = common.GetAddonRelatedTextGroup( sysGroup )
		_textGroups[ sysGroup ] = group
		_textCache[ sysGroup ] = {}
	end
	return GetGroupText( group, _textCache[ sysGroup ], sysName, optional )
end
--------------------------------------------------------------------------------
-- Получить текст sysName из текстовой группы стейта sysGroup (группа должна существовать)
-- Если задан optional то при отсутствии текста вернется false, иначе будет вызван assert
function GetStateText( sysGroup, sysName, optional )
	local group = _textStateGroups[ sysGroup ]
	if not group then
		group = common.GetStateRelatedTextGroup( sysGroup )
		_textStateGroups[ sysGroup ] = group
		_textStateCache[ sysGroup ] = {}
	end
	return GetGroupText( group, _textStateCache[ sysGroup ], sysName, optional )
end
--------------------------------------------------------------------------------
-- Texture caches
--------------------------------------------------------------------------------
local _textureGroups = {}
local _textureCache = {}
local _textureStateGroups = {}
local _textureStateCache = {}
--------------------------------------------------------------------------------
local function GetGroupTexture( group, groupCache, sysName, optional )
	local result = groupCache[ sysName ]
	if result == nil then
		result = group:HasTexture( sysName ) and group:GetTexture( sysName )
		groupCache[ sysName ] = result
	end
	if result == false and not optional then
		assert( false, "Non-existent texture requested: " .. tostring( sysName ) )
	end
	return result
end
--------------------------------------------------------------------------------
-- Получить текстуру sysName из текстурной группы аддона sysGroup (группа должна существовать)
-- Если задан optional то при отсутствии текстуры вернется false, иначе будет вызван assert
function GetAddonTexture( sysGroup, sysName, optional )
	local group = _textureGroups[ sysGroup ]
	if not group then
		group = common.GetAddonRelatedTextureGroup( sysGroup )
		_textureGroups[ sysGroup ] = group
		_textureCache[ sysGroup ] = {}
	end
	return GetGroupTexture( group, _textureCache[ sysGroup ], sysName, optional )
end
--------------------------------------------------------------------------------
-- Получить текстуру sysName из текстурной группы стейта sysGroup (группа должна существовать)
-- Если задан optional то при отсутствии текстуры вернется false, иначе будет вызван assert
function GetStateTexture( sysGroup, sysName, optional )
	local group = _textureStateGroups[ sysGroup ]
	if not group then
		group = common.GetStateRelatedTextureGroup( sysGroup )
		_textureStateGroups[ sysGroup ] = group
		_textureStateCache[ sysGroup ] = {}
	end
	return GetGroupTexture( group, _textureStateCache[ sysGroup ], sysName, optional )
end
--------------------------------------------------------------------------------


Просим разработчиков, использующих в своих аддонах функции из списка выше, отказаться от них в течение трех месяцев.

Приятной игры!