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

◆ GetTargetPart()

ConstructionPart GetTargetPart ( ConstructionActionData cad)
protected

Does not work on server, since variants are not updated there (invoker does not invoke)

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

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