--=========================== --超级爬塔芯片控件 --=========================== local XUiSuperTowerPluginGrid = XClass(nil, "XUiSuperTowerPluginGrid") function XUiSuperTowerPluginGrid:Ctor(uiGameObject, onClickCallBack) self.IsClickShowDetail = false self:Init(uiGameObject, onClickCallBack) end function XUiSuperTowerPluginGrid:Init(uiGameObject, onClickCallBack) XTool.InitUiObjectByUi(self, uiGameObject) if onClickCallBack then self.OnClickCb = onClickCallBack end XUiHelper.RegisterClickEvent(self, self.BtnClick, function() self:OnClick() end) end --=================== --设置点击是否展示详情 --=================== function XUiSuperTowerPluginGrid:SetClickIsShowDetail(value) self.IsClickShowDetail = value end --=================== --使用插件配置更新UI --=================== function XUiSuperTowerPluginGrid:RefreshCfg(pluginCfg) self.PluginCfg = pluginCfg local pluginScript = require("XEntity/XSuperTower/Plugin/XSuperTowerPlugin") self.Plugin = pluginScript.New(pluginCfg.Id) if self.RImgIcon then self.RImgIcon:SetRawImage(pluginCfg.Icon) end if self.TxtName then self.TxtName.text = pluginCfg.Name end if self.ImgQuality then self.ImgQuality:SetSprite(XSuperTowerConfigs.GetStarIconByQuality(pluginCfg.Quality)) end if self.ImgQualityBg then self.ImgQualityBg:SetSprite(XSuperTowerConfigs.GetStarBgByQuality(pluginCfg.Quality)) end self:RefreshOtherCfg(pluginCfg) end --=================== --使用插件对象更新UI --=================== function XUiSuperTowerPluginGrid:RefreshData(plugin, index) self.Plugin = plugin self.Index = index if self.RImgIcon then self.RImgIcon:SetRawImage(plugin:GetIcon()) end if self.TxtName then self.TxtName.text = plugin:GetName() end if self.ImgQualityBg then self.ImgQuality:SetSprite(self.Plugin:GetQualityIcon()) end if self.ImgQualityBg then self.ImgQualityBg:SetSprite(self.Plugin:GetQualityBg()) end self:RefreshOtherData(plugin) end --=================== --供子类使用的更新方法,如需执行一次父类时就复写这个方法,不需要则复写RefreshData --=================== function XUiSuperTowerPluginGrid:RefreshOtherData(plugin) end --=================== --供子类使用的更新方法,如需执行一次父类时就复写这个方法,不需要则复写RefreshData --=================== function XUiSuperTowerPluginGrid:RefreshOtherCfg(pluginCfg) end function XUiSuperTowerPluginGrid:OnClick() if self.IsClickShowDetail then XLuaUiManager.Open("UiSuperTowerPluginDetails", self.Plugin) end if self.OnClickCb then self.OnClickCb(self) end end function XUiSuperTowerPluginGrid:ShowPanel() self.GameObject:SetActiveEx(true) end function XUiSuperTowerPluginGrid:HidePanel() self.GameObject:SetActiveEx(false) end function XUiSuperTowerPluginGrid:SetNormalLock(value) self.IsLock = value self.ImgNormalLock.gameObject:SetActiveEx(value) end function XUiSuperTowerPluginGrid:SetFloorLock(value, text) self.IsLock = value self.ImgFloorLock.gameObject:SetActiveEx(value) self:SetLockText(text) end function XUiSuperTowerPluginGrid:SetActiveStatus(value) self.IsActive = value self.ImgActive.gameObject:SetActiveEx(value) end function XUiSuperTowerPluginGrid:SetSelectStatus(value) self.IsSelect = value self.ImgSelect.gameObject:SetActiveEx(value) end function XUiSuperTowerPluginGrid:GetPlugin() return self.Plugin end function XUiSuperTowerPluginGrid:SetLockText(text) if self.TxtLock then self.TxtLock.text = text end end function XUiSuperTowerPluginGrid:SetClickCallBack(callback) self.OnClickCb = callback end return XUiSuperTowerPluginGrid