hengyang_client/lua_probject/base_project/Game/View/ChatView.lua

88 lines
2.8 KiB
Lua
Raw Permalink Normal View History

2025-04-01 10:48:36 +08:00
---聊天View对象
local ChatView = {}
local M = ChatView
function ChatView.new(main_view)
UIPackage.AddPackage("base/chat/ui/Chat")
2025-09-16 21:35:09 +08:00
setmetatable(M, { __index = BaseWindow })
local self = setmetatable({}, { __index = M })
2025-04-01 10:48:36 +08:00
self.class = "ChatView"
2025-09-16 21:35:09 +08:00
-- self._animation = false
2025-04-01 10:48:36 +08:00
self._main_view = main_view
self._blur_view = main_view._root_view
2025-09-16 21:35:09 +08:00
2025-04-01 10:48:36 +08:00
self:init("ui://Chat/Main")
return self
2025-09-16 21:35:09 +08:00
end
2025-04-01 10:48:36 +08:00
function M:init(url)
2025-09-16 21:35:09 +08:00
BaseWindow.init(self, url)
2025-04-01 10:48:36 +08:00
local lit_biaoqing1 = self._view:GetChild("lit_biaoqing1")
2025-09-16 21:35:09 +08:00
lit_biaoqing1.onClickItem:Set(function(context)
2025-04-01 10:48:36 +08:00
local _gamectr = ControllerManager.GetController(GameController)
2025-09-16 21:35:09 +08:00
_gamectr:SendInteraction(DataManager.SelfUser.account_id, 1, context.data.name)
2025-04-01 10:48:36 +08:00
self:Close()
end)
2025-09-16 21:35:09 +08:00
2025-04-01 10:48:36 +08:00
-- local lit_biaoqing2 = self._view:GetChild("lit_biaoqing2")
-- lit_biaoqing2.onClickItem:Set(function (context)
-- local _gamectr = ControllerManager.GetController(GameController)
-- _gamectr:SendInteraction(DataManager.SelfUser.account_id, 1, context.data.name )
-- self:Close()
-- end)
-- local lit_biaoqing3 = self._view:GetChild("lit_biaoqing3")
-- lit_biaoqing3.onClickItem:Set(function (context)
-- local _gamectr = ControllerManager.GetController(GameController)
-- _gamectr:SendInteraction(DataManager.SelfUser.account_id, 1, context.data.name )
-- self:Close()
-- end)
-- lit_biaoqing3:RemoveChildrenToPool()
self:FillChatMsg()
local tex_chat = self._view:GetChild("tex_chat")
local btn_send = self._view:GetChild("btn_send")
2025-09-16 21:35:09 +08:00
btn_send.onClick:Set(function(...)
2025-04-01 10:48:36 +08:00
local chat_text = tex_chat.text
2025-09-16 21:35:09 +08:00
if string.utf8len(chat_text) > 0 then
2025-04-01 10:48:36 +08:00
local _gamectr = ControllerManager.GetController(GameController)
2025-09-16 21:35:09 +08:00
_gamectr:SendInteraction(DataManager.SelfUser.account_id, 4, chat_text)
2025-04-01 10:48:36 +08:00
self:Close()
end
end)
end
function M:FillChatMsg()
local chat_msg
local language = self._main_view:GetLanguage()
if language == 1 then
chat_msg = self._main_view.Fix_Msg_Chat2
else
2025-09-16 21:35:09 +08:00
chat_msg = self._main_view.Fix_Msg_Chat
2025-04-01 10:48:36 +08:00
end
local lit_yuyin = self._view:GetChild("lit_yuyin")
lit_yuyin:RemoveChildrenToPool()
2025-09-16 21:35:09 +08:00
for i = 1, #chat_msg do
2025-04-01 10:48:36 +08:00
local btn = lit_yuyin:AddItemFromPool()
btn.data = tostring(i)
btn.text = chat_msg[i]
2025-09-16 21:35:09 +08:00
btn.onClick:Set(function(context)
2025-04-01 10:48:36 +08:00
local g = context.sender
local _gamectr = ControllerManager.GetController(GameController)
2025-09-16 21:35:09 +08:00
local msg = g.data + language * 100
2025-04-01 10:48:36 +08:00
_gamectr:SendInteraction(DataManager.SelfUser.account_id, 2, msg)
self:Close()
end)
end
end
function M:HideInputField()
self._view:GetController("sdk").selectedIndex = 1
end
return M