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

◆ GatherInfoData()

bool GatherInfoData ( PlayerBase player,
ActionTarget target,
ItemBase item )
protected

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

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

Используется в ActionCondition().