DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionMenu.c
См. документацию.
2{
3 private const float FADE_IN_TIME = 0.3;
4 private const float FADE_OUT_TIME = 0.3;
5 private const float HIDE_MENU_TIME = 5;
6
7 private ref WidgetFadeTimer m_FadeTimer;
11 private ref Timer m_hide_timer;
12
13 private bool m_visible;
14
16 {
18 m_FadeTimer = new WidgetFadeTimer;
20 m_visible = false;
21 }
22
23 void Init(Widget actions_panel_widget, TextWidget default_action_widget)
24 {
25 m_defaultActionWidget = default_action_widget;
26 m_actionsPanelWidget = actions_panel_widget;
27 m_actionItems.Clear();
28 int i = 0;
29 TextWidget w = TextWidget.Cast( m_actionsPanelWidget.FindAnyWidget("ActionListItem" + i.ToString()) );
30
31 while (w)
32 {
33 m_actionItems.Insert(w);
34 w.Show(false);
35 i++;
36 w = TextWidget.Cast( m_actionsPanelWidget.FindAnyWidget("ActionListItem" + i.ToString()) );
37 }
38
39 m_defaultActionWidget.Show(false);
40 m_actionsPanelWidget.Show(true);
41 m_actionsPanelWidget.SetAlpha(0);
42 }
43
45 {
46#ifdef DIAG_DEVELOPER
47 // tmp
48 bool newATSelection = DiagMenu.GetBool( DiagMenuIDs.MISC_ACTION_TARGETS_NEW, true );
49
50 // read the action manager
51 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
52 TSelectableActionInfoArray actions = player.GetActionManager().GetSelectableActions();
53 int selectedActionIndex = player.GetActionManager().GetSelectedActionIndex();
54
55 // clear state
56 m_defaultActionWidget.Show(false);
57 if ( actions.Count() <= 1 )
59 else
61
62 // update state
63 for (int i = 0; i < m_actionItems.Count(); i++)
64 {
65 TextWidget w = m_actionItems.Get(i);
66
67 if (i < actions.Count())
68 {
69 TSelectableActionInfo actionInfo = actions.Get(i);
70 w.SetText(actionInfo.param3);
71
72 if (i == selectedActionIndex)
73 {
74 w.SetColor(0xFFFFEC44);
75
76 m_defaultActionWidget.SetText(actionInfo.param3);
77 if ( !newATSelection )
78 {
79 m_defaultActionWidget.Show(true);
80 }
81 }
82 else
83 {
84 w.SetColor(0xFFFFFFFF);
85 }
86
87 w.Show(true);
88 }
89 else
90 {
91 w.Show(false);
92 }
93 }
94
95 float sx;
96 float sy;
97 m_actionsPanelWidget.GetSize(sx, sy);
98 m_actionsPanelWidget.SetSize(sx, 8 + (actions.Count() * 32));
99#endif
100 }
101
103 {
104 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
105 player.GetActionManager().SelectNextAction();
106
108
109 m_hide_timer.Run(HIDE_MENU_TIME, this, "HideWithFadeout");
110 }
111
113 {
114 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
115 player.GetActionManager().SelectPrevAction();
116
118
119 m_hide_timer.Run(HIDE_MENU_TIME, this, "HideWithFadeout");
120 }
121
123 {
124 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
125 player.GetActionManager().SelectNextActionCategory();
126
128
129 m_hide_timer.Run(HIDE_MENU_TIME, this, "HideWithFadeout");
130 }
131
133 {
134 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
135 player.GetActionManager().SelectPrevActionCategory();
136
138
139 m_hide_timer.Run(HIDE_MENU_TIME, this, "HideWithFadeout");
140 }
141
142 void Show()
143 {
144 if( m_visible )
145 return;
146
147 m_visible = true;
148 m_hide_timer.Run(HIDE_MENU_TIME, this, "HideWithFadeout");
149 }
150
151 void Refresh()
152 {
153 if( !m_visible )
154 Show();
155
156 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
157 if( player.GetActionManager().IsSelectableActionsChanged() )
159 }
160
161 void Hide()
162 {
163 if( !m_visible )
164 return;
165
166 m_visible = false;
167 m_hide_timer.Stop();
168 m_FadeTimer.Stop();
169 //m_defaultActionWidget.Show(false);
170 m_actionsPanelWidget.Show(false);
171 }
172
174 {
175 //m_defaultActionWidget.Show(false);
176 if (m_actionsPanelWidget.IsVisible())
178 }
179}
Param3 TSelectableActionInfo
DiagMenuIDs
Определения EDiagMenuIDs.c:2
PlayerBase GetPlayer()
Определения ModifierBase.c:51
void PrevAction()
Определения ActionMenu.c:112
void Refresh()
Определения ActionMenu.c:151
ref Timer m_hide_timer
Определения ActionMenu.c:11
const float HIDE_MENU_TIME
Определения ActionMenu.c:5
void NextActionCategory()
Определения ActionMenu.c:122
const float FADE_OUT_TIME
Определения ActionMenu.c:4
void Init(Widget actions_panel_widget, TextWidget default_action_widget)
Определения ActionMenu.c:23
void ActionMenu()
Определения ActionMenu.c:15
void HideWithFadeout()
Определения ActionMenu.c:173
ref array< TextWidget > m_actionItems
Определения ActionMenu.c:8
void UpdateWidgets()
Определения ActionMenu.c:44
bool m_visible
Определения ActionMenu.c:13
void NextAction()
Определения ActionMenu.c:102
ref WidgetFadeTimer m_FadeTimer
Определения ActionMenu.c:7
void PrevActionCategory()
Определения ActionMenu.c:132
void Show()
Определения ActionMenu.c:142
const float FADE_IN_TIME
Определения ActionMenu.c:3
Widget m_actionsPanelWidget
Определения ActionMenu.c:10
void Hide()
Определения ActionMenu.c:161
TextWidget m_defaultActionWidget
Определения ActionMenu.c:9
Определения EnDebug.c:233
Определения PlayerBaseClient.c:2
Определения EnWidgets.c:220
Определения DayZPlayerImplement.c:63
Определения EnWidgets.c:190
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
static proto bool GetBool(int id, bool reverse=false)
Get value as bool from the given script id.
const int CALL_CATEGORY_GUI
Определения tools.c:9