DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
PPERequestPlatformsBase.c
См. документацию.
3{
4 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
5 protected bool m_ValuesSent;
6 protected int m_IDX;
7
8 protected bool m_Valid = false;
9
10 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
11
12 void PPERequesterBase(int requester_IDX)
13 {
14 m_Valid = PPERequesterBank.VerifyRequester(this);
15
16 m_IDX = requester_IDX;
17 m_ValuesSent = true;
18 m_IsRunning = false;
20 }
21
23 void SetRequesterUpdating(bool state)
24 {
25 if (!m_Valid)
26 {
27 Debug.Log("" + this + " not valid!");
28 return;
29 }
30
31 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
32
33 //TODO - separate into its own function?
34 if (state)
35 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
36 }
37
38 void Start(Param par = null)
39 {
40 OnStart(par);
41 m_IsRunning = true;
42 }
43
44 void Stop(Param par = null)
45 {
47 return;
48
49 OnStop(par);
50 m_IsRunning = false;
51 }
52
54 {
55 return m_IsRunning;
56 }
57
59 void SetRequesterIDX(int idx)
60 {
61 m_IDX = idx;
62 }
63
66 {
67 return m_IDX;
68 }
69
72 {
73 return PPERequesterCategory.NONE;
74 }
75
76 //SETTERS//
77 //vvvvvvv//
78 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
79 {
81 return;
82
83 PPERequestParamDataBool data = PPERequestParamDataBool.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_BOOL));
84 data.SetPriorityLayer(priority_layer);
85 data.SetInteractionMask(operator);
86
87 data.m_BoolTarget = val;
88 data.m_BoolLast = data.m_BoolCurrent;
89
90 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
91 {
92 data.SetSettingDefaultValues(false);
93 data.SetDataActive(true);
94
96 }
97 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
98 }
99
100 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
101 {
102 //TODO - running check and cleanup rework (elsewhere!)
103 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
104 return;
105
106 PPERequestParamDataBool data = PPERequestParamDataBool.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_BOOL));
107 data.m_BoolLast = data.m_BoolCurrent;
108 if (!data.IsSettingDefaultValues())
109 {
110 data.SetSettingDefaultValues(true);
111
113 }
114 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
115 }
116
117 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
118 {
120 return;
121
122 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
123 data.SetPriorityLayer(priority_layer);
124 data.SetInteractionMask(operator);
125
126 data.m_IntTarget = val;
127 data.m_IntLast = data.m_IntCurrent;
128 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
129 {
130 data.SetSettingDefaultValues(false);
131 data.SetDataActive(true);
132
134 }
135 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
136 }
137
138 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
139 {
140 //TODO - running check and cleanup rework (elsewhere!)
141 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
142 return;
143
144 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
145 data.m_IntLast = data.m_IntCurrent;
146 if (!data.IsSettingDefaultValues())
147 {
148 data.SetSettingDefaultValues(true);
149
151 }
152 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
153 }
154
155 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
156 {
158 return;
159
160 PPERequestParamDataFloat data = PPERequestParamDataFloat.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_FLOAT));
161 data.SetPriorityLayer(priority_layer);
162 data.SetInteractionMask(operator);
163
164 data.m_FloatFormerTarget = data.m_FloatTarget;
165 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
166 data.m_FloatLast = data.m_FloatCurrent;
167 data.m_FloatStart = data.m_FloatCurrent;
168 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
169 {
170 data.SetSettingDefaultValues(false);
171 data.SetDataActive(true);
172
174 }
175 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
176 }
177
178 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
179 {
180 //TODO - running check and cleanup rework (elsewhere!)
181 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
182 return;
183
184 PPERequestParamDataFloat data = PPERequestParamDataFloat.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_FLOAT));
185 data.m_FloatFormerTarget = data.m_FloatTarget;
186 data.m_FloatLast = data.m_FloatCurrent;
187 data.m_FloatStart = data.m_FloatCurrent;
188 if (!data.IsSettingDefaultValues())
189 {
190 data.SetSettingDefaultValues(true);
191
193 }
194 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
195 }
196
197 protected void SetTargetValueColor(int mat_id, int param_idx, array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
198 {
200 return;
201
202 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
203 data.SetPriorityLayer(priority_layer);
204 data.SetInteractionMask(operator);
205 data.m_ColorFormerTarget = data.m_ColorTarget;
206
207 data.m_ColorTarget.Copy(val);
208
209 data.m_ColorLast = data.m_ColorCurrent;
210 data.m_ColorStart = data.m_ColorCurrent;
211 //if (data.m_ColorTarget != data.m_ColorCurrent)
212 {
213 data.SetSettingDefaultValues(false);
214 data.SetDataActive(true);
215
217 }
218 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
219 }
220
221 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
222 {
223 //TODO - running check and cleanup rework (elsewhere!)
224 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
225 return;
226
227 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
228 data.m_ColorFormerTarget = data.m_ColorTarget;
229 data.m_ColorLast = data.m_ColorCurrent;
230 data.m_ColorStart = data.m_ColorCurrent;
231 if (!data.IsSettingDefaultValues())
232 {
233 data.SetSettingDefaultValues(true);
234
236 }
237 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
238 }
239
240 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
241 {
242 }
243
244 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
245 {
246 }*/
247
248 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
249 {
250 }*/
251
253 protected void QueueValuesSend()
254 {
255 m_ValuesSent = false;
256 //m_IsRunning = true;
258 }
259
261 PPERequestParamDataBase GetRequestData(int mat_id, int param_idx, int type)
262 {
264 if ( m_RequestDataStructure.Get(mat_id) )
265 {
266 if (m_RequestDataStructure.Get(mat_id).Get(param_idx))
267 {
268 data = m_RequestDataStructure.Get(mat_id).Get(param_idx);
269 }
270 else
271 {
272 data = PrepareData(mat_id,param_idx,type);
273 m_RequestDataStructure.Get(mat_id).Set(param_idx,data);
274 }
275 }
276 else
277 {
278 data = PrepareData(mat_id,param_idx,type);
280 temp_map.Set(param_idx,data);
281 m_RequestDataStructure.Set(mat_id, temp_map);
282 }
283
284 if (!data)
285 {
286 Error("GetRequestData | no data found in the structure");
287 }
288
289 data.m_Requester = this;
290
291 return data;
292 }
293
294 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
295 {
297 switch (type)
298 {
299 case PPEConstants.VAR_TYPE_BOOL:
300 data = new PPERequestParamDataBool(m_IDX, mat_id, param_idx);
301 break;
302
303 case PPEConstants.VAR_TYPE_INT:
304 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
305 break;
306
307 case PPEConstants.VAR_TYPE_FLOAT:
308 data = new PPERequestParamDataFloat(m_IDX, mat_id, param_idx);
309 break;
310
311 case PPEConstants.VAR_TYPE_COLOR:
312 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
313 break;
314 }
315 return data;
316 }
317
318 // unused?
323
324 protected void ClearRequesterData()
325 {
327 }
328
330 {
331 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
332 }
333
334 //EVENTS//
335 //vvvvvv//
336 void OnUpdate(float delta)
337 {
338 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
339
340 if ( !m_ValuesSent )
341 {
342 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
343 {
344 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
345 {
346 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
347 }
348 }
349 m_ValuesSent = true;
350 }
352 }
353
354 protected void OnStart(Param par = null)
355 {
357 }
358
360 protected void OnStop(Param par = null)
361 {
362 //DbgPrnt("PPEDebug | " + this + " | OnStop");
365 }
366
368 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
369 {
370 float ret = value;
371 if (!relative) //if not already relative...
372 {
373 switch (var_type)
374 {
375 case PPEConstants.VAR_TYPE_FLOAT:
376 PPETemplateDefFloat p_float = PPETemplateDefFloat.Cast(PPEManagerStatic.GetPPEManager().GetPostProcessDefaultValues(mat_id,param_id));
377 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
378 ret = Math.Clamp(ret,0.0,1.0);
379 break;
380 }
381 }
382 //Print("RelativizeValue: " + ret);
383
384 return ret;
385 }
386
388 protected void SetDefaultValuesAll()
389 {
390 //<material<param_id,data>>
392
393 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
394 {
395 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
396 {
397 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
398
399 if (!req_data.IsDataActive())
400 continue;
401
402 switch (req_data.GetVarType())
403 {
404 case PPEConstants.VAR_TYPE_BOOL:
406 break;
407
408 case PPEConstants.VAR_TYPE_INT:
410 break;
411
412 case PPEConstants.VAR_TYPE_FLOAT:
414 break;
415
416 case PPEConstants.VAR_TYPE_COLOR:
418 break;
419 }
420 }
421 }
422 }
423
424 void DbgPrnt(string text)
425 {
426 //Debug.Log(""+text);
427 }
428}
429
431// Base requester platforms //
433
435{
436 override int GetCategoryMask()
438 return PPERequesterCategory.GAMEPLAY_EFFECTS;
440}
444 override int GetCategoryMask()
446 return PPERequesterCategory.MENU_EFFECTS;
447 }
448}
map
Определения ControlsXboxNew.c:4
PPOperators
PP operators, specify operation between subsequent layers.
Определения PPEConstants.c:53
PPERequesterCategory
Определения PPEConstants.c:29
Param4< string, float, float, float > PPETemplateDefFloat
Определения PPEConstants.c:87
void PPERequestParamDataBool(int requester_idx, int mat_id, int param_id, int data_type=0, int priority=0, int mask=PPOperators.SET, bool relative=false)
Определения PPERequestData.c:111
void PPERequestParamDataFloat(int requester_idx, int mat_id, int param_id, int data_type=0, int priority=0, int mask=PPOperators.SET, bool relative=false)
Определения PPERequestData.c:142
class PPERequesterBase GetCategoryMask()
mask for mass-handling methods like 'StopAllEffects'
Определения PPERequestPlatformsBase.c:436
@ Count
Определения RandomGeneratorSyncManager.c:8
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
Определения Debug.c:122
Определения Debug.c:2
Определения EnMath.c:7
static PPEManager GetPPEManager()
Returns the manager instance singleton.
Определения PPEManager.c:27
Static component of PPE manager, used to hold the instance.
Определения PPEManager.c:3
PPERequesterBase m_Requester
Определения PPERequestData.c:4
int GetParameterID()
Определения PPERequestData.c:74
int GetMaterialID()
Определения PPERequestData.c:69
bool IsDataActive()
Определения PPERequestData.c:49
int GetVarType()
Определения PPERequestData.c:79
Data for one material parameter, requester side.
Определения PPERequestData.c:3
base, not to be used directly, would lead to layering collisions!
Определения PPERBloodLoss.c:2
void DbgPrnt(string text)
Определения PPERequestPlatformsBase.c:424
void SetTargetValueIntDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:138
int GetRequesterIDX()
Returns requester index.
Определения PPERequestPlatformsBase.c:65
void OnUpdate(float delta)
Определения PPERequestPlatformsBase.c:336
bool m_IsRunning
Определения PPERequestPlatformsBase.c:4
void SetTargetValueFloatDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:178
void Stop(Param par=null)
Определения PPERequestPlatformsBase.c:44
ref map< int, ref map< int, ref PPERequestParamDataBase > > m_RequestDataStructure
Определения PPERequestPlatformsBase.c:10
void ClearRequesterData()
Определения PPERequestPlatformsBase.c:324
void SetDefaultValuesAll()
Sets all requested values to default, ignoring them in further calculations.
Определения PPERequestPlatformsBase.c:388
void QueueValuesSend()
Sets this requester to update in the manager.
Определения PPERequestPlatformsBase.c:253
void PPERequesterBase(int requester_IDX)
Определения PPERequestPlatformsBase.c:12
void SetTargetValueColorDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:221
void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Определения PPERequestPlatformsBase.c:155
bool IsRequesterRunning()
Определения PPERequestPlatformsBase.c:53
PPERequestParamDataBase GetRequestData(int mat_id, int param_idx, int type)
returns request data for specific parameter, or creates one if one does not exist in this request yet...
Определения PPERequestPlatformsBase.c:261
void OnStop(Param par=null)
automatically resets all material parameters of this requester to defaults
Определения PPERequestPlatformsBase.c:360
void SendCurrentValueData(PPERequestParamDataBase data)
Определения PPERequestPlatformsBase.c:329
void SetTargetValueBoolDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:100
map< int, ref map< int, ref PPERequestParamDataBase > > GetActiveRequestStructure()
Определения PPERequestPlatformsBase.c:319
bool m_Valid
Определения PPERequestPlatformsBase.c:8
PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
Определения PPERequestPlatformsBase.c:294
void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator=PPOperators.SET)
Определения PPERequestPlatformsBase.c:117
int GetCategoryMask()
mask for mass-handling methods like 'StopAllEffects'
Определения PPERequestPlatformsBase.c:71
void SetRequesterUpdating(bool state)
Has to be set for the requester to be handled.
Определения PPERequestPlatformsBase.c:23
void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator=PPOperators.SET)
Определения PPERequestPlatformsBase.c:78
void SetTargetValueColor(int mat_id, int param_idx, array< float > val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Определения PPERequestPlatformsBase.c:197
override int GetCategoryMask()
Определения PPERequestPlatformsBase.c:444
void SetRequesterIDX(int idx)
automatically assigned by PPERequesterBank
Определения PPERequestPlatformsBase.c:59
float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
converts all values used to relative values (if not relative already)
Определения PPERequestPlatformsBase.c:368
void Start(Param par=null)
Определения PPERequestPlatformsBase.c:38
void OnStart(Param par=null)
Определения PPERequestPlatformsBase.c:354
bool m_ValuesSent
Определения PPERequestPlatformsBase.c:5
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
void OnStop()
Определения Sound.c:211