123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- class ChatInputMenu extends UIScriptedMenu
- {
- private EditBoxWidget m_edit_box;
- private TextWidget m_channel_text;
- private UAIDWrapper m_BackInputWrapper;
- private ref Timer m_close_timer;
- void ChatInputMenu()
- {
- m_close_timer = new Timer();
- }
- override Widget Init()
- {
- m_BackInputWrapper = GetUApi().GetInputByID(UAUIBack).GetPersistentWrapper();
- layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/day_z_chat_input.layout");
- m_edit_box = EditBoxWidget.Cast(layoutRoot.FindAnyWidget("InputEditBoxWidget"));
- m_channel_text = TextWidget.Cast(layoutRoot.FindAnyWidget("ChannelText"));
-
- UpdateChannel();
- return layoutRoot;
- }
-
- override bool UseKeyboard()
- {
- return true;
- }
-
- override bool OnChange(Widget w, int x, int y, bool finished)
- {
- super.OnChange(w, x, y, finished);
-
- if (!finished) return false;
-
- string text = m_edit_box.GetText();
- if (text != "")
- {
- GetGame().ChatPlayer(text);
- if (!GetGame().IsMultiplayer())
- {
- string name;
- GetGame().GetPlayerName(name);
- ChatMessageEventParams chat_params = new ChatMessageEventParams(CCDirect, name, text, "");
- MissionGameplay.Cast(GetGame().GetMission()).m_Chat.Add(chat_params);
- }
- }
- m_close_timer.Run(0.1, this, "Close");
-
- GetUApi().GetInputByID(UAPersonView).Supress();
-
- return true;
- }
-
- override void OnShow()
- {
- SetFocus(m_edit_box);
- }
-
- override void OnHide()
- {
- super.OnHide();
- GetGame().GetMission().HideChat();
-
- if (!GetGame().GetMission().IsVoNActive())
- GetGame().GetMission().HideVoiceLevelWidgets();
- }
-
- override void Refresh()
- {
- }
-
- override void Update(float timeslice)
- {
- if (m_BackInputWrapper.InputP().LocalPress())
- {
- Close();
- }
- }
-
- void UpdateChannel()
- {
- m_channel_text.SetText(GetChannelName(/*GetGame().ChatGetChannel()*/0));
- }
-
- static string GetChannelName(ChatChannel channel)
- {
- switch (channel)
- {
- case CCSystem:
- return "System";
- case CCAdmin:
- return "Admin";
- case CCDirect:
- return "Direct";
- case CCMegaphone:
- return "Megaphone";
- case CCTransmitter:
- return "Radio";
- case CCPublicAddressSystem:
- return "PAS";
- }
-
- return "";
- }
- }
|