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

◆ HandleReciveData()

override void ActionBuildPartHandsGeneric::HandleReciveData ( ActionReciveData action_recive_data,
ActionData action_data )
protected

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

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