2025-06-04 05:02:57 +08:00

150 lines
4.1 KiB
Plaintext

IconManager = {};
autoImport("UIAtlasConfig");
autoImport("PictureManager");
function IconManager:Init()
self.atlas = {}
PictureManager.new();
end
function IconManager:SetNpcMonsterIconByID(id,sprite)
local data = Table_Npc[id] or Table_Monster[id]
if(data) then
return self:SetFaceIcon(data.Icon,sprite)
end
end
function IconManager:SetUIIcon(sName, sprite)
return self:SetIcon(sName, sprite, UIAtlasConfig.IconAtlas.uiicon)
end
function IconManager:SetItemIcon(sName,sprite)
return self:SetIcon(sName,sprite, UIAtlasConfig.IconAtlas.Item)
end
--將從所有技能列表里查詢,慎用!!!!!!!!!!
function IconManager:SetSkillIcon(sName,sprite)
return self:SetIcon(sName,sprite, UIAtlasConfig.IconAtlas.Skill)
end
local skillAtlasName = {}
function IconManager:SetSkillIconByProfess(sName,sprite,professType,rollBackFindAll)
local atlas = skillAtlasName[professType]
if(atlas == nil) then
atlas = UIAtlasConfig.IconAtlas["SkillProfess_"..professType]
skillAtlasName[professType] = atlas
end
local res = self:SetIcon(sName,sprite,atlas)
if(not res and rollBackFindAll) then
res = self:SetSkillIcon(sName,sprite)
end
return res
end
function IconManager:SetKeyIcon(sName,sprite)
return self:SetIcon(sName,sprite, UIAtlasConfig.IconAtlas.keyword)
end
function IconManager:SetActionIcon(sName,sprite)
return self:SetIcon(sName,sprite, UIAtlasConfig.IconAtlas.Action)
end
function IconManager:SetMapIcon(sName,sprite)
return self:SetIcon(sName,sprite, UIAtlasConfig.IconAtlas.Map)
end
function IconManager:SetProfessionIcon(sName, sprite)
return self:SetIcon(sName,sprite, UIAtlasConfig.IconAtlas.career)
end
function IconManager:SetFaceIcon(sName, sprite)
return self:SetIcon(sName,sprite, UIAtlasConfig.IconAtlas.face)
end
function IconManager:SetFrameIcon(sName, sprite)
return self:SetIcon(sName, sprite, UIAtlasConfig.IconAtlas.frame)
end
function IconManager:SetHairStyleIcon(sName, sprite)
return self:SetIcon(sName, sprite, UIAtlasConfig.IconAtlas.hairStyle)
end
function IconManager:SetGuildIcon(sName, sprite)
return self:SetIcon(sName, sprite, UIAtlasConfig.IconAtlas.guild)
end
function IconManager:SetHeadAccessoryFrontIcon(sName, sprite)
return self:SetIcon(sName, sprite, UIAtlasConfig.IconAtlas.HeadAccessoryFront)
end
function IconManager:SetHeadAccessoryBackIcon(sName, sprite)
return self:SetIcon(sName, sprite, UIAtlasConfig.IconAtlas.HeadAccessoryBack)
end
function IconManager:SetHeadFaceMouthIcon(sName, sprite)
return self:SetIcon(sName, sprite, UIAtlasConfig.IconAtlas.HeadFaceMouth)
end
function IconManager:SetEyeIcon(sName, sprite)
return self:SetIcon(sName, sprite, UIAtlasConfig.IconAtlas.HeadEye)
end
function IconManager:GetAtlasByType(type)
local atlases = self.atlas[type]
if(atlases==nil) then
atlases = {}
for k,v in pairs(type) do
local rID = v
local atlasObj = ResourceManager.Instance:SLoad(rID);
if(atlasObj~=nil)then
atlases[k] = atlasObj:GetComponent(UIAtlas);
else
print ("can not find atlas "..tostring(v));
end
end
self.atlas[type] = atlases
end
return atlases
end
function IconManager:SetIcon(sName,sprite,atlasType)
sName = tostring(sName);
local atlases = self:GetAtlasByType(atlasType)
if(atlases~=nil) then
for k,v in pairs(atlases) do
local getSData = v:GetSprite(sName);
if(getSData ~= nil)then
sprite.atlas = v;
sprite.spriteName = sName;
return true;
end
end
end
return false;
end
function IconManager:SetMoneyIcon(moneyType,sprite)
if(moneyType and sprite)then
local item=ItemData.new(0,100)
if(moneyType==ProtoCommon_pb.EMONEYTYPE_DIAMOND)then
--todo
elseif(moneyType==ProtoCommon_pb.EMONEYTYPE_SILVER)then
item=ItemData.new(0,100)
elseif(moneyType==ProtoCommon_pb.EMONEYTYPE_GOLD)then
item=ItemData.new(0,105)
elseif(moneyType==ProtoCommon_pb.EMONEYTYPE_GARDEN)then
item=ItemData.new(0,110)
elseif(moneyType==ProtoCommon_pb.EMONEYTYPE_LABORATORY)then
item=ItemData.new(0,115)
elseif(moneyType==ProtoCommon_pb.EMONEYTYPE_FRIENDSHIP)then
item=ItemData.new(0,147)
end
IconManager:SetItemIcon(item.staticData.Icon,sprite)
end
end
IconManager:Init();