DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ GetDebugActions()

override void GetBurningMaterial::GetDebugActions ( out TSelectableActionInfoArrayEx outputList)

См. определение в файле Broom.c строка 229

230{
231 override void Init()
232 {
233 super.Init();
234 m_DecraftResult = "LongWoodenStick";
235 m_ParticleLocalPos = Vector(0, 1.2, 0);
236 }
237
238 override void SetActions()
239 {
240 super.SetActions();
241
244 }
245
246 override bool CanReceiveUpgrade()
247 {
248 return false;
249 }
250
251 override void OnWorkStart()
252 {
253 super.OnWorkStart();
255 }
256
257 override void ApplyResultModifications(ItemBase result)
258 {
259 result.SetHealth(result.GetHealthLevelValue(2,""));
260 result.SetQuantity(1);
261 }
262
263 override bool CanTransformIntoStick()
264 {
265 if ( GetGame().IsServer() && !IsIgnited() && GetEnergy() < 1 && !IsSetForDeletion())
266 return true;
267 else
268 return false;
269 }
270
271
272 override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
273 {
274 super.EEHitBy(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
275
276 GetCompEM().SetEnergy0To1(GetHealth01("",""));
277 }
278
279
280 override void CalculateQuantity()
281 {
282 if (GetGame().IsServer())
283 {
284 float currentHealth01 = GetHealth01();
285 float currentEnergy01 = GetCompEM().GetEnergy0To1();
286
287 //Health needs to copy internal energy, but only if that means it will be going down from its current value(the item can't heal itself after obtaining damage just because it has full internal energy)
288 SetHealth01("","",Math.Min(currentHealth01,currentEnergy01));
289 //Energy needs to copy health, but only if it is higher(in 01 terms) than health, that means if an item with full energy gets damaged and lit, the internal energy needs to be adjusted to follow the health. Situations where internal energy is lower than health are handled on the line above
290 GetCompEM().SetEnergy0To1(GetHealth01());
291 }
292 }
293
294 override void UpdateParticle()
295 {
296 float normalizedQuant = GetQuantity() / GetQuantityMax();
297
298 if (!m_FireParticle)
299 {
300 m_FireParticle = ParticleManager.GetInstance().PlayOnObject(ParticleList.BROOM_TORCH_T1, this, m_ParticleLocalPos);
301 }
302 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY, 1.0);
303 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY_RND, 1.0);
304 if (m_FireParticle)
305 {
306 float scale = Math.Max(normalizedQuant * 2.4, 0.4);
307
308 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.SIZE, scale);
309 }
310 }
311
312 // DEBUG BELLOW
313 void DebugSetHealthAndEnergy(float time)
314 {
315 float max_energy = GetCompEM().GetEnergyMaxPristine();
316 float health01 = Math.InverseLerp(0, max_energy, time);
317 SetHealth01("","", health01);
318 GetCompEM().SetEnergy( time );
319 }
320
321 override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
322 {
323 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_VERY_SHORT, "SetBurnTimeTo15Secs", FadeColors.LIGHT_GREY));
324 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_SHORT, "SetBurnTimeTo1Min", FadeColors.LIGHT_GREY));
325 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_MEDIUM, "SetBurnTimeTo10Min", FadeColors.LIGHT_GREY));
326 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_LONG, "SetBurnTimeToMax", FadeColors.LIGHT_GREY));
327 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.SEPARATOR, "___________________________", FadeColors.LIGHT_GREY));
328
329 super.GetDebugActions(outputList);
330 }
331
332 override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
333 {
334 if (super.OnAction(action_id, player, ctx))
335 return true;
336 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
337 {
338 if (action_id == EActions.BROOM_BURN_VERY_SHORT)
339 {
341 OnIgnitedThis(null);
342 }
343 else if (action_id == EActions.BROOM_BURN_SHORT)
344 {
346 OnIgnitedThis(null);
347 }
348 else if (action_id == EActions.BROOM_BURN_MEDIUM)
349 {
351 OnIgnitedThis(null);
352 }
353 else if (action_id == EActions.BROOM_BURN_LONG)
354 {
355 DebugSetHealthAndEnergy(GetCompEM().GetEnergyMaxPristine());
356 OnIgnitedThis(null);
357 }
358 }
359 return false;
360 }
361
362}
363
364class Broom: BroomBase
365{
366 override string GetBurningMaterial()
367 {
368 return "DZ\\gear\\tools\\data\\broom_emissive.rvmat";
369 }
370
371 override string GetBurntMaterial()
372 {
373 return "DZ\\gear\\tools\\data\\broom_burn.rvmat";
374 }
375}
Param4< int, int, string, int > TSelectableActionInfoWithColor
Определения EntityAI.c:97
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
override void UpdateParticle()
Определения Broom.c:202
override void CalculateQuantity()
Определения Broom.c:188
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
Определения Broom.c:229
override bool CanReceiveUpgrade()
Определения Broom.c:154
override void SetActions()
Определения Broom.c:146
override void OnWorkStart()
Определения Broom.c:159
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
Определения Broom.c:240
override bool CanTransformIntoStick()
Определения Broom.c:171
override void Init()
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside o...
Определения Broom.c:139
override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
Определения Broom.c:180
void DebugSetHealthAndEnergy(float time)
Определения Broom.c:221
override void ApplyResultModifications(ItemBase result)
Определения Broom.c:165
EActions
Определения EActions.c:2
override void OnIgnitedThis(EntityAI fire_source)
Executed on Server when some item ignited this one.
Определения FireworksBase.c:96
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
override float GetQuantity()
Определения ItemBase.c:8154
float GetEnergy()
Определения ItemBase.c:8278
override int GetQuantityMax()
Определения ItemBase.c:8106
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
Определения Broom.c:2
Определения Building.c:6
override void SetActions()
Определения Torch.c:754
string GetBurningMaterial()
Определения Torch.c:796
string GetBurntMaterial()
Определения Torch.c:801
Определения Torch.c:2
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfWoodenPlanks.c:88
Определения InventoryItem.c:731
Определения EnMath.c:7
static const int BROOM_TORCH_T1
Определения ParticleList.c:78
Определения ParticleList.c:12
Определения DamageSystem.c:2
Определения EnConvert.c:106
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Min(float x, float y)
Returns smaller of two given values.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
EmitorParam
Определения EnVisual.c:114
const int SAT_DEBUG_ACTION
Определения constants.c:452