changhong_newclient/lua_probject/base_project/Game/View/NewGroup/GroupFastGamesView.lua

109 lines
2.6 KiB
Lua
Raw Normal View History

2025-06-30 08:39:00 +08:00
-- 能量包
local GroupFastGamesView = {}
local M = GroupFastGamesView
function GroupFastGamesView.new(gid, blur_view, playIdList, uid)
setmetatable(M, { __index = BaseWindow })
local self = setmetatable({}, { __index = M })
self.class = "GroupFastGamesView"
self._close_destroy = true
self.group_id = gid
self.blur_view = blur_view
self.playIdList = playIdList
self.allplays_data = {}
self.uid = uid
self.showid = 0
self:init("ui://NewGroup/Win_SelectGames")
self:FillView()
return self
end
function M:FillView()
--lst_allplays
self.showid = Utils.LoadLocalFile("selectplay"..self.uid)
self.lst_allplays = self._view:GetChild("lst_allplays")
self.lst_allplays:SetVirtual()
self.lst_allplays.itemRenderer = function(index, obj)
self:OnRenderAllPlaysItem(index, obj, self.showid)
end
self:GetFlagPlaysData(self.showid)
end
-- 获取快速开始设置数据
function M:GetFlagPlaysData(showid)
local allplays = self.playIdList
self.allplays_data = allplays
local tmp = {}
for i=1,#allplays do
if showid==allplays[i].id.."" then
tmp = self.allplays_data[1]
self.allplays_data[1] = self.allplays_data[i]
self.allplays_data[i] = tmp
end
end
self.lst_allplays.numItems = #self.allplays_data
end
function M:OnRenderAllPlaysItem(index, obj,showid)
local data = self.allplays_data[index+1]
local exconfig = ExtendManager.GetExtendConfig(data.gameId)
local datajson = json.decode(data.config)
local r = {}
exconfig:FillRoomConfig(r, datajson)
local gameStr = ""
gameStr = string.gsub(r.room_config:GetDes(), "\r", "")
obj:GetChild("tex_name").text = data.name
obj:GetChild("tex_display").text = gameStr
if showid~=nil then
if data.id.."" == showid then
obj:GetChild("gxbtn").selected = true
else
obj:GetChild("gxbtn").selected = false
end
end
obj:GetChild("gxbtn").onClick:Set(function()
self:SelectPlaysItem(data.id,index+1,data.name)
end)
--obj:GetChild("gxbtn").selected =
end
function M:SelectPlaysItem(id,index,gamename)
self.lst_allplays = self._view:GetChild("lst_allplays")
Utils.SaveLocalFile("selectplay"..self.uid, id)
Utils.SaveLocalFile("selectplayname"..self.uid, gamename)
for key, value in pairs(self.playIdList) do
if key==index then
self.playIdList[index].show = true
else
self.playIdList[key].show = false
end
end
self:FillView()
end
function M:SetCallback(callback)
self.callback = callback
end
-- 销毁窗口
function M:Destroy(remove_map)
if self.callback then
self.callback()
end
BaseWindow.Destroy(self, remove_map)
ImageLoad.Clear(self.class)
end
return M