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

◆ ReadFromContext()

override bool ActionBuildPartHandsGeneric::ReadFromContext ( ParamsReadContext ctx,
out ActionReciveData action_recive_data )
protected

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

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