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

◆ PositioningCheck()

bool ActionBuildPartHandsGeneric::PositioningCheck ( PlayerBase player,
ActionTarget target )
protected

Can build from the inside only, if applicable.

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

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