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

◆ GetSoundCategory()

override string GetInputType::GetSoundCategory ( ActionData action_data)

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

332 : ActionReciveData
333{
334 string m_PartType;
335}
336
337class BuildPartActionData : ActionData
338{
339 string m_PartType;
340};
341
343{
344 override void CreateActionComponent()
345 {
346 float time = SetCallbackDuration(m_ActionData.m_MainItem);
347 m_ActionData.m_ActionComponent = new CAContinuousTime(time);
348 }
349
350 float SetCallbackDuration(ItemBase item)
351 {
352 return UATimeSpent.BASEBUILDING_CONSTRUCT_MEDIUM;
353 }
354};
355
357{
358 void ActionBuildPart()
359 {
360 m_CallbackClass = ActionBuildPartCB;
361 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
362 m_FullBody = true;
363 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
364
365 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
366 m_Text = "#build";
367 }
368
369 override void CreateConditionComponents()
370 {
371 m_ConditionItem = new CCINonRuined;
372 m_ConditionTarget = new CCTNone;
373 }
374
375 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
376 {
377 ConstructionActionData construction_action_data = player.GetConstructionActionData();
378 ConstructionPart constrution_part = construction_action_data.GetBuildPartAtIndex(m_VariantID);
379
380 if (constrution_part)
381 {
382 m_Text = "#build " + constrution_part.GetName();
383 }
384 }
385
386 override bool CanBeUsedLeaning()
387 {
388 return false;
389 }
390
391 override bool CanBeUsedInFreelook()
392 {
393 return false;
394 }
395
396 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
397 {
398 if (player.IsPlacingLocal() || player.IsPlacingServer())
399 return false;
400
401 //Action not allowed if player has broken legs
402 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
403 return false;
404
405 //gate..
406 if (target.GetObject() && (!target.GetObject().CanUseConstructionBuild() || target.GetObject().CanUseHandConstruction()))
407 return false;
408
409 if ((!GetGame().IsDedicatedServer()))
410 {
411 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item, m_VariantID))
412 {
413 return true;
414 }
415 return false;
416 }
417 return true;
418 }
419
420 override bool ActionConditionContinue(ActionData action_data)
421 {
422 BaseBuildingBase base_building = BaseBuildingBase.Cast(action_data.m_Target.GetObject());
423 Construction construction = base_building.GetConstruction();
424 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
425 CollisionCheckData check_data = new CollisionCheckData;
426
427 check_data.m_PartName = part_name;
428 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
429
430 bool canBuild = construction.CanBuildPart(part_name, action_data.m_MainItem, true);
431 if (GetGame().IsServer())
432 {
433 bool collides = construction.IsCollidingEx(check_data);
434
435 return !collides && canBuild;
436 }
437 else
438 {
439 return canBuild;
440 }
441 }
442
443 override void OnFinishProgressServer(ActionData action_data)
444 {
445 BaseBuildingBase base_building = BaseBuildingBase.Cast(action_data.m_Target.GetObject());
446 Construction construction = base_building.GetConstruction();
447
448 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
449 CollisionCheckData check_data = new CollisionCheckData;
450
451 check_data.m_PartName = part_name;
452 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
453
454 if (!construction.IsCollidingEx(check_data) && construction.CanBuildPart(part_name, action_data.m_MainItem, true)) //redundant at this point?
455 {
456 //build
457 construction.BuildPartServer(action_data.m_Player, part_name, AT_BUILD_PART);
458 //add damage to tool
459 action_data.m_MainItem.DecreaseHealth(UADamageApplied.BUILD, false);
460 }
461 }
462
463 override string GetSoundCategory(ActionData action_data)
464 {
465 return "Base_building";
466 }
467
469 {
470 BuildPartActionData action_data = new BuildPartActionData;
471 return action_data;
472 }
473
474 //setup
475 override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
476 {
477 if (super.SetupAction(player, target, item, action_data, extra_data))
478 {
480
481 if (!GetGame().IsDedicatedServer())
482 {
483 ConstructionActionData construction_action_data = action_data.m_Player.GetConstructionActionData();
484 BuildPartActionData.Cast(action_data).m_PartType = construction_action_data.GetBuildPartAtIndex(m_VariantID).GetPartName();
485 }
486 return true;
487 }
488
489 return false;
490 }
491
492 protected void SetBuildingAnimation(ItemBase item)
493 {
494 switch (item.Type())
495 {
496 case Pickaxe:
497 case Shovel:
498 case FarmingHoe:
499 case FieldShovel:
500 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DIG;
501 break;
502 case Pliers:
503 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
504 break;
505 case SledgeHammer:
506 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_MINEROCK;
507 break;
508 default:
509 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
510 break;
511 }
512 }
513
514 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
515 {
516 super.WriteToContext(ctx, action_data);
517
518 ctx.Write(BuildPartActionData.Cast(action_data).m_PartType);
519 }
520
521 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
522 {
523 action_recive_data = new BuildPartActionReciveData;
524 super.ReadFromContext(ctx, action_recive_data);
525
526 string part_type;
527 if (ctx.Read(part_type))
528 {
529 BuildPartActionReciveData.Cast(action_recive_data).m_PartType = part_type;
530 return true;
531 }
532 else
533 {
534 return false;
535 }
536 }
537
538 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
539 {
540 super.HandleReciveData(action_recive_data, action_data);
541
542 BuildPartActionData.Cast(action_data).m_PartType = BuildPartActionReciveData.Cast(action_recive_data).m_PartType;
543 }
544
545 override string GetAdminLogMessage(ActionData action_data)
546 {
547 ConstructionActionData construction_action_data = action_data.m_Player.GetConstructionActionData();
548 string partName = BuildPartActionData.Cast(action_data).m_PartType;
549
550 string message = string.Format("Built %1 on %2 with %3", partName, action_data.m_Target.GetObject().GetDisplayName(), action_data.m_MainItem.GetDisplayName());
551 return message;
552 }
553}
554
555class ActionActionBuildPartNoTool: ActionBuildPart
556{
557 override typename GetInputType()
558 {
559 return ContinuousInteractActionInput;
560 }
561
562 override bool UseMainItem()
563 {
564 return false;
565 }
566
567 override bool HasProgress()
568 {
569 return true;
570 }
571
572 override bool HasAlternativeInterrupt()
573 {
574 return false;
575 }
576}
const int AT_BUILD_PART
Определения _constants.c:6
ActionBase ActionData
Определения ActionBase.c:30
BuildPartActionReciveData m_PartType
override bool HasProgress()
Определения ActionBuildPart.c:236
override bool UseMainItem()
Определения ActionBuildPart.c:231
class ActionTargets ActionTarget
void BaseBuildingBase()
Определения BaseBuildingBase.c:1328
void CollisionCheckData()
Определения Construction.c:1329
void Construction(BaseBuildingBase parent)
Определения Construction.c:26
eBrokenLegs
Определения EBrokenLegs.c:2
class GP5GasMask extends MaskBase ItemBase
float m_SpecialtyWeight
Определения ActionBase.c:77
int m_StanceMask
Определения ActionBase.c:62
string m_Text
Определения ActionBase.c:58
int m_VariantID
Определения ActionBase.c:68
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
bool m_FullBody
Определения ActionBase.c:61
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionBuildPart()
Определения ActionBuildPart.c:27
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:144
override bool CanBeUsedInFreelook()
Определения ActionBuildPart.c:60
override bool CanBeUsedLeaning()
Определения ActionBuildPart.c:55
override void CreateConditionComponents()
Определения ActionBuildPart.c:38
override string GetSoundCategory(ActionData action_data)
Определения ActionBuildPart.c:132
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Определения ActionBuildPart.c:190
void SetBuildingAnimation(ItemBase item)
Определения ActionBuildPart.c:161
override bool ActionConditionContinue(ActionData action_data)
Определения ActionBuildPart.c:89
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:65
override ActionData CreateActionData()
Определения ActionBuildPart.c:137
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Определения ActionBuildPart.c:183
override string GetAdminLogMessage(ActionData action_data)
Определения ActionBuildPart.c:214
override void OnFinishProgressServer(ActionData action_data)
Определения ActionBuildPart.c:112
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Определения ActionBuildPart.c:207
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:44
float SetCallbackDuration(ItemBase item)
Определения ActionBuildPart.c:19
override void CreateActionComponent()
Определения ActionBuildPart.c:13
override GetInputType()
Определения ActionContinuousBase.c:179
bool HasAlternativeInterrupt()
Определения ActionContinuousBase.c:147
int m_CommandUID
Определения AnimatedActionBase.c:143
ConstructionPart GetBuildPartAtIndex(int idx)
Определения ConstructionActionData.c:184
string GetPartName()
Определения ConstructionPart.c:30
string GetName()
Определения ConstructionPart.c:24
proto bool Write(void value_out)
proto bool Read(void value_in)
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
Serializer ParamsWriteContext
Определения gameplay.c:16
proto void Insert(int index, string input)
Inserts a string into the n-th index, increasing the string length by the size of the input.