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

◆ EEItemDetached()

override void Init::EEItemDetached ( EntityAI item,
string slot_name )
protected

Stop energy consumption once battery is detached with active energy manager

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

661 : ItemBase
662{
663 const string MEMPOINT_INSIDE = "inside";
664 const string MEMPOINT_CENTER = "ce_center";
665
666 protected const string ATTACHMENT_SLOT_BATTERY = "BatteryD";
667 protected const string SELECTION_NAME_BACK = "back";
668
671
672 protected bool m_Reversed = false;
673
674 // Sounds
675 private const string CODELOCK_ACCESS_SOUND = "digitalLock_beep_Access_SoundSet";
676 private const string CODELOCK_LOCK_SOUND = "digitalLock_mechanism_Lock_SoundSet";
677 private const string CODELOCK_UNLOCK_SOUND = "digitalLock_mechanism_Unlock_SoundSet";
678 private const string CODELOCK_ERROR_SOUND = "digitalLock_beep_Error_SoundSet";
679 private const string CODELOCK_DIGITS_SOUND = "digitalLock_buttons_Digits_SoundSet";
680 private const string CODELOCK_CLEAR_SOUND = "digitalLock_button_Clear_SoundSet";
681 private const string CODELOCK_CONFIRM_SOUND = "digitalLock_button_Key_confirm_SoundSet";
682
683 void DigitalCodeLock()
684 {
685 Init();
686 }
687
688 protected void Init()
689 {
692
693 RegisterNetSyncVariableInt("m_CodeLockComponent.m_DoorIndex");
694 RegisterNetSyncVariableInt("m_CodeLockComponent.m_Stage");
695 RegisterNetSyncVariableInt("m_CodeLockComponent.m_WrongCodeCount");
696 RegisterNetSyncVariableInt("m_CodeLockComponent.m_UIAction");
697 RegisterNetSyncVariableBool("m_CodeLockComponent.m_IsLocked");
698 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasPIN");
699 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasBruteForceProtection");
700 RegisterNetSyncVariableBoolSignal("m_CodeLockComponent.m_HandleBruteForceProtection");
701 RegisterNetSyncVariableBool("m_Reversed");
702 }
703
704 override void EEInit()
705 {
706 super.EEInit();
707
708 // Set visuals on init
710 }
711
712 override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc)
713 {
714 super.EEItemLocationChanged(oldLoc, newLoc);
715
716 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
717 {
718 if (newLoc.GetType() != InventoryLocationType.ATTACHMENT)
719 {
720 if (g_Game.IsDedicatedServer())
721 SetSynchDirty();
722
723 // Force update since animation need too change
725 }
726 }
727 }
728
729 override void EEItemAttached(EntityAI item, string slot_name)
730 {
731 super.EEItemAttached(item, slot_name);
732
733 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
734 {
736 if (slot_name == ATTACHMENT_SLOT_BATTERY)
737 {
738 Battery9V battery = Battery9V.Cast(item);
739 if (battery)
740 {
741 float batteryEnergy = battery.GetCompEM().GetEnergy();
742 if (batteryEnergy > 0 && HasValidParent())
743 {
744 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
745 GetCompEM().SwitchOn();
746 }
747
749 }
750 }
751 }
752 }
753
754 override void EEItemDetached(EntityAI item, string slot_name)
755 {
756 super.EEItemDetached(item, slot_name);
757
758 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
759 {
761 if (slot_name == ATTACHMENT_SLOT_BATTERY)
762 {
763 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
764 GetCompEM().SwitchOff();
765
767 }
768 }
769 }
770
771 override void OnWasAttached(EntityAI parent, int slot_id)
772 {
773 super.OnWasAttached(parent, slot_id);
774
775 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
776 {
778 string slotName = InventorySlots.GetSlotName(slot_id);
779 if (slotName.IndexOf("Att_CodeLock") > -1)
780 {
781 Battery9V battery = GetBattery();
782 if (battery && battery.GetCompEM().GetEnergy() > 0 && !GetCompEM().IsWorking())
783 {
784 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
785 GetCompEM().SwitchOn();
786 }
787
788 if (parent && parent.CanUseConstruction())
789 {
790 BuildingBase buildingBase = BuildingBase.Cast(parent);
791 if (buildingBase)
792 {
793 SetDoorInfoFromSlot(buildingBase, slotName);
794 }
795 }
796 }
797
799 }
800 }
801
802 override void OnWasDetached(EntityAI parent, int slot_id)
803 {
804 super.OnWasDetached(parent, slot_id);
805
806 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
807 {
809 if (GetCompEM().IsWorking())
810 GetCompEM().SwitchOff();
811
812 string slotName = InventorySlots.GetSlotName(slot_id);
813 if (slotName.IndexOf("Att_CodeLock") > -1)
814 {
815 m_Reversed = false;
816 m_CodeLockComponent.StopAllTimers();
817 m_CodeLockComponent.OnParentDetached();
818 }
819
821 }
822 }
823
824 override bool CanDetachAttachment(EntityAI parent)
825 {
826 if (IsLocked())
827 return false;
828
829 return true;
830 }
831
832 protected void SetDoorInfoFromSlot(BuildingBase buildingBase, string slotName)
833 {
834 map<int, ref AdditionalDoorInfo> doorsInfoMap = buildingBase.GetDoorInfoHolder().GetDoorInfoMap();
836 if (doorsInfoMap && doorsInfoMap.Count() > 0)
837 {
838 int doorIndex = -1;
839 AdditionalDoorInfo doorInfo;
840 foreach(int doorInfoIndex, AdditionalDoorInfo doorInfoData: doorsInfoMap)
841 {
842 foreach(string relatedSlotName: doorInfoData.m_RelatedInventorySlotNames)
843 {
844 if (relatedSlotName == slotName)
845 {
846 doorIndex = doorInfoIndex;
847 doorInfo = doorInfoData;
848 break;
849 }
850 }
851
852 if (doorIndex != -1)
853 break;
854 }
855
856 if (doorIndex > -1)
857 {
858 m_CodeLockComponent.SetDoorIndex(doorIndex);
859 }
860
862 Rebuilding rebuilding = Rebuilding.Cast(buildingBase.GetConstructionBasic());
863 if (rebuilding && doorInfo)
864 {
865 ConstructionPart constructionPart = rebuilding.GetConstructionPart(doorInfo.m_DoorConstructionPartName);
866 ConstructionPartRebuildReversibleDoor reversibleDoorPart;
867 if (constructionPart && Class.CastTo(reversibleDoorPart, constructionPart))
868 {
869 m_Reversed = reversibleDoorPart.IsReversedLocal();
870 }
871 }
872 }
873 }
874
876 bool CanDetachCodeLock(notnull PlayerBase player, int componentIndex)
877 {
878 if (HasValidParent() && !IsLocked())
879 {
881 if (!GetReversedState() && !MiscGameplayFunctions.MemPointDirectionalCheck(player, this, DigitalCodeLock.MEMPOINT_CENTER, DigitalCodeLock.MEMPOINT_INSIDE))
882 return false;
883 }
884
885 return true;
886 }
887
888 override void OnWorkStop()
889 {
890 super.OnWorkStop();
891
892 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
893 {
894 m_CodeLockComponent.StopAllTimers();
895 m_CodeLockComponent.OnParentReset(false);
896
898 }
899 }
900
901 override void OnWorkStart()
902 {
903 super.OnWorkStart();
904
905 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
906 {
908 }
909 }
910
911 override void OnWork(float consumed_energy)
912 {
913 super.OnWork(consumed_energy);
914
915 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
916 {
917 Battery9V battery = GetBattery();
918 if (battery)
919 {
920 if (GetCompEM().IsWorking() && battery.GetCompEM().GetEnergy() <= 0)
921 {
922 GetCompEM().SwitchOff();
923 m_CodeLockComponent.SetLockState(false, false);
924 }
925
926 float energyPercent = GetBatteryEnergy();
927 if (m_VisualManager.HasBatteryLevelChanged())
928 {
930 SetSynchDirty();
931 }
932 }
933 }
934 }
935
937 void UnlockOnServer(EntityAI parent)
938 {
939 InventoryLocation inventoryLocation = new InventoryLocation;
940 GetInventory().GetCurrentInventoryLocation(inventoryLocation);
941
942 //drop entity from attachment slot
943 if (g_Game.IsMultiplayer())
944 {
945 parent.GetInventory().DropEntity(InventoryMode.SERVER, parent, this);
946 }
947 else
948 {
949 parent.GetInventory().DropEntity(InventoryMode.LOCAL, parent, this);
950 }
951
952 vector groundPos;
953 string slotName = InventorySlots.GetSlotName(inventoryLocation.GetSlot());
954 if (parent.MemoryPointExists(slotName))
955 {
956 groundPos = parent.ModelToWorld(parent.GetMemoryPointPos(slotName));
957 }
958 else
959 {
960 groundPos = GetPosition();
961 }
962
963 SetPosition(groundPos);
964 PlaceOnSurface();
965 }
966
968 {
969 Battery9V battery = Battery9V.Cast(GetInventory().FindAttachment(Battery9V.SLOT_ID));
970 return battery;
971 }
972
973 bool CanBeLocked()
974 {
975 return true;
976 }
977
978 bool CanBeUnlocked()
979 {
980 return true;
981 }
982
983 bool CanSetCode()
984 {
985 return true;
986 }
987
988 bool HasBattery()
989 {
990 return GetBattery() != null;
991 }
992
993 bool NeedBattery()
994 {
995 return true;
996 }
997
998 bool HasEnergy()
999 {
1000 return GetCompEM().IsWorking();
1001 }
1002
1003 bool HasPIN()
1004 {
1005 return m_CodeLockComponent.HasPIN();
1006 }
1007
1008 string GetInputPIN()
1009 {
1010 return m_CodeLockComponent.GetInputPIN();
1011 }
1012
1013 string GetLockPIN()
1014 {
1015 return m_CodeLockComponent.GetLockPIN();
1016 }
1017
1018 void ResetPIN()
1019 {
1020 m_CodeLockComponent.ResetPIN();
1021 }
1022
1023 void SetLockState(bool state)
1024 {
1025 m_CodeLockComponent.SetLockState(state);
1026 }
1027
1029 {
1030 return m_CodeLockComponent;
1031 }
1032
1033 bool IsLocked()
1034 {
1035 return m_CodeLockComponent.IsLocked();
1036 }
1037
1039 {
1040 return m_CodeLockComponent.GetStage();
1041 }
1042
1044 {
1045 return m_CodeLockComponent.HasBruteForceProtection();
1046 }
1047
1049 {
1050 return m_CodeLockComponent.ShouldHandleBruteForce();
1051 }
1052
1053 int GetWrongCodeCount()
1054 {
1055 return m_CodeLockComponent.GetWrongCodeCount();
1056 }
1057
1059 {
1060 return m_CodeLockComponent.GetMinLockPINLength();
1061 }
1062
1063 bool GetReversedState()
1064 {
1065 return m_Reversed;
1066 }
1067
1070 bool IsPlayerOnBackside(PlayerBase player)
1071 {
1072 if (!player)
1073 return false;
1074
1075 if (!MemoryPointExists(MEMPOINT_CENTER) || !MemoryPointExists(MEMPOINT_INSIDE))
1076 return false;
1077
1078 bool playerOnInsideSide = MiscGameplayFunctions.MemPointDirectionalCheck(player, this, MEMPOINT_CENTER, MEMPOINT_INSIDE);
1079
1080 return playerOnInsideSide != GetReversedState();
1081 }
1082
1083 bool HasValidParent()
1084 {
1085 EntityAI hierarchyParent = GetHierarchyRoot();
1086 if (hierarchyParent.CanUseConstruction())
1087 return true;
1088
1089 if (BroadcastedBunker.Cast(hierarchyParent))
1090 return true;
1091
1092 return false;
1093 }
1094
1096 {
1097 return m_VisualManager;
1098 }
1099
1100 float GetBatteryEnergy()
1101 {
1102 Battery9V battery = GetBattery();
1103 if (!battery)
1104 return 0.0;
1105
1106 float energy = battery.GetCompEM().GetEnergy();
1107 float energyMax = battery.GetCompEM().GetEnergyMax();
1108
1109 if (energyMax <= 0)
1110 return 0.0;
1111
1112 return (energy / energyMax) * 100.0;
1113 }
1114
1115 void UpdateVisuals()
1116 {
1117 if (m_VisualManager)
1118 m_VisualManager.UpdateVisuals();
1119 }
1120
1122 {
1123 if (m_VisualManager)
1124 {
1125 m_VisualManager.MarkDirty();
1126 m_VisualManager.UpdateVisuals();
1127 }
1128 }
1129
1130 override void SetActions()
1131 {
1132 super.SetActions();
1133
1135 }
1136
1137 override void OnRPC(PlayerIdentity sender, int rpc_type,ParamsReadContext ctx)
1138 {
1139 super.OnRPC(sender, rpc_type, ctx);
1140
1141 m_CodeLockComponent.OnRPC(sender, rpc_type, ctx);
1142 }
1143
1144 override void OnStoreSave(ParamsWriteContext ctx)
1145 {
1146 super.OnStoreSave(ctx);
1147
1148 m_CodeLockComponent.OnStoreSave(ctx);
1149 }
1150
1151 override bool OnStoreLoad(ParamsReadContext ctx, int version)
1152 {
1153 if (!super.OnStoreLoad(ctx, version))
1154 return false;
1155
1156 if (!m_CodeLockComponent.OnStoreLoad(ctx, version))
1157 return false;
1158
1159 return true;
1160 }
1161
1162 override void AfterStoreLoad()
1163 {
1164 super.AfterStoreLoad();
1165
1166 if (HasBattery())
1167 {
1168 if (HasPIN())
1169 {
1170 m_CodeLockComponent.SetStage(CodeLockStage.NORMAL);
1171 }
1172 else
1173 {
1174 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1175 }
1176 }
1177
1179 }
1180
1181 override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
1182 {
1183 super.EEHealthLevelChanged(oldLevel,newLevel,zone);
1184
1186 }
1187
1188 override void OnVariablesSynchronized()
1189 {
1190 super.OnVariablesSynchronized();
1191
1193 {
1194 CodeLockUIAction uiAction = m_CodeLockComponent.GetUIAction();
1195 if (uiAction != CodeLockUIAction.NONE)
1196 {
1197 m_CodeLockComponent.CheckUIActionClient();
1198 }
1199 }
1200 }
1201
1202 override bool IsExternalLockType()
1203 {
1204 return true;
1205 }
1206
1207 override void InitItemSounds()
1208 {
1209 super.InitItemSounds();
1210
1211 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ACCESS, CODELOCK_ACCESS_SOUND);
1212 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_LOCK, CODELOCK_LOCK_SOUND);
1213 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_UNLOCK, CODELOCK_UNLOCK_SOUND);
1214 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ERROR, CODELOCK_ERROR_SOUND);
1215 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CONFIRM_INPUT, CODELOCK_CONFIRM_SOUND);
1216 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CLEAR_INPUT, CODELOCK_CLEAR_SOUND);
1217 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_DIGIT_INPUT, CODELOCK_DIGITS_SOUND);
1218 }
1219
1220 //Debug menu Spawn Ground Special
1221 override void OnDebugSpawn()
1222 {
1223 GetInventory().CreateInInventory("Battery9V");
1224 }
1225}
1226
1227class DigitalCodeLock_Bunker : DigitalCodeLock
1228{
1229 override void Init()
1230 {
1231 super.Init();
1232
1233 BunkerBroadcastConfigInstance bunkerConfig = CfgBunkerBroadcastHandler.GetData();
1234 int pinCodeLength = CodeLockComponent.MIN_LOCK_PIN_LENGTH;
1235
1236 if (bunkerConfig && bunkerConfig.bunkerSettings)
1237 {
1239 pinCodeLength = bunkerConfig.bunkerSettings.lockCodeLength;
1240 if (pinCodeLength > CodeLockComponent.MAX_LOCK_PIN_LENGTH)
1241 pinCodeLength = CodeLockComponent.MAX_LOCK_PIN_LENGTH;
1242 }
1243
1244 m_CodeLockComponent.SetMinimalPinCodeLength(pinCodeLength);
1245 }
1246
1247 override bool CanBeLocked()
1248 {
1249 return false;
1250 }
1251
1252 override bool CanSetCode()
1253 {
1254 return false;
1255 }
1256
1257 override bool CanDetachAttachment(EntityAI parent)
1258 {
1259 return false;
1260 }
1261
1263 override void OnWasDetached(EntityAI parent, int slot_id) {}
1264
1265 override bool NeedBattery()
1266 {
1267 return false;
1268 }
1269
1270 override bool HasBattery()
1271 {
1272 return true;
1273 }
1274
1275 override bool HasEnergy()
1276 {
1277 return true;
1278 }
1279
1280 override bool ShowZonesHealth()
1281 {
1282 return true;
1283 }
1284
1285 bool SetLockCode(string pin)
1286 {
1287 return m_CodeLockComponent.SetLockCode(pin);
1288 }
1289
1290 void Disable()
1291 {
1292 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
1293 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_GREEN_LIGHT, 1.0);
1294 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_RED_LIGHT, 1.0);
1295 }
1296}
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
class LogManager EntityAI
void BuildingBase()
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
PlayerSpawnPreset slotName
override void EEItemDetached(EntityAI item, string slot_name)
Определения CodeLock.c:661
override void OnStoreSave(ParamsWriteContext ctx)
Определения CodeLock.c:1051
void UpdateVisuals()
Определения CodeLock.c:1022
override void SetActions()
Определения CodeLock.c:1037
void Disable()
Определения CodeLock.c:630
override void EEItemAttached(EntityAI item, string slot_name)
Определения CodeLock.c:636
override void OnWasDetached(EntityAI parent, int slot_id)
overrides the base behavior - intentional
Определения CodeLock.c:709
const string CODELOCK_UNLOCK_SOUND
Определения CodeLock.c:584
void UnlockOnServer(EntityAI parent)
Unlock AND drop.
Определения CodeLock.c:844
override void OnWorkStop()
Определения CodeLock.c:795
Battery9V GetBattery()
Определения CodeLock.c:874
CodeLockVisualManager GetVisualManager()
Определения CodeLock.c:1002
bool HasBattery()
Определения CodeLock.c:895
bool HasBruteForceProtection()
Определения CodeLock.c:950
const string SELECTION_NAME_BACK
Определения CodeLock.c:574
const string MEMPOINT_INSIDE
Определения CodeLock.c:570
void DigitalCodeLock()
Определения CodeLock.c:590
string GetLockPIN()
Определения CodeLock.c:920
override void OnWork(float consumed_energy)
Определения CodeLock.c:818
const string CODELOCK_DIGITS_SOUND
Определения CodeLock.c:586
bool NeedBattery()
Определения CodeLock.c:900
bool CanBeUnlocked()
Определения CodeLock.c:885
bool SetLockCode(string pin)
Определения CodeLock.c:625
bool HasPIN()
Определения CodeLock.c:910
bool IsPlayerOnBackside(PlayerBase player)
Определения CodeLock.c:977
override void EEInit()
Определения CodeLock.c:611
override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc)
Определения CodeLock.c:619
bool IsLocked()
Определения CodeLock.c:940
override bool OnStoreLoad(ParamsReadContext ctx, int version)
Определения CodeLock.c:1058
const string CODELOCK_CONFIRM_SOUND
Определения CodeLock.c:588
void SetLockState(bool state)
Определения CodeLock.c:930
bool CanSetCode()
Определения CodeLock.c:890
void ForceFullVisualsUpdate()
Определения CodeLock.c:1028
bool CanBeLocked()
Определения CodeLock.c:880
bool HasEnergy()
Определения CodeLock.c:905
bool CanDetachCodeLock(notnull PlayerBase player, int componentIndex)
Condition check called from ActionTakeItem and ActionTakeItemToHands.
Определения CodeLock.c:783
ref CodeLockVisualManager m_VisualManager
Определения CodeLock.c:577
override void OnWasAttached(EntityAI parent, int slot_id)
Определения CodeLock.c:678
void ResetPIN()
Определения CodeLock.c:925
bool ShouldHandleBruteForce()
Определения CodeLock.c:955
ref CodeLockComponent m_CodeLockComponent
Определения CodeLock.c:576
bool GetReversedState()
Определения CodeLock.c:970
float GetBatteryEnergy()
Определения CodeLock.c:1007
override void InitItemSounds()
Определения CodeLock.c:1114
bool m_Reversed
Определения CodeLock.c:579
int GetWrongCodeCount()
Определения CodeLock.c:960
bool HasValidParent()
Определения CodeLock.c:990
override bool CanDetachAttachment(EntityAI parent)
Определения CodeLock.c:731
string GetInputPIN()
Определения CodeLock.c:915
void SetDoorInfoFromSlot(BuildingBase buildingBase, string slotName)
Определения CodeLock.c:739
const string MEMPOINT_CENTER
Определения CodeLock.c:571
override void OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)
Определения CodeLock.c:1044
override void OnVariablesSynchronized()
Определения CodeLock.c:1095
CodeLockComponent GetCodeLockComponent()
Определения CodeLock.c:935
override void AfterStoreLoad()
Определения CodeLock.c:1069
const string CODELOCK_CLEAR_SOUND
Определения CodeLock.c:587
override bool IsExternalLockType()
Определения CodeLock.c:1109
CodeLockStage GetStage()
Определения CodeLock.c:945
const string ATTACHMENT_SLOT_BATTERY
Определения CodeLock.c:573
DigitalCodeLock ItemBase Init()
single position related to each particular attachment group
Определения CodeLock.c:569
const string CODELOCK_ERROR_SOUND
Определения CodeLock.c:585
int GetMinLockPINLength()
Определения CodeLock.c:965
const string CODELOCK_ACCESS_SOUND
Определения CodeLock.c:582
override void OnDebugSpawn()
Определения CodeLock.c:1128
override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
Определения CodeLock.c:1088
const string CODELOCK_LOCK_SOUND
Определения CodeLock.c:583
override void OnWorkStart()
Определения CodeLock.c:808
void CodeLockComponent(notnull EntityAI parent, int minLockPinLength=MIN_LOCK_PIN_LENGTH)
Определения CodeLockComponent.c:51
CodeLockStage
Определения CodeLockComponent.c:5
void CodeLockVisualManager(DigitalCodeLock codeLock, CodeLockComponent component)
Определения CodeLockVisualManager.c:63
DayZGame g_Game
Определения DayZGame.c:4074
InventoryLocationType
types of Inventory Location
Определения InventoryLocation.c:4
ItemSoundHandler GetItemSoundHandler()
Определения ItemBase.c:4407
string m_DoorConstructionPartName
memory point name for limiting open/close actions on the door/window
Определения AdditionalDoorsInfo.c:9
Single door info.
Определения AdditionalDoorsInfo.c:3
static int SLOT_ID
Определения Battery9V.c:3
Определения Battery9V.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Instanced construction part data classes for dynamic data, statics now stored on EntityType level in ...
Определения ConstructionPart.c:4
void Init()
Определения CodeLock.c:28
bool HasBattery()
Определения CodeLock.c:328
bool CanBeLocked()
Определения CodeLock.c:313
bool HasEnergy()
Определения CodeLock.c:338
const string MEMPOINT_INSIDE
Определения CodeLock.c:3
bool CanSetCode()
Определения CodeLock.c:323
const string MEMPOINT_CENTER
Определения CodeLock.c:4
bool NeedBattery()
Определения CodeLock.c:333
override void OnWasDetached(EntityAI parent, int slot_id)
Определения CodeLock.c:142
override bool CanDetachAttachment(EntityAI parent)
Определения CodeLock.c:164
Определения CodeLock.c:2
proto native int GetSlot()
returns slot id if current type is Attachment
InventoryLocation.
Определения InventoryLocation.c:30
static proto native owned string GetSlotName(int id)
converts slot_id to string
provides access to slot configuration
Определения InventorySlots.c:6
override bool ShowZonesHealth()
Определения PlayerBaseClient.c:2
The class that will be instanced (moddable)
Определения gameplay.c:389
Определения Rebuilding.c:2
Определения Transport.c:70
Определения EnConvert.c:119
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
proto native void SetPosition(vector position)
Set the world position of the Effect.
Определения Effect.c:463
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
vector GetPosition()
Get the world position of the Effect.
Определения Effect.c:473