Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Файл Land_Underground_Panel.c

См. исходные тексты.

Перечисления

enum  ELEDState { OFF , BLINKING , ON }
 

Функции

void Land_Underground_Panel ()
 
void ~Land_Underground_Panel ()
 
bool CanInteract ()
 
void Interact ()
 
static void RegisterEntrance (Land_Underground_EntranceBase entrance)
 
static void UnregisterEntrance (Land_Underground_EntranceBase entrance)
 
static void RegisterPanel (Land_Underground_Panel panel)
 
static void UnregisterPanel (Land_Underground_Panel panel)
 
EUndegroundDoorType GetLinkedDoorType ()
 
Land_Underground_EntranceBase GetLinkedDoor ()
 
Land_Underground_EntranceBase GetClosestDoor ()
 
void SetLEDState (ELEDColors color, ELEDState state)
 
void SetBlinkingTimer (bool enable)
 
void OnLEDStateChanged ()
 
void ResetPanelUsed ()
 
void OnDoorStateChangedClient (EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
 
void UpdateLED (string selection, string color)
 
void ToggleFlipFlop ()
 
void OnPanelUsedSynchronized ()
 
override void OnVariablesSynchronized ()
 

Переменные

enum ELEDState RED
 
enum ELEDState GREEN
 
enum ELEDState m_Entrances
 
static ref set< Land_Underground_Panelm_Panels
 
Land_Underground_EntranceBase m_LinkedDoor
 
const string COLOR_LED_OFF = "#(argb,8,8,3)color(0,0,0,1.0,co)"
 
const string COLOR_LED_GREEN = "#(argb,8,8,3)color(0,1,0,1.0,co)"
 
const string COLOR_LED_RED = "#(argb,8,8,3)color(1,0,0,1.0,co)"
 
const string SELECTION_NAME_LED_RED = "LED_Red"
 
const string SELECTION_NAME_LED_GREEN = "LED_Green"
 
bool m_PanelWasUsed bool m_PanelWasUsedPrev
 
bool m_BlinkingFlipFlop
 
ref Timer m_FlipFlopTimer
 
EffectSound m_ActivationSound
 
ELEDState m_LedStateRed
 
ELEDState m_LedStateGreen
 

Перечисления

◆ ELEDState

Элементы перечислений
OFF 
BLINKING 
ON 
2{
3 OFF,
5 ON,
6}
@ BLINKING
Definition Land_Underground_Panel.c:4
@ ON
Definition Land_Underground_Panel.c:5
@ OFF
Definition Land_Underground_Panel.c:3

Функции

◆ CanInteract()

bool CanInteract ( )
52 {
54 if (door)
55 {
57 }
58 return false;
59 }
Land_Underground_EntranceBase GetLinkedDoor()
Definition Land_Underground_Panel.c:133
Definition Land_Underground_Entrance.c:52
bool CanManipulate(Param param=null)
Definition Land_Underground_Entrance.c:98
Definition EntityAI.c:95

Перекрестные ссылки Land_Underground_EntranceBase::CanManipulate() и GetLinkedDoor().

◆ GetClosestDoor()

Land_Underground_EntranceBase GetClosestDoor ( )
141 {
142 if (!m_Entrances)
143 {
144 return null;
145 }
146
147 float closestDst = float.MAX;
150
152 {
153 float dist = vector.DistanceSq(thisPos, obj.GetPosition());
154 if (dist < closestDst)
155 {
157 closestObj = obj;
158 }
159 }
160
161 return closestObj;
162 }
enum ELEDState m_Entrances
class JsonUndergroundAreaTriggerData GetPosition
Definition UndergroundAreaLoader.c:9
Definition EnConvert.c:106
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.

Перекрестные ссылки vector::DistanceSq(), GetPosition и m_Entrances.

Используется в GetLinkedDoor().

◆ GetLinkedDoor()

Land_Underground_EntranceBase GetLinkedDoor ( )
134 {
135 if (!m_LinkedDoor)
137 return m_LinkedDoor;
138 }
Land_Underground_EntranceBase m_LinkedDoor
Definition Land_Underground_Panel.c:19
Land_Underground_EntranceBase GetClosestDoor()
Definition Land_Underground_Panel.c:140

Перекрестные ссылки GetClosestDoor() и m_LinkedDoor.

Используется в CanInteract(), GetLinkedDoorType(), Interact() и Land_Underground_Panel_Lever::Interact().

◆ GetLinkedDoorType()

EUndegroundDoorType GetLinkedDoorType ( )
129 {
130 return GetLinkedDoor().m_DoorType;
131 }
EUndegroundDoorType m_DoorType
Definition Land_Underground_Entrance.c:59

Перекрестные ссылки GetLinkedDoor() и Land_Underground_EntranceBase::m_DoorType.

Используется в OnDoorStateChangedClient().

◆ Interact()

void Interact ( )
62 {
64 if (door)
65 {
66 GetGame().RegisterNetworkStaticObject(this);
68 GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( ResetPanelUsed, 500);
69 m_PanelWasUsed = true;
70 SetSynchDirty();
71 }
72 else
73 {
74 ErrorEx("Can't find the instance of entrance the panel is linkined to");
75 }
76 }
void ResetPanelUsed()
Definition Land_Underground_Panel.c:264
void Manipulate(Param param=null)
Definition Land_Underground_Entrance.c:103
proto native CGame GetGame()
enum ShapeType ErrorEx
const int CALL_CATEGORY_SYSTEM
Definition tools.c:8

Перекрестные ссылки CALL_CATEGORY_SYSTEM, ErrorEx, GetGame(), GetLinkedDoor(), Land_Underground_EntranceBase::Manipulate() и ResetPanelUsed().

◆ Land_Underground_Panel()

void Land_Underground_Panel ( )
39 {
40 RegisterNetSyncVariableBool("m_PanelWasUsed");
41 RegisterPanel(this);
44 }
static void RegisterPanel(Land_Underground_Panel panel)
Definition Land_Underground_Panel.c:103
ELEDState
Definition Land_Underground_Panel.c:2
void SetLEDState(ELEDColors color, ELEDState state)
Definition Land_Underground_Panel.c:164

Перекрестные ссылки RegisterPanel() и SetLEDState().

◆ OnDoorStateChangedClient()

void OnDoorStateChangedClient ( EUndegroundEntranceState newState,
EUndegroundEntranceState prevState )
271 {
272 switch (GetLinkedDoorType())
273 {
274 case EUndegroundDoorType.MAIN:
275 {
277 {
279 }
280 else if (newState == EUndegroundEntranceState.OPENING_G)
281 {
283 }
284 else if (newState >= EUndegroundEntranceState.CLOSING_A)
285 {
286 SetLEDState(ELEDColors.RED, ELEDState.BLINKING);
287 }
288
290 {
291 SetLEDState(ELEDColors.GREEN, ELEDState.OFF);
292 }
293 else if (newState >= EUndegroundEntranceState.OPENING_A && newState < EUndegroundEntranceState.OPENING_G)
294 {
295 SetLEDState(ELEDColors.GREEN, ELEDState.BLINKING);
296 }
297 else if (newState >= EUndegroundEntranceState.OPENING_G)
298 {
300 }
301 }
302 break;
303 case EUndegroundDoorType.SMALL:
304 {
305 if (newState == EUndegroundEntranceState.OPENING_A)
306 {
308 SetLEDState(ELEDColors.GREEN, ELEDState.BLINKING);
309 }
310 else if (newState == EUndegroundEntranceState.OPENING_B)
311 {
314 }
315 else if (newState == EUndegroundEntranceState.CLOSING_A)
316 {
317 SetLEDState(ELEDColors.RED, ELEDState.BLINKING);
319 }
321 {
323 SetLEDState(ELEDColors.GREEN, ELEDState.OFF);
324 }
325 }
326 break;
327 }
328 }
EUndegroundEntranceState
Definition Land_Underground_Entrance.c:2
EUndegroundDoorType GetLinkedDoorType()
Definition Land_Underground_Panel.c:128

Перекрестные ссылки GetLinkedDoorType() и SetLEDState().

◆ OnLEDStateChanged()

void OnLEDStateChanged ( )
206 {
207 /*
208 Print("OnLEDStateChanged()");
209 Print("m_LedStateRed: " + m_LedStateRed);
210 Print("m_LedStateGreen: " + m_LedStateGreen);
211 */
212 if (m_LedStateRed == ELEDState.BLINKING || m_LedStateGreen == ELEDState.BLINKING)
213 {
214 SetBlinkingTimer(true);
215 }
216 else
217 {
218 SetBlinkingTimer(false);
219 }
220 //red
221 if (m_LedStateRed == ELEDState.ON)
222 {
224 }
225 else if (m_LedStateRed == ELEDState.OFF)
226 {
228 }
229 else if (m_LedStateRed == ELEDState.BLINKING)
230 {
232 {
234 }
235 else
236 {
238 }
239
240 //green
241 }
242 if (m_LedStateGreen == ELEDState.ON)
243 {
245 }
246 else if (m_LedStateGreen == ELEDState.OFF)
247 {
249 }
250 else if (m_LedStateGreen == ELEDState.BLINKING)
251 {
253 {
255 }
256 else
257 {
259 }
260
261 }
262 }
const string SELECTION_NAME_LED_RED
Definition Land_Underground_Panel.c:25
const string COLOR_LED_OFF
Definition Land_Underground_Panel.c:21
ELEDState m_LedStateRed
Definition Land_Underground_Panel.c:35
const string SELECTION_NAME_LED_GREEN
Definition Land_Underground_Panel.c:26
const string COLOR_LED_GREEN
Definition Land_Underground_Panel.c:22
void SetBlinkingTimer(bool enable)
Definition Land_Underground_Panel.c:186
void UpdateLED(string selection, string color)
Definition Land_Underground_Panel.c:331
ELEDState m_LedStateGreen
Definition Land_Underground_Panel.c:36
const string COLOR_LED_RED
Definition Land_Underground_Panel.c:23
bool m_BlinkingFlipFlop
Definition Land_Underground_Panel.c:30

Перекрестные ссылки COLOR_LED_GREEN, COLOR_LED_OFF, COLOR_LED_RED, m_BlinkingFlipFlop, m_LedStateGreen, m_LedStateRed, SELECTION_NAME_LED_GREEN, SELECTION_NAME_LED_RED, SetBlinkingTimer() и UpdateLED().

Используется в Land_Underground_Panel_Lever::OnPanelUsedSynchronized(), SetLEDState() и ToggleFlipFlop().

◆ OnPanelUsedSynchronized()

void OnPanelUsedSynchronized ( )
protected
345 {
346 PlaySoundSet( m_ActivationSound, "UndergroundDoor_PanelActivation_SoundSet", 0, 0 );
347 }
EffectSound m_ActivationSound
Definition Land_Underground_Panel.c:33

Перекрестные ссылки m_ActivationSound.

Используется в OnVariablesSynchronized().

◆ OnVariablesSynchronized()

override void OnVariablesSynchronized ( )
protected
350 {
352 {
353 if (m_PanelWasUsed)
354 {
356 }
358 }
359 }
void OnPanelUsedSynchronized()
Definition Land_Underground_Panel.c:344
bool m_PanelWasUsed bool m_PanelWasUsedPrev
Definition Land_Underground_Panel.c:29

Перекрестные ссылки m_PanelWasUsedPrev и OnPanelUsedSynchronized().

◆ RegisterEntrance()

static void RegisterEntrance ( Land_Underground_EntranceBase entrance)
static
79 {
80 if (!m_Entrances)
81 {
83 }
84 m_Entrances.Insert(entrance);
85 }

Перекрестные ссылки m_Entrances.

◆ RegisterPanel()

static void RegisterPanel ( Land_Underground_Panel panel)
static
104 {
105 if (!m_Panels)
106 {
108 }
109 m_Panels.Insert(panel);
110 }
static ref set< Land_Underground_Panel > m_Panels
Definition Land_Underground_Panel.c:17

Перекрестные ссылки m_Panels.

Используется в Land_Underground_Panel().

◆ ResetPanelUsed()

void ResetPanelUsed ( )
265 {
266 m_PanelWasUsed = false;
267 SetSynchDirty();
268 }

Используется в Interact().

◆ SetBlinkingTimer()

void SetBlinkingTimer ( bool enable)
187 {
188 if (enable)
189 {
190 if (!m_FlipFlopTimer)
191 {
192 m_FlipFlopTimer = new Timer();
193 m_FlipFlopTimer.Run(0.1, this, "ToggleFlipFlop", NULL, true);
194 }
195 }
196 else
197 {
198 if (m_FlipFlopTimer)
199 {
201 }
202 }
203 }
ref Timer m_FlipFlopTimer
Definition Land_Underground_Panel.c:31
Definition DayZPlayerImplement.c:63

Перекрестные ссылки m_FlipFlopTimer.

Используется в OnLEDStateChanged().

◆ SetLEDState()

void SetLEDState ( ELEDColors color,
ELEDState state )
165 {
166 #ifndef SERVER
167 if (color == ELEDColors.RED)
168 {
169 if (m_LedStateRed != state)
170 {
173 }
174 }
175 else
176 {
177 if (m_LedStateGreen != state)
178 {
181 }
182 }
183 #endif
184 }
void OnLEDStateChanged()
Definition Land_Underground_Panel.c:205

Перекрестные ссылки m_LedStateGreen, m_LedStateRed и OnLEDStateChanged().

Используется в Land_Underground_Panel() и OnDoorStateChangedClient().

◆ ToggleFlipFlop()

void ToggleFlipFlop ( )
protected

Перекрестные ссылки m_BlinkingFlipFlop и OnLEDStateChanged().

◆ UnregisterEntrance()

static void UnregisterEntrance ( Land_Underground_EntranceBase entrance)
static
88 {
89 if (m_Entrances)
90 {
91 int index = m_Entrances.Find(entrance);
92 if (index != -1)
93 {
94 m_Entrances.Remove(index);
95 }
96 else
97 {
98 ErrorEx("Attempted to unregistered non-registered entrance");
99 }
100 }
101 }

Перекрестные ссылки ErrorEx и m_Entrances.

◆ UnregisterPanel()

static void UnregisterPanel ( Land_Underground_Panel panel)
static
113 {
114 if (m_Panels)
115 {
116 int index = m_Panels.Find(panel);
117 if (index != -1)
118 {
119 m_Panels.Remove(index);
120 }
121 else
122 {
123 ErrorEx("Attempted to unregistered non-registered panel");
124 }
125 }
126 }

Перекрестные ссылки ErrorEx и m_Panels.

Используется в ~Land_Underground_Panel().

◆ UpdateLED()

void UpdateLED ( string selection,
string color )
protected
332 {
333 int selectionIdx = GetHiddenSelectionIndex(selection);
334 SetObjectTexture(selectionIdx, color);
335 //Print("selection: " +selection + ", color: " + color +", selectionIdx: "+ selectionIdx);
336 }

Используется в EEKilled(), OnCEUpdate(), OnLEDStateChanged() и OnWasDetached().

◆ ~Land_Underground_Panel()

47 {
48 UnregisterPanel(this);
49 }
static void UnregisterPanel(Land_Underground_Panel panel)
Definition Land_Underground_Panel.c:112

Перекрестные ссылки UnregisterPanel().

Переменные

◆ COLOR_LED_GREEN

const string COLOR_LED_GREEN = "#(argb,8,8,3)color(0,1,0,1.0,co)"

Используется в OnLEDStateChanged().

◆ COLOR_LED_OFF

const string COLOR_LED_OFF = "#(argb,8,8,3)color(0,0,0,1.0,co)"

Используется в OnLEDStateChanged() и UpdateLED().

◆ COLOR_LED_RED

const string COLOR_LED_RED = "#(argb,8,8,3)color(1,0,0,1.0,co)"

Используется в OnLEDStateChanged().

◆ GREEN

enum ELEDState GREEN

◆ m_ActivationSound

EffectSound m_ActivationSound

Используется в OnPanelUsedSynchronized().

◆ m_BlinkingFlipFlop

bool m_BlinkingFlipFlop

Используется в OnLEDStateChanged() и ToggleFlipFlop().

◆ m_Entrances

enum ELEDState m_Entrances

Используется в GetClosestDoor(), RegisterEntrance() и UnregisterEntrance().

◆ m_FlipFlopTimer

ref Timer m_FlipFlopTimer

Используется в SetBlinkingTimer().

◆ m_LedStateGreen

ELEDState m_LedStateGreen

Используется в OnLEDStateChanged() и SetLEDState().

◆ m_LedStateRed

ELEDState m_LedStateRed

Используется в OnLEDStateChanged() и SetLEDState().

◆ m_LinkedDoor

Используется в GetLinkedDoor().

◆ m_Panels

◆ m_PanelWasUsedPrev

bool m_PanelWasUsed bool m_PanelWasUsedPrev

Используется в OnVariablesSynchronized().

◆ RED

◆ SELECTION_NAME_LED_GREEN

const string SELECTION_NAME_LED_GREEN = "LED_Green"

Используется в OnLEDStateChanged().

◆ SELECTION_NAME_LED_RED

const string SELECTION_NAME_LED_RED = "LED_Red"

Используется в OnLEDStateChanged().