Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
chatinputmenu.c
Go to the documentation of this file.
1class ChatInputMenu extends UIScriptedMenu
2{
3 private EditBoxWidget m_edit_box;
4 private TextWidget m_channel_text;
5 private UAIDWrapper m_BackInputWrapper;
6 private ref Timer m_close_timer;
7
8 void ChatInputMenu()
9 {
10 m_close_timer = new Timer();
11 }
12
13 override Widget Init()
14 {
15 m_BackInputWrapper = GetUApi().GetInputByID(UAUIBack).GetPersistentWrapper();
16 layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/day_z_chat_input.layout");
17 m_edit_box = EditBoxWidget.Cast(layoutRoot.FindAnyWidget("InputEditBoxWidget"));
18 m_channel_text = TextWidget.Cast(layoutRoot.FindAnyWidget("ChannelText"));
19
20 UpdateChannel();
21 return layoutRoot;
22 }
23
24 override bool UseKeyboard()
25 {
26 return true;
27 }
28
29 override bool OnChange(Widget w, int x, int y, bool finished)
30 {
31 super.OnChange(w, x, y, finished);
32
33 if (!finished) return false;
34
35 string text = m_edit_box.GetText();
36
37 if (text != "")
38 {
39 GetGame().ChatPlayer(text);
40 if (!GetGame().IsMultiplayer())
41 {
42 string name;
43 GetGame().GetPlayerName(name);
44 ChatMessageEventParams chat_params = new ChatMessageEventParams(CCDirect, name, text, "");
45 MissionGameplay.Cast(GetGame().GetMission()).m_Chat.Add(chat_params);
46 }
47 }
48
49 m_close_timer.Run(0.1, this, "Close");
50
51 GetUApi().GetInputByID(UAPersonView).Supress();
52
53 return true;
54 }
55
56 override void OnShow()
57 {
58 SetFocus(m_edit_box);
59 }
60
61 override void OnHide()
62 {
63 super.OnHide();
64 GetGame().GetMission().HideChat();
65
66 if (!GetGame().GetMission().IsVoNActive())
67 GetGame().GetMission().HideVoiceLevelWidgets();
68 }
69
70 override void Refresh()
71 {
72 }
73
74 override void Update(float timeslice)
75 {
76 if (m_BackInputWrapper.InputP().LocalPress())
77 {
78 Close();
79 }
80 }
81
82 void UpdateChannel()
83 {
84 m_channel_text.SetText(GetChannelName(/*GetGame().ChatGetChannel()*/0));
85 }
86
87 static string GetChannelName(ChatChannel channel)
88 {
89 switch (channel)
90 {
91 case CCSystem:
92 return "System";
93 case CCAdmin:
94 return "Admin";
95 case CCDirect:
96 return "Direct";
97 case CCMegaphone:
98 return "Megaphone";
99 case CCTransmitter:
100 return "Radio";
101 case CCPublicAddressSystem:
102 return "PAS";
103 }
104
105 return "";
106 }
107}
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
override void OnShow()
override void OnHide()
override Widget Init()
Definition bookmenu.c:11
Param4< int, string, string, string > ChatMessageEventParams
channel, from, text, color config class
Definition gameplay.c:407
proto native CGame GetGame()
Icon x
Icon y
void Close()
override bool OnChange(Widget w, int x, int y, bool finished)
void Refresh()
proto native UAInputAPI GetUApi()