121 lines
No EOL
5.3 KiB
Lua
121 lines
No EOL
5.3 KiB
Lua
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 |