DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
GPSReceiver.c
См. документацию.
1class GPSReceiver : ItemGPS
2{
3
4 protected const string DISPLAY_TEXTURE_PATH_FORMAT = "dz\\gear\\navigation\\data\\GPS_%1_ca.paa";
5 protected const string ANIM_PHASE_DISPLAY_HIDE = "DisplayState";
6
7 protected const int PHASE_OFF = 1;
8 protected const int PHASE_ON = 0;
9
10 protected ref set<string> m_DisplayGridSelections;
11 protected ref set<string> m_DisplayAltSelections;
13
17
18 protected bool m_InitGPS;
19
21 {
24
25 int i;
26 for (i = 0; i < MapNavigationBehaviour.DISPLAY_GRID_POS_MAX_CHARS_COUNT * 2; ++i)
27 {
29 }
30
31 for (i = 0; i < MapNavigationBehaviour.DISPLAY_ALT_MAX_CHARS_COUNT; ++i)
32 {
33 m_AltitudeNumbersLast.Insert(0);
34 }
35
36 m_DisplayGridSelections = new set<string>();
37 m_DisplayGridSelections.Insert("grid_1_0");
38 m_DisplayGridSelections.Insert("grid_1_1");
39 m_DisplayGridSelections.Insert("grid_1_2");
40 m_DisplayGridSelections.Insert("grid_2_0");
41 m_DisplayGridSelections.Insert("grid_2_1");
42 m_DisplayGridSelections.Insert("grid_2_2");
43
44 m_DisplayAltSelections = new set<string>();
45 m_DisplayAltSelections.Insert("alt_0");
46 m_DisplayAltSelections.Insert("alt_1");
47 m_DisplayAltSelections.Insert("alt_2");
48 m_DisplayAltSelections.Insert("alt_3");
49
51 for (i = -1; i < 11; i++)
52 {
53
54 string texturePath = string.Format(DISPLAY_TEXTURE_PATH_FORMAT, i);
55
57 if (i == -1)
58 {
59 texturePath = string.Format(DISPLAY_TEXTURE_PATH_FORMAT, "dash");
60 }
61
62 m_DisplayNumericSignTextureMap.Insert(i, texturePath);
63 }
64 }
65
66 protected void PositionalUpdate()
67 {
70
71 if (!m_InitGPS)
72 m_InitGPS = true;
73 }
74
75 override void SetActions()
76 {
77 super.SetActions();
78
81 }
82
83 override bool IsTurnedOn()
84 {
85 return GetCompEM() && GetCompEM().IsWorking();
86 }
87
88 override void OnWorkStart()
89 {
91
92 if (GetHierarchyRoot())
93 {
94 PlayerBase pb = PlayerBase.Cast(GetHierarchyRoot());
95 if (pb)
96 {
97 pb.MapNavigationItemInPossession(this);
98 }
99 }
100 }
101
102 override void OnWorkStop()
103 {
105
106 if (GetHierarchyRoot())
107 {
108 PlayerBase pb = PlayerBase.Cast(GetHierarchyRoot());
109 if (pb)
110 {
111 pb.MapNavigationItemNotInPossession(this);
112 }
113 }
114 }
115
116 override void OnWork(float consumed_energy)
117 {
119 }
120
121 protected void UpdateDisplayState(int animPhase)
122 {
123 ResetAnimationPhase(ANIM_PHASE_DISPLAY_HIDE, PHASE_OFF);
124 SetAnimationPhaseNow(ANIM_PHASE_DISPLAY_HIDE, animPhase);
125 }
126
127 protected void UpdateDisplayPosition()
128 {
129 int selectionIndex;
130 string selectionName;
131 string textureName;
132 array<int> orderedPositionNumbers = MapNavigationBehaviour.OrderedPositionNumbersFromGridCoords(this);
133
134 bool isArrayDifferent = orderedPositionNumbers.DifferentAtPosition(m_OrderedPositionNumbersLast) != INDEX_NOT_FOUND;
135 if (isArrayDifferent || !m_InitGPS)
136 {
137 for (int i = 0; i < m_DisplayGridSelections.Count(); ++i)
138 {
139 selectionName = m_DisplayGridSelections.Get(i);
140 selectionIndex = GetHiddenSelection(selectionName);
141 textureName = m_DisplayNumericSignTextureMap.Get(orderedPositionNumbers.Get(i));
142 SetObjectTexture(selectionIndex, textureName);
143 }
144
145 m_OrderedPositionNumbersLast = orderedPositionNumbers;
146 }
147 }
148
149 protected void UpdateDisplayElevation()
150 {
151 int selectionIndex;
152 string selectionName;
153 array<int> altitudeNumbers = MapNavigationBehaviour.OrderedAltitudeNumbersPosition(this);
154
155 bool isArrayDifferent = altitudeNumbers.DifferentAtPosition(m_AltitudeNumbersLast) != INDEX_NOT_FOUND;
156 if (isArrayDifferent || !m_InitGPS)
157 {
158 for (int i = 0; i < m_DisplayAltSelections.Count(); ++i)
159 {
160 selectionName = m_DisplayAltSelections.Get(i);
161 selectionIndex = GetHiddenSelection(selectionName);
162 SetObjectTexture(selectionIndex, m_DisplayNumericSignTextureMap.Get(altitudeNumbers.Get(i)));
163 }
164
165 m_AltitudeNumbersLast = altitudeNumbers;
166 }
167 }
168
169 protected int GetHiddenSelection(string selection)
170 {
171 int idx = GetHiddenSelectionIndex(selection);
172
173 if (idx != INDEX_NOT_FOUND)
174 {
175 return idx;
176 }
177 else
178 {
179 return 0;
180 }
181 }
182
183 //================================================================
184 // DEBUG
185 //================================================================
186
187 override void OnDebugSpawn()
188 {
189 Battery9V.Cast(GetInventory().CreateInInventory("Battery9V"));
190 }
191
192 //================================================================
193 // DEPRECATED BELOW
194 //================================================================
195 [Obsolete("1.29: Use the overloaded function GPSReceiver::UpdateDisplayState instead")]
196 protected void UpdateDisplayState(bool pIsTurnedOn)
197 {
198 if (pIsTurnedOn)
199 {
201 }
202 else
203 {
205 }
206 }
207}
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
void MapNavigationBehaviour(PlayerBase pPlayer, EMapNavigationType pNavigationType=EMapNavigationType.BASIC)
Определения MapNavigationBehaviour.c:27
Определения Battery9V.c:2
ref map< int, string > m_DisplayNumericSignTextureMap
Определения GPSReceiver.c:12
int GetHiddenSelection(string selection)
Определения GPSReceiver.c:169
const int PHASE_OFF
Определения GPSReceiver.c:7
const string ANIM_PHASE_DISPLAY_HIDE
Определения GPSReceiver.c:5
void UpdateDisplayState(bool pIsTurnedOn)
Определения GPSReceiver.c:196
ref array< int > m_AltitudeNumbersLast
Определения GPSReceiver.c:16
override void OnDebugSpawn()
Определения GPSReceiver.c:187
bool m_InitGPS
Определения GPSReceiver.c:18
override void OnWork(float consumed_energy)
Определения GPSReceiver.c:116
void UpdateDisplayElevation()
Определения GPSReceiver.c:149
ref set< string > m_DisplayAltSelections
Определения GPSReceiver.c:11
void UpdateDisplayPosition()
Определения GPSReceiver.c:127
const string DISPLAY_TEXTURE_PATH_FORMAT
Определения GPSReceiver.c:4
void GPSReceiver()
Определения GPSReceiver.c:20
override void OnWorkStart()
Определения GPSReceiver.c:88
ref set< string > m_DisplayGridSelections
Определения GPSReceiver.c:10
override bool IsTurnedOn()
Определения GPSReceiver.c:83
void UpdateDisplayState(int animPhase)
Определения GPSReceiver.c:121
override void SetActions()
Определения GPSReceiver.c:75
ref array< int > m_OrderedPositionNumbersLast
cache
Определения GPSReceiver.c:15
void PositionalUpdate()
Определения GPSReceiver.c:66
override void OnWorkStop()
Определения GPSReceiver.c:102
const int PHASE_ON
Определения GPSReceiver.c:8
Определения PlayerBaseClient.c:2
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения CachedEquipmentStorage.c:4
const int INDEX_NOT_FOUND
Определения gameplay.c:13
void Obsolete(string msg="")
Определения EnScript.c:371
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.