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

◆ ComposeBuildActionDataClient()

void ComposeBuildActionDataClient ( PlayerBase player,
ActionTarget target,
ItemBase item,
out ActionData action_data,
Param extra_data = NULL )
protected

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

579 : ActionReciveData
580{
581 string m_PartType;
582}
583
584class BuildPartActionData : ActionData
585{
586 string m_PartType;
587};
588
590{
591 override void CreateActionComponent()
592 {
593 float time = SetCallbackDuration(m_ActionData.m_MainItem);
594 m_ActionData.m_ActionComponent = new CAContinuousTime(time);
595 }
596
597 float SetCallbackDuration(ItemBase item)
598 {
599 #ifdef DIAG_DEVELOPER
600 if (m_ActionData.m_Player.GetConstructionActionData().GetFastConstructionMode() == EConstructionDebugModes.FAST)
601 return 1;
602 #endif
603
604 if (item) //TODO: configure and evaluate item suitability?
605 return UATimeSpent.BASEBUILDING_CONSTRUCT_MEDIUM;
606 else
607 return UATimeSpent.BASEBUILDING_CONSTRUCT_SLOW;
608 }
609};
610
612{
613 void ActionBuildPart()
614 {
615 m_CallbackClass = ActionBuildPartCB;
616 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
617 m_FullBody = true;
618 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
619
620 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
621 m_LockTargetOnUse = false;
622 m_Text = "#build";
623 }
624
625 override void CreateConditionComponents()
626 {
627 m_ConditionItem = new CCINonRuined;
628 m_ConditionTarget = new CCTCursor;
629 }
630
631 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
632 {
633 ConstructionActionData cad = player.GetConstructionActionData();
635 if (part)
636 {
637 string overrideText = part.GetBuildTextOverride();
638 if (overrideText == string.Empty)
639 m_Text = "#build "+ part.GetName();
640 else
641 m_Text = overrideText;
642
643 #ifdef DIAG_DEVELOPER
644 if (DiagMenu.GetBool(DiagMenuIDs.BASEBUILDING_FULLDEBUG))
645 {
646 m_Text = "dbgBuild | part classname: " + part.GetPartName();
647 }
648 #endif
649 }
650 }
651
652 override void InitInfoData()
653 {
654 m_InfoData = new ActionInfoDataConstructionPossible();
655 }
656
657 override bool CanBeUsedLeaning()
658 {
659 return false;
660 }
661
662 override bool CanBeUsedInFreelook()
663 {
664 return false;
665 }
666
667 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
668 {
669 #ifdef DIAG_DEVELOPER
670 if (player.GetConstructionActionData().GetFastConstructionMode() == EConstructionDebugModes.INSTANT)
671 return false;
672 #endif
673
674 EntityAI ent;
675 if (!Class.CastTo(ent,target.GetObject()))
676 return false;
677
678 if (player.IsPlacingLocal() || player.IsPlacingServer())
679 return false;
680
681 //Action not allowed if player has broken legs
682 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
683 return false;
684
685 if (!ent.CanUseConstruction() || !ent.CanUseConstructionBuild())
686 return false;
687
688 if ((!GetGame().IsDedicatedServer()))
689 {
690 if (!PositioningCheck(player, target))
691 return false;
692
693 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item, m_VariantID))
694 return GatherInfoData(player,target,item);
695
696 return false;
697 }
698 return true;
699 }
700
701 override bool ActionConditionContinue(ActionData action_data)
702 {
703 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
704 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
705 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
706 CollisionCheckData check_data = new CollisionCheckData;
707
708 check_data.m_PartName = part_name;
709 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
710
711 bool canBuild = construction.CanBuildPart(part_name, action_data.m_MainItem, true);
712 #ifdef DIAG_DEVELOPER
713 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
714 canBuild = true;
715 #endif
716 if (GetGame().IsServer())
717 {
718 bool collides = construction.IsCollidingEx(check_data);
719
720 return !collides && canBuild;
721 }
722 else
723 {
724 return canBuild;
725 }
726 }
727
728 override void OnFinishProgressServer(ActionData action_data)
729 {
730 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
731 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
732
733 string partName = BuildPartActionData.Cast(action_data).m_PartType;
734 ConstructionPart part = construction.GetConstructionPart(partName);
736
737 checkData.m_PartName = partName;
738 checkData.m_AdditionalExcludes.Insert(action_data.m_Player);
739
740 bool canBuild = construction.CanBuildPart(partName, action_data.m_MainItem, UseMainItem()); //TODO: do we need to check it here when ActionVariantManager already does it?
741 #ifdef DIAG_DEVELOPER
742 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
743 canBuild = true;
744 #endif
745 if (!construction.IsCollidingEx(checkData) && canBuild)
746 {
747 //build
748 construction.BuildPartServerEx(action_data.m_Player, partName, AT_BUILD_PART);
749
750 #ifdef DIAG_DEVELOPER
751 //skip tool/hand damage on debug action
752 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
753 return;
754 #endif
755
756 //add damage to tool or hands
757 if (action_data.m_MainItem)
758 {
759 if (part.DamageToolOnBuild())
760 action_data.m_MainItem.DecreaseHealth(UADamageApplied.BUILD, false);
761 }
762 else
763 {
764 if (part.DamageHandsOnBuild())
765 {
766 EntityAI gloves = action_data.m_Player.GetInventory().FindAttachment(InventorySlots.GLOVES);
767 if (gloves && gloves.GetHealthLevel() < 4)
768 {
769 gloves.AddHealth("","", PlayerConstants.GLOVES_DAMAGE_HAND_CONSTRUCTION);
770 }
771 else if (Math.RandomFloat01() < PlayerConstants.CHANCE_TO_BLEED_HAND_CONSTRUCTION)
772 {
773 if (Math.RandomFloat01() < 0.5)
774 action_data.m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
775 else
776 action_data.m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("RightForeArmRoll");
777 action_data.m_Player.RequestSoundEventEx(EPlayerSoundEventID.INJURED_LIGHT); //play sound regardless?
778 }
779 }
780 }
781 }
782 }
783
784 override string GetSoundCategory(ActionData action_data)
785 {
786 return "Base_building";
787 }
788
789 override ActionData CreateActionData()
790 {
791 BuildPartActionData action_data = new BuildPartActionData;
792 return action_data;
793 }
794
795 //setup
796 override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
797 {
798 if (super.SetupAction(player, target, item, action_data, extra_data))
799 {
800 if (!g_Game.IsDedicatedServer())
801 {
802 ComposeBuildActionDataClient(player,target,item,action_data,extra_data);
803 }
804
805 SetBuildingAnimationEx(player, target, item, action_data, extra_data);
806 return true;
807 }
808
809 return false;
810 }
811
812 protected void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
813 {
814 ConstructionActionData cad = action_data.m_Player.GetConstructionActionData();
816 BuildPartActionData.Cast(action_data).m_PartType = part.GetPartName();
817 }
818
819 protected void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data = NULL)
820 {
821 if (!item)
822 return;
823
824 switch (item.Type())
825 {
826 case Pickaxe:
827 case Shovel:
828 case FarmingHoe:
829 case FieldShovel:
830 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DIG;
831 break;
832 case Pliers:
833 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
834 break;
835 case SledgeHammer:
836 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_MINEROCK;
837 break;
838 case BrickTrowel:
839 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_BRICKTROWEL;
840 break;
841 default:
842 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
843 break;
844 }
845 }
846
847 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
848 {
849 super.WriteToContext(ctx, action_data);
850
851 ctx.Write(BuildPartActionData.Cast(action_data).m_PartType);
852 }
853
854 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
855 {
856 action_recive_data = new BuildPartActionReciveData;
857 super.ReadFromContext(ctx, action_recive_data);
858
859 string part_type;
860 if (ctx.Read(part_type))
861 {
862 BuildPartActionReciveData.Cast(action_recive_data).m_PartType = part_type;
863 return true;
864 }
865 else
866 {
867 return false;
868 }
869 }
870
871 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
872 {
873 super.HandleReciveData(action_recive_data, action_data);
874
875 BuildPartActionData.Cast(action_data).m_PartType = BuildPartActionReciveData.Cast(action_recive_data).m_PartType;
876 }
877
878 override string GetAdminLogMessage(ActionData action_data)
879 {
880 string partName = BuildPartActionData.Cast(action_data).m_PartType;
881
882 string itemName = "hands";
883 if (action_data.m_MainItem)
884 itemName = action_data.m_MainItem.GetDisplayName();
885
886 string message = string.Format("Built %1 on %2 with %3", partName, action_data.m_Target.GetObject().GetDisplayName(), itemName);
887 return message;
888 }
889
890 protected void ClearInfoData()
891 {
893 }
894
895 protected bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
896 {
898
899 ActionInfoDataConstructionPossible info = ActionInfoDataConstructionPossible.Cast(m_InfoData);
900 ConstructionActionData cad = player.GetConstructionActionData();
902 info.SetConstructionPart(part);
903 info.SetTool(item);
904
905 info.m_InfoContextMask |= EConstructionInfoCategories.MATERIALS_PRESENCE; //material info should always be visible
906 info.m_InfoContextMask |= EConstructionInfoCategories.TOOL_PRESENCE; //tools info should always be visible
907
908 return info.CanDisplayInfo();
909 }
910
912 protected bool PositioningCheck(PlayerBase player, ActionTarget target)
913 {
914 EntityAI ent = EntityAI.Cast(target.GetObject());
915 BaseBuildingBase bbb = BaseBuildingBase.Cast(ent);
916 ConstructionActionData cad = player.GetConstructionActionData();
918
919 if (part)
920 {
921 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
922 if (!ent.IsPlayerInsideEx(player, part.GetPartName()))
923 {
924 if (bbb && !bbb.MustBeBuiltFromOutside())
925 return false;
926 else if (!bbb)
927 return false;
928 }
929 if (!construction.ConstructionDirectionCheck(player, part, EConstructionDirCheckType.INDOORS))
930 return false;
931 if (!construction.ConstructionInsiderBoxCheck(player, part))
932 return false;
933
934 return true;
935 }
936 return false;
937 }
938
940 protected ConstructionPart GetTargetPart(ConstructionActionData cad)
941 {
943 }
944
946 //deprecated//
948 [Obsolete("Use 'SetBuildingAnimationEx' instead")]
949 protected void SetBuildingAnimation(ItemBase item)
950 {
951 SetBuildingAnimationEx(null,null,item,null);
952 }
953}
954
956{
958 {
959 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_2HD;
960 }
961
962 override void CreateConditionComponents()
963 {
964 m_ConditionItem = new CCINone;
965 m_ConditionTarget = new CCTCursor;
966 }
967
968 override bool UseMainItem()
969 {
970 return false;
971 }
972
973 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
974 {
975 ConstructionActionData cad = player.GetConstructionActionData();
977 if (part)
978 {
979 string overrideText = part.GetBuildTextOverride();
980 if (overrideText == string.Empty)
981 m_Text = "#build "+ part.GetName();
982 else
983 m_Text = overrideText;
984
985 #ifdef DIAG_DEVELOPER
986 if (DiagMenu.GetBool(DiagMenuIDs.BASEBUILDING_FULLDEBUG))
987 {
988 m_Text = "dbgBuild | part classname: " + part.GetPartName() + " with hands";
989 }
990 #endif
991 }
992 }
993
994 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
995 {
996 #ifdef DIAG_DEVELOPER
997 if (player.GetConstructionActionData().GetFastConstructionMode() == EConstructionDebugModes.INSTANT)
998 return false;
999 #endif
1000
1001 if (item)
1002 return false;
1003
1004 EntityAI ent;
1005 if (!Class.CastTo(ent,target.GetObject()))
1006 return false;
1007
1008 if (player.IsPlacingLocal() || player.IsPlacingServer())
1009 return false;
1010
1011 //Action not allowed if player has broken legs
1012 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
1013 return false;
1014
1015 bool handConstructionCondition = ent.CanUseHandConstruction();
1016 #ifdef DIAG_DEVELOPER
1017 if (player.GetConstructionActionData().GetFastConstructionMode())
1018 handConstructionCondition = true;
1019 #endif
1020
1021 if (!ent.CanUseConstruction() || !ent.CanUseConstructionBuild() || !handConstructionCondition)
1022 return false;
1023
1024 if ((!GetGame().IsDedicatedServer()))
1025 {
1026 if (!PositioningCheck(player, target))
1027 return false;
1028
1029 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item, m_VariantID))
1030 return GatherInfoData(player,target,item);
1031
1032 return false;
1033 }
1034 return true;
1035 }
1036
1037 override bool ActionConditionContinue(ActionData action_data)
1038 {
1039 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
1040 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
1041 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
1042 CollisionCheckData check_data = new CollisionCheckData;
1043
1044 check_data.m_PartName = part_name;
1045 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
1046
1047 bool canBuild = construction.CanBuildPart(part_name, null, false);
1048 #ifdef DIAG_DEVELOPER
1049 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
1050 canBuild = true;
1051 #endif
1052 if (GetGame().IsServer())
1053 {
1054 bool collides = construction.IsCollidingEx(check_data);
1055
1056 return !collides && canBuild;
1057 }
1058 else
1059 {
1060 return canBuild;
1061 }
1062 }
1063
1064 override protected bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
1065 {
1066 ClearInfoData();
1067
1068 ActionInfoDataConstructionPossible info = ActionInfoDataConstructionPossible.Cast(m_InfoData);
1069 ConstructionActionData cad = player.GetConstructionActionData();
1071 info.SetConstructionPart(part);
1072 info.SetTool(item);
1073
1074 info.m_InfoContextMask |= EConstructionInfoCategories.MATERIALS_PRESENCE; //material info should always be visible
1075 /*
1076 int actionMask = part.GetBuildActionTypeMask();
1077 actionMask &= ~EConstructionTools.TOOL_HANDS;
1078 if (actionMask != 0)
1079 info.m_InfoContextMask |= EConstructionInfoCategories.TOOL_PRESENCE; //tools info ONLY when also buildable by one!
1080 */
1081 info.m_InfoContextMask |= EConstructionInfoCategories.TOOL_PRESENCE; //tools info should always be visible
1082
1083 return info.CanDisplayInfo();
1084 }
1085
1086 override protected void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
1087 {
1088 ConstructionActionData cad = action_data.m_Player.GetConstructionActionData();
1089 BuildPartActionData.Cast(action_data).m_PartType = cad.GetBuildPartHandsGenericAtIndex(m_VariantID).GetPartName();
1090 }
1091
1093 override protected ConstructionPart GetTargetPart(ConstructionActionData cad)
1094 {
1096 }
1097
1099 override protected void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data = NULL)
1100 {
1101 if (item)
1102 return;
1103
1104 BuildPartActionData buildData;
1105 if (Class.CastTo(buildData, action_data))
1106 {
1107 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
1108 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
1109 ConstructionPart part = construction.GetConstructionPart(buildData.m_PartType);
1110 int animOverrideID = part.GetHandBuildFBAnimOverride();
1111
1112 if (animOverrideID >= 0)
1113 m_CommandUID = animOverrideID;
1114 else
1115 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_2HD;
1116 }
1117 }
1118}
1119
1120// Deprecated
class LogManager EntityAI
const int AT_BUILD_PART
bool m_FullBody
Определения ActionBase.c:60
string m_Text
Определения ActionBase.c:57
bool ActionConditionContinue(ActionData action_data)
Определения ActionBase.c:436
ref ActionInfoDataBase m_InfoData
Определения ActionBase.c:70
void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:1342
int m_VariantID
Определения ActionBase.c:67
void CreateConditionComponents()
Определения ActionBase.c:245
bool m_LockTargetOnUse
Определения ActionBase.c:59
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
float m_SpecialtyWeight
Определения ActionBase.c:77
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:441
bool UseMainItem()
Определения ActionBase.c:417
int m_StanceMask
Определения ActionBase.c:61
BuildPartActionReciveData m_PartType
void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:579
bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:662
bool PositioningCheck(PlayerBase player, ActionTarget target)
Can build from the inside only, if applicable.
Определения ActionBuildPart.c:679
void ClearInfoData()
Определения ActionBuildPart.c:657
override bool UseMainItem()
Определения ActionBuildPart.c:390
ConstructionPart GetTargetPart(ConstructionActionData cad)
Does not work on server, since variants are not updated there (invoker does not invoke)
Определения ActionBuildPart.c:707
ActionBuildPart ActionContinuousBase ActionBuildPartHandsGeneric()
Определения ActionBuildPart.c:379
void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data=NULL)
here we base anims on targeted part
Определения ActionBuildPart.c:586
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
void BaseBuildingBase()
Определения BaseBuildingBase.c:1326
void ConstructionBase(EntityAI parent)
Определения ConstructionBase.c:58
void CollisionCheckData()
Определения ConstructionBase.c:1923
EConstructionInfoCategories
Определения ConstructionConstants.c:2
void ConstructionPart(string name, string part_name, string main_part_name, int id, bool is_built, bool is_base, bool is_gate, array< string > required_parts)
Определения ConstructionPart.c:531
DayZGame g_Game
Определения DayZGame.c:4074
eBrokenLegs
Определения EBrokenLegs.c:2
DiagMenuIDs
Определения EDiagMenuIDs.c:2
class GP5GasMask extends MaskBase ItemBase
Empty
Определения Hand_States.c:14
EPlayerSoundEventID
Определения PlayerSoundEventHandler.c:3
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionBuildPart()
Определения ActionBuildPart.c:35
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:218
override bool CanBeUsedInFreelook()
Определения ActionBuildPart.c:84
void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:234
override bool CanBeUsedLeaning()
Определения ActionBuildPart.c:79
bool PositioningCheck(PlayerBase player, ActionTarget target)
Can build from the inside only, if applicable.
Определения ActionBuildPart.c:334
override void CreateConditionComponents()
Определения ActionBuildPart.c:47
override string GetSoundCategory(ActionData action_data)
Определения ActionBuildPart.c:206
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Определения ActionBuildPart.c:276
void SetBuildingAnimation(ItemBase item)
Определения ActionBuildPart.c:371
override bool ActionConditionContinue(ActionData action_data)
Определения ActionBuildPart.c:123
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:89
void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:241
override ActionData CreateActionData()
Определения ActionBuildPart.c:211
ConstructionPart GetTargetPart(ConstructionActionData cad)
Does not work on server, since variants are not updated there (invoker does not invoke)
Определения ActionBuildPart.c:362
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Определения ActionBuildPart.c:269
override void InitInfoData()
Определения ActionBuildPart.c:74
override string GetAdminLogMessage(ActionData action_data)
Определения ActionBuildPart.c:300
override void OnFinishProgressServer(ActionData action_data)
Определения ActionBuildPart.c:150
bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:317
void ClearInfoData()
Определения ActionBuildPart.c:312
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Определения ActionBuildPart.c:293
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:53
float SetCallbackDuration(ItemBase item)
Определения ActionBuildPart.c:19
override void CreateActionComponent()
Определения ActionBuildPart.c:13
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
ItemBase m_MainItem
Определения ActionBase.c:35
Определения ActionBase.c:22
int m_InfoContextMask
Определения ActionPartInfo.c:211
int m_CommandUID
Определения AnimatedActionBase.c:147
override bool MustBeBuiltFromOutside()
Определения ShelterSite.c:80
ConstructionPart GetBuildPartHandsGenericAtIndex(int idx)
Определения ConstructionActionData.c:364
ConstructionPart GetBuildPartAtIndex(int idx)
Определения ConstructionActionData.c:346
int GetHandBuildFBAnimOverride()
Определения ConstructionPart.c:253
string GetPartName()
Определения ConstructionPart.c:198
string GetBuildTextOverride()
Определения ConstructionPart.c:315
string GetName()
Определения ConstructionPart.c:193
bool DamageHandsOnBuild()
Определения ConstructionPart.c:218
bool DamageToolOnBuild()
Определения ConstructionPart.c:213
proto bool Write(void value_out)
proto bool Read(void value_in)
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
DayZGame GetGame()
Определения gameplay.c:636
void Obsolete(string msg="")
Определения EnScript.c:371
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.