DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
GPSReceiver.c
См. документацию.
1class GPSReceiver : ItemGPS
2{
3
4 const string DISPLAY_TEXTURE_PATH_FORMAT = "dz\\gear\\navigation\\data\\GPS_%1_ca.paa";
5 const string ANIM_PHASE_DISPLAY_HIDE = "DisplayState";
6
7 protected ref set<string> m_DisplayGridSelections;
8 protected ref set<string> m_DisplayAltSelections;
10
14
16 {
19
20 int i;
21 for (i = 0; i < MapNavigationBehaviour.DISPLAY_GRID_POS_MAX_CHARS_COUNT * 2; ++i)
22 {
24 }
25
26 for (i = 0; i < MapNavigationBehaviour.DISPLAY_ALT_MAX_CHARS_COUNT; ++i)
27 {
28 m_AltitudeNumbersLast.Insert(0);
29 }
30
31 m_DisplayGridSelections = new set<string>();
32 m_DisplayGridSelections.Insert("grid_1_0");
33 m_DisplayGridSelections.Insert("grid_1_1");
34 m_DisplayGridSelections.Insert("grid_1_2");
35 m_DisplayGridSelections.Insert("grid_2_0");
36 m_DisplayGridSelections.Insert("grid_2_1");
37 m_DisplayGridSelections.Insert("grid_2_2");
38
39 m_DisplayAltSelections = new set<string>();
40 m_DisplayAltSelections.Insert("alt_0");
41 m_DisplayAltSelections.Insert("alt_1");
42 m_DisplayAltSelections.Insert("alt_2");
43 m_DisplayAltSelections.Insert("alt_3");
44
46 for (i = -1; i < 11; i++)
47 {
48
49 string texturePath = string.Format(DISPLAY_TEXTURE_PATH_FORMAT, i);
50
52 if (i == -1)
53 {
54 texturePath = string.Format(DISPLAY_TEXTURE_PATH_FORMAT, "dash");
55 }
56
57 m_DisplayNumericSignTextureMap.Insert(i, texturePath);
58 }
59 }
60
61 protected void PositionalUpdate()
62 {
65 }
66
68 override void OnMovedInsideCargo(EntityAI container);
69
70 override void SetActions()
71 {
72 super.SetActions();
73
76 }
77
78 override bool IsTurnedOn()
79 {
80 return GetCompEM() && GetCompEM().IsWorking();
81 }
82
83 //------------------------------------------------------------------------------
84 override void OnWorkStart()
85 {
87
88 if (GetHierarchyRoot())
89 {
90 PlayerBase pb = PlayerBase.Cast(GetHierarchyRoot());
91 if (pb)
92 {
93 pb.MapNavigationItemInPossession(this);
94 }
95 }
96 }
97
98 override void OnWorkStop()
99 {
100 UpdateDisplayState(false);
101
102 if (GetHierarchyRoot())
103 {
104 PlayerBase pb = PlayerBase.Cast(GetHierarchyRoot());
105 if (pb)
106 {
107 pb.MapNavigationItemNotInPossession(this);
108 }
109 }
110 }
111
112 override void OnWork(float consumed_energy)
113 {
115 }
116 //------------------------------------------------------------------------------
117
118 protected void UpdateDisplayState(bool pIsTurnedOn)
119 {
120 SetAnimationPhaseNow(ANIM_PHASE_DISPLAY_HIDE, !pIsTurnedOn);
121 }
122
123 protected void UpdateDisplayPosition()
124 {
125 int selectionIndex;
126 string selectionName;
127 array<int> orderedPositionNumbers = MapNavigationBehaviour.OrderedPositionNumbersFromGridCoords(this);
128
129 if (orderedPositionNumbers.DifferentAtPosition(m_OrderedPositionNumbersLast) != INDEX_NOT_FOUND)
130 {
131 for (int i = 0; i < m_DisplayGridSelections.Count(); ++i)
132 {
133 selectionName = m_DisplayGridSelections.Get(i);
134 selectionIndex = GetHiddenSelection(selectionName);
135 SetObjectTexture(selectionIndex, m_DisplayNumericSignTextureMap.Get(orderedPositionNumbers.Get(i)));
136 }
137
138 m_OrderedPositionNumbersLast = orderedPositionNumbers;
139 }
140 }
141
142 protected void UpdateDisplayElevation()
143 {
144 int selectionIndex;
145 string selectionName;
146 array<int> altitudeNumbers = MapNavigationBehaviour.OrderedAltitudeNumbersPosition(this);
147
148 if (altitudeNumbers.DifferentAtPosition(m_AltitudeNumbersLast) != INDEX_NOT_FOUND)
149 {
150 for (int i = 0; i < m_DisplayAltSelections.Count(); ++i)
151 {
152 selectionName = m_DisplayAltSelections.Get(i);
153 selectionIndex = GetHiddenSelection(selectionName);
154 SetObjectTexture(selectionIndex, m_DisplayNumericSignTextureMap.Get(altitudeNumbers.Get(i)));
155 }
156
157 m_AltitudeNumbersLast = altitudeNumbers;
158 }
159 }
160
161 protected int GetHiddenSelection(string selection)
162 {
163 int idx = GetHiddenSelectionIndex(selection);
164
165 if (idx != INDEX_NOT_FOUND)
166 {
167 return idx;
168 }
169 else
170 {
171 return 0;
172 }
173 }
174
175 //================================================================
176 // DEBUG
177 //================================================================
178
179 override void OnDebugSpawn()
180 {
181 Battery9V.Cast(GetInventory().CreateInInventory("Battery9V"));
182 }
183}
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
map
Определения ControlsXboxNew.c:4
void MapNavigationBehaviour(PlayerBase pPlayer, EMapNavigationType pNavigationType=EMapNavigationType.BASIC)
Определения MapNavigationBehaviour.c:27
Определения Battery9V.c:2
Определения Building.c:6
ref map< int, string > m_DisplayNumericSignTextureMap
Определения GPSReceiver.c:9
int GetHiddenSelection(string selection)
Определения GPSReceiver.c:161
const string ANIM_PHASE_DISPLAY_HIDE
Определения GPSReceiver.c:5
void UpdateDisplayState(bool pIsTurnedOn)
Определения GPSReceiver.c:118
ref array< int > m_AltitudeNumbersLast
Определения GPSReceiver.c:13
override void OnDebugSpawn()
Определения GPSReceiver.c:179
override void OnWork(float consumed_energy)
Определения GPSReceiver.c:112
void UpdateDisplayElevation()
Определения GPSReceiver.c:142
ref set< string > m_DisplayAltSelections
Определения GPSReceiver.c:8
void UpdateDisplayPosition()
Определения GPSReceiver.c:123
const string DISPLAY_TEXTURE_PATH_FORMAT
Определения GPSReceiver.c:4
void GPSReceiver()
Определения GPSReceiver.c:15
override void OnWorkStart()
Определения GPSReceiver.c:84
ref set< string > m_DisplayGridSelections
Определения GPSReceiver.c:7
override bool IsTurnedOn()
Определения GPSReceiver.c:78
override void SetActions()
Определения GPSReceiver.c:70
override void OnMovedInsideCargo(EntityAI container)
need to be overriden, otherwise the item will be turned off when moved to cargo
ref array< int > m_OrderedPositionNumbersLast
cache
Определения GPSReceiver.c:12
void PositionalUpdate()
Определения GPSReceiver.c:61
override void OnWorkStop()
Определения GPSReceiver.c:98
Определения PlayerBaseClient.c:2
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
const int INDEX_NOT_FOUND
Определения gameplay.c:13
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.