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

◆ SetBuildingAnimation()

void ActionBuildPartHandsGeneric::SetBuildingAnimation ( ItemBase item)
protected

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

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