local XUiHostelDeviceUpgradeResult = XUiManager.Register("UiHostelDeviceUpgradeResult") local table_insert = table.insert -- auto -- Automatic generation of code, forbid to edit function XUiHostelDeviceUpgradeResult:InitAutoScript() self:AutoInitUi() self.SpecialSoundMap = {} self:AutoAddListener() end function XUiHostelDeviceUpgradeResult:AutoInitUi() self.PanelFuncUpgradeResult = self.Transform:Find("SafeAreaContentPane/PanelFuncUpgradeResult") self.PanelInfo = self.Transform:Find("SafeAreaContentPane/PanelFuncUpgradeResult/PanelInfo") self.PanelContent = self.Transform:Find("SafeAreaContentPane/PanelFuncUpgradeResult/PanelInfo/PanelContent") self.GridFuncUpgradeResItem = self.Transform:Find("SafeAreaContentPane/PanelFuncUpgradeResult/PanelInfo/PanelContent/GridFuncUpgradeResItem") self.BtnClick = self.Transform:Find("SafeAreaContentPane/PanelFuncUpgradeResult/BtnClick"):GetComponent("Button") end function XUiHostelDeviceUpgradeResult:GetAutoKey(uiNode,eventName) if not uiNode then return end return eventName .. uiNode:GetHashCode() end function XUiHostelDeviceUpgradeResult:RegisterListener(uiNode, eventName, func) local key = self:GetAutoKey(uiNode, eventName) if not key then return end local listener = self.AutoCreateListeners[key] if listener ~= nil then uiNode[eventName]:RemoveListener(listener) end if func ~= nil then if type(func) ~= "function" then XLog.Error("XUiHostelDeviceUpgradeResult:RegisterListener函数错误, 参数func需要是function类型, func的类型是" .. type(func)) end listener = function(...) XSoundManager.PlayBtnMusic(self.SpecialSoundMap[key],eventName) func(self, ...) end uiNode[eventName]:AddListener(listener) self.AutoCreateListeners[key] = listener end end function XUiHostelDeviceUpgradeResult:AutoAddListener() self.AutoCreateListeners = {} XUiHelper.RegisterClickEvent(self, self.BtnClick, self.OnBtnClickClick) end -- auto function XUiHostelDeviceUpgradeResult:OnBtnClickClick() CS.XUiManager.DialogManager:Pop() end function XUiHostelDeviceUpgradeResult:OnOpen(type) self:InitAutoScript() self.GridFuncUpgradeResItem.gameObject:SetActive(false) self.CurFuncType = type self.UiContentList = {} self:UpdateView() end function XUiHostelDeviceUpgradeResult:UpdateView() local deveice = XDataCenter.HostelManager.GetFunctionDeviceData(self.CurFuncType) if not deveice then return end local config = XDataCenter.HostelManager.GetHostelFunctionDeviceLevelTemplate(self.CurFuncType,deveice.Level) if not config then return end self:UpdateFuncDeviceContent(deveice,config) end function XUiHostelDeviceUpgradeResult:UpdateFuncDeviceContent(deveice,config) local datas = {} table_insert(datas,{CS.XTextManager.GetText("HostelDeviceLevel")..CS.XTextManager.GetText("HostelDeviceUp"),deveice.Level}) if config.Type == XDataCenter.HostelManager.FunctionDeviceType.PowerStation then self:GetPowerStationContent(datas,deveice,config) elseif config.Type == XDataCenter.HostelManager.FunctionDeviceType.Factory then self:GetFactoryContent(datas,deveice,config) end local onCreate = function(item, data) item:SetData(data[1],data[2]) end XUiHelper.CreateTemplates(self, self.UiContentList, datas, XUiGridFuncUpgradeResItem.New, self.GridFuncUpgradeResItem.gameObject, self.PanelContent, onCreate) end --发电站内容 function XUiHostelDeviceUpgradeResult:GetPowerStationContent(datas,deveice,config) local str = CS.XTextManager.GetText("HostelDeviceUp") table_insert(datas,{CS.XTextManager.GetText("HostelMaxElectric")..str,config.FunctionParam[3]}) table_insert(datas,{CS.XTextManager.GetText("HostelPerElectric")..str,config.FunctionParam[2].."/"..XUiHelper.GetTimeDesc(config.FunctionParam[1],1)}) local curSlotData = XDataCenter.HostelManager.GetCurDeviceWorkSlot(XDataCenter.HostelManager.FunctionDeviceType.PowerStation) local curWorkEle = 0 for _,v in ipairs(curSlotData) do local slotConfig = XDataCenter.HostelManager.GetFuncDeviceSlotTemplate(v) curWorkEle = curWorkEle + slotConfig.FunctionParam[1] * (slotConfig.FunctionParam[4] + config.FunctionParam[4]) break end table_insert(datas,{CS.XTextManager.GetText("HostelWorkElectric")..str,CS.XTextManager.GetText("HostelPerSlot",curWorkEle)}) table_insert(datas,{CS.XTextManager.GetText("HostelWorkSlot")..str,#curSlotData}) end function XUiHostelDeviceUpgradeResult:GetFactoryContent(datas,deveice,config) local curSlotData = XDataCenter.HostelManager.GetCurDeviceWorkSlot(XDataCenter.HostelManager.FunctionDeviceType.Factory) local curWorkProduct = {} for _,v in ipairs(curSlotData) do local slotConfig = XDataCenter.HostelManager.GetFuncDeviceSlotTemplate(v) local Id = slotConfig.FunctionParam[3] if not curWorkProduct[Id] then curWorkProduct[Id] = slotConfig.FunctionParam[4] + config.FunctionParam[1] end end for Id,count in pairs(curWorkProduct) do table_insert(datas,{CS.XTextManager.GetText("HostelSlotProduct",XDataCenter.ItemManager.GetItemName(Id)),CS.XTextManager.GetText("HostelPerSlot",count)}) end table_insert(datas,{CS.XTextManager.GetText("HostelWorkSlot"),#curSlotData}) end