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

◆ SetupAction()

override bool ActionBuildPartHandsGeneric::SetupAction ( PlayerBase player,
ActionTarget target,
ItemBase item,
out ActionData action_data,
Param extra_data = NULL )

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

563 : ActionReciveData
564{
565 string m_PartType;
566}
567
568class BuildPartActionData : ActionData
569{
570 string m_PartType;
571};
572
574{
575 override void CreateActionComponent()
576 {
577 float time = SetCallbackDuration(m_ActionData.m_MainItem);
578 m_ActionData.m_ActionComponent = new CAContinuousTime(time);
579 }
580
581 float SetCallbackDuration(ItemBase item)
582 {
583 #ifdef DIAG_DEVELOPER
584 if (m_ActionData.m_Player.GetConstructionActionData().GetFastConstructionMode() == EConstructionDebugModes.FAST)
585 return 1;
586 #endif
587
588 if (item) //TODO: configure and evaluate item suitability?
589 return UATimeSpent.BASEBUILDING_CONSTRUCT_MEDIUM;
590 else
591 return UATimeSpent.BASEBUILDING_CONSTRUCT_SLOW;
592 }
593};
594
596{
597 void ActionBuildPart()
598 {
599 m_CallbackClass = ActionBuildPartCB;
600 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
601 m_FullBody = true;
602 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
603
604 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
605 m_LockTargetOnUse = false;
606 m_Text = "#build";
607 }
608
609 override void CreateConditionComponents()
610 {
611 m_ConditionItem = new CCINonRuined;
612 m_ConditionTarget = new CCTCursor;
613 }
614
615 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
616 {
617 ConstructionActionData cad = player.GetConstructionActionData();
619 if (part)
620 {
621 string overrideText = part.GetBuildTextOverride();
622 if (overrideText == string.Empty)
623 m_Text = "#build "+ part.GetName();
624 else
625 m_Text = overrideText;
626
627 #ifdef DIAG_DEVELOPER
628 if (DiagMenu.GetBool(DiagMenuIDs.BASEBUILDING_FULLDEBUG))
629 {
630 m_Text = "dbgBuild | part classname: " + part.GetPartName();
631 }
632 #endif
633 }
634 }
635
636 override void InitInfoData()
637 {
638 m_InfoData = new ActionInfoDataConstructionPossible();
639 }
640
641 override bool CanBeUsedLeaning()
642 {
643 return false;
644 }
645
646 override bool CanBeUsedInFreelook()
647 {
648 return false;
649 }
650
651 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
652 {
653 #ifdef DIAG_DEVELOPER
654 if (player.GetConstructionActionData().GetFastConstructionMode() == EConstructionDebugModes.INSTANT)
655 return false;
656 #endif
657
658 EntityAI ent;
659 if (!Class.CastTo(ent,target.GetObject()))
660 return false;
661
662 if (player.IsPlacingLocal() || player.IsPlacingServer())
663 return false;
664
665 //Action not allowed if player has broken legs
666 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
667 return false;
668
669 if (!ent.CanUseConstruction() || !ent.CanUseConstructionBuild())
670 return false;
671
672 if ((!GetGame().IsDedicatedServer()))
673 {
674 if (!PositioningCheck(player, target))
675 return false;
676
677 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item, m_VariantID))
678 return GatherInfoData(player,target,item);
679
680 return false;
681 }
682 return true;
683 }
684
685 override bool ActionConditionContinue(ActionData action_data)
686 {
687 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
688 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
689 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
690 CollisionCheckData check_data = new CollisionCheckData;
691
692 check_data.m_PartName = part_name;
693 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
694
695 bool canBuild = construction.CanBuildPart(part_name, action_data.m_MainItem, true);
696 #ifdef DIAG_DEVELOPER
697 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
698 canBuild = true;
699 #endif
700 if (GetGame().IsServer())
701 {
702 bool collides = construction.IsCollidingEx(check_data);
703
704 return !collides && canBuild;
705 }
706 else
707 {
708 return canBuild;
709 }
710 }
711
712 override void OnFinishProgressServer(ActionData action_data)
713 {
714 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
715 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
716
717 string partName = BuildPartActionData.Cast(action_data).m_PartType;
718 ConstructionPart part = construction.GetConstructionPart(partName);
720
721 checkData.m_PartName = partName;
722 checkData.m_AdditionalExcludes.Insert(action_data.m_Player);
723
724 bool canBuild = construction.CanBuildPart(partName, action_data.m_MainItem, UseMainItem()); //TODO: do we need to check it here when ActionVariantManager already does it?
725 #ifdef DIAG_DEVELOPER
726 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
727 canBuild = true;
728 #endif
729 if (!construction.IsCollidingEx(checkData) && canBuild)
730 {
731 //build
732 construction.BuildPartServerEx(action_data.m_Player, partName, AT_BUILD_PART);
733
734 #ifdef DIAG_DEVELOPER
735 //skip tool/hand damage on debug action
736 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
737 return;
738 #endif
739
740 //add damage to tool or hands
741 if (action_data.m_MainItem)
742 {
743 if (part.DamageToolOnBuild())
744 action_data.m_MainItem.DecreaseHealth(UADamageApplied.BUILD, false);
745 }
746 else
747 {
748 if (part.DamageHandsOnBuild())
749 {
750 EntityAI gloves = action_data.m_Player.GetInventory().FindAttachment(InventorySlots.GLOVES);
751 if (gloves && gloves.GetHealthLevel() < 4)
752 {
753 gloves.AddHealth("","", PlayerConstants.GLOVES_DAMAGE_HAND_CONSTRUCTION);
754 }
755 else if (Math.RandomFloat01() < PlayerConstants.CHANCE_TO_BLEED_HAND_CONSTRUCTION)
756 {
757 if (Math.RandomFloat01() < 0.5)
758 action_data.m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
759 else
760 action_data.m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("RightForeArmRoll");
761 action_data.m_Player.RequestSoundEventEx(EPlayerSoundEventID.INJURED_LIGHT); //play sound regardless?
762 }
763 }
764 }
765 }
766 }
767
768 override string GetSoundCategory(ActionData action_data)
769 {
770 return "Base_building";
771 }
772
773 override ActionData CreateActionData()
774 {
775 BuildPartActionData action_data = new BuildPartActionData;
776 return action_data;
777 }
778
779 //setup
780 override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
781 {
782 if (super.SetupAction(player, target, item, action_data, extra_data))
783 {
784 if (!g_Game.IsDedicatedServer())
785 {
786 ComposeBuildActionDataClient(player,target,item,action_data,extra_data);
787 }
788
789 SetBuildingAnimationEx(player, target, item, action_data, extra_data);
790 return true;
791 }
792
793 return false;
794 }
795
796 protected void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
797 {
798 ConstructionActionData cad = action_data.m_Player.GetConstructionActionData();
800 BuildPartActionData.Cast(action_data).m_PartType = part.GetPartName();
801 }
802
803 protected void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data = NULL)
804 {
805 if (!item)
806 return;
807
808 switch (item.Type())
809 {
810 case Pickaxe:
811 case Shovel:
812 case FarmingHoe:
813 case FieldShovel:
814 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DIG;
815 break;
816 case Pliers:
817 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
818 break;
819 case SledgeHammer:
820 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_MINEROCK;
821 break;
822 case BrickTrowel:
823 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_BRICKTROWEL;
824 break;
825 default:
826 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
827 break;
828 }
829 }
830
831 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
832 {
833 super.WriteToContext(ctx, action_data);
834
835 ctx.Write(BuildPartActionData.Cast(action_data).m_PartType);
836 }
837
838 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
839 {
840 action_recive_data = new BuildPartActionReciveData;
841 super.ReadFromContext(ctx, action_recive_data);
842
843 string part_type;
844 if (ctx.Read(part_type))
845 {
846 BuildPartActionReciveData.Cast(action_recive_data).m_PartType = part_type;
847 return true;
848 }
849 else
850 {
851 return false;
852 }
853 }
854
855 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
856 {
857 super.HandleReciveData(action_recive_data, action_data);
858
859 BuildPartActionData.Cast(action_data).m_PartType = BuildPartActionReciveData.Cast(action_recive_data).m_PartType;
860 }
861
862 override string GetAdminLogMessage(ActionData action_data)
863 {
864 string partName = BuildPartActionData.Cast(action_data).m_PartType;
865
866 string itemName = "hands";
867 if (action_data.m_MainItem)
868 itemName = action_data.m_MainItem.GetDisplayName();
869
870 string message = string.Format("Built %1 on %2 with %3", partName, action_data.m_Target.GetObject().GetDisplayName(), itemName);
871 return message;
872 }
873
874 protected void ClearInfoData()
875 {
877 }
878
879 protected bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
880 {
882
883 ActionInfoDataConstructionPossible info = ActionInfoDataConstructionPossible.Cast(m_InfoData);
884 ConstructionActionData cad = player.GetConstructionActionData();
886 info.SetConstructionPart(part);
887 info.SetTool(item);
888
889 info.m_InfoContextMask |= EConstructionInfoCategories.MATERIALS_PRESENCE; //material info should always be visible
890 info.m_InfoContextMask |= EConstructionInfoCategories.TOOL_PRESENCE; //tools info should always be visible
891
892 return info.CanDisplayInfo();
893 }
894
896 protected bool PositioningCheck(PlayerBase player, ActionTarget target)
897 {
898 EntityAI ent = EntityAI.Cast(target.GetObject());
899 BaseBuildingBase bbb = BaseBuildingBase.Cast(ent);
900 ConstructionActionData cad = player.GetConstructionActionData();
902
903 if (part)
904 {
905 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
906 if (!ent.IsPlayerInsideEx(player, part.GetPartName()))
907 {
908 if (bbb && !bbb.MustBeBuiltFromOutside())
909 return false;
910 else if (!bbb)
911 return false;
912 }
913 if (!construction.ConstructionDirectionCheck(player, part, EConstructionDirCheckType.INDOORS))
914 return false;
915 if (!construction.ConstructionInsiderBoxCheck(player, part))
916 return false;
917
918 return true;
919 }
920 return false;
921 }
922
924 protected ConstructionPart GetTargetPart(ConstructionActionData cad)
925 {
927 }
928
930 //deprecated//
932 [Obsolete("Use 'SetBuildingAnimationEx' instead")]
933 protected void SetBuildingAnimation(ItemBase item)
934 {
935 SetBuildingAnimationEx(null,null,item,null);
936 }
937}
938
940{
942 {
943 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_2HD;
944 }
945
946 override void CreateConditionComponents()
947 {
948 m_ConditionItem = new CCINone;
949 m_ConditionTarget = new CCTCursor;
950 }
951
952 override bool UseMainItem()
953 {
954 return false;
955 }
956
957 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
958 {
959 ConstructionActionData cad = player.GetConstructionActionData();
961 if (part)
962 {
963 string overrideText = part.GetBuildTextOverride();
964 if (overrideText == string.Empty)
965 m_Text = "#build "+ part.GetName();
966 else
967 m_Text = overrideText;
968
969 #ifdef DIAG_DEVELOPER
970 if (DiagMenu.GetBool(DiagMenuIDs.BASEBUILDING_FULLDEBUG))
971 {
972 m_Text = "dbgBuild | part classname: " + part.GetPartName() + " with hands";
973 }
974 #endif
975 }
976 }
977
978 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
979 {
980 #ifdef DIAG_DEVELOPER
981 if (player.GetConstructionActionData().GetFastConstructionMode() == EConstructionDebugModes.INSTANT)
982 return false;
983 #endif
984
985 if (item)
986 return false;
987
988 EntityAI ent;
989 if (!Class.CastTo(ent,target.GetObject()))
990 return false;
991
992 if (player.IsPlacingLocal() || player.IsPlacingServer())
993 return false;
994
995 //Action not allowed if player has broken legs
996 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
997 return false;
998
999 bool handConstructionCondition = ent.CanUseHandConstruction();
1000 #ifdef DIAG_DEVELOPER
1001 if (player.GetConstructionActionData().GetFastConstructionMode())
1002 handConstructionCondition = true;
1003 #endif
1004
1005 if (!ent.CanUseConstruction() || !ent.CanUseConstructionBuild() || !handConstructionCondition)
1006 return false;
1007
1008 if ((!GetGame().IsDedicatedServer()))
1009 {
1010 if (!PositioningCheck(player, target))
1011 return false;
1012
1013 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item, m_VariantID))
1014 return GatherInfoData(player,target,item);
1015
1016 return false;
1017 }
1018 return true;
1019 }
1020
1021 override bool ActionConditionContinue(ActionData action_data)
1022 {
1023 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
1024 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
1025 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
1026 CollisionCheckData check_data = new CollisionCheckData;
1027
1028 check_data.m_PartName = part_name;
1029 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
1030
1031 bool canBuild = construction.CanBuildPart(part_name, null, false);
1032 #ifdef DIAG_DEVELOPER
1033 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
1034 canBuild = true;
1035 #endif
1036 if (GetGame().IsServer())
1037 {
1038 bool collides = construction.IsCollidingEx(check_data);
1039
1040 return !collides && canBuild;
1041 }
1042 else
1043 {
1044 return canBuild;
1045 }
1046 }
1047
1048 override protected bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
1049 {
1050 ClearInfoData();
1051
1052 ActionInfoDataConstructionPossible info = ActionInfoDataConstructionPossible.Cast(m_InfoData);
1053 ConstructionActionData cad = player.GetConstructionActionData();
1055 info.SetConstructionPart(part);
1056 info.SetTool(item);
1057
1058 info.m_InfoContextMask |= EConstructionInfoCategories.MATERIALS_PRESENCE; //material info should always be visible
1059 /*
1060 int actionMask = part.GetBuildActionTypeMask();
1061 actionMask &= ~EConstructionTools.TOOL_HANDS;
1062 if (actionMask != 0)
1063 info.m_InfoContextMask |= EConstructionInfoCategories.TOOL_PRESENCE; //tools info ONLY when also buildable by one!
1064 */
1065 info.m_InfoContextMask |= EConstructionInfoCategories.TOOL_PRESENCE; //tools info should always be visible
1066
1067 return info.CanDisplayInfo();
1068 }
1069
1070 override protected void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
1071 {
1072 ConstructionActionData cad = action_data.m_Player.GetConstructionActionData();
1073 BuildPartActionData.Cast(action_data).m_PartType = cad.GetBuildPartHandsGenericAtIndex(m_VariantID).GetPartName();
1074 }
1075
1077 override protected ConstructionPart GetTargetPart(ConstructionActionData cad)
1078 {
1080 }
1081
1083 override protected void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data = NULL)
1084 {
1085 if (item)
1086 return;
1087
1088 BuildPartActionData buildData;
1089 if (Class.CastTo(buildData, action_data))
1090 {
1091 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
1092 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
1093 ConstructionPart part = construction.GetConstructionPart(buildData.m_PartType);
1094 int animOverrideID = part.GetHandBuildFBAnimOverride();
1095
1096 if (animOverrideID >= 0)
1097 m_CommandUID = animOverrideID;
1098 else
1099 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_2HD;
1100 }
1101 }
1102}
1103
1104// 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.