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

◆ GetVisualManager()

CodeLockVisualManager Init::GetVisualManager ( )
protected

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

1002 : ItemBase
1003{
1004 const string MEMPOINT_INSIDE = "inside";
1005 const string MEMPOINT_CENTER = "ce_center";
1006
1007 protected const string ATTACHMENT_SLOT_BATTERY = "BatteryD";
1008 protected const string SELECTION_NAME_BACK = "back";
1009
1012
1013 protected bool m_Reversed = false;
1014
1015 // Sounds
1016 private const string CODELOCK_ACCESS_SOUND = "digitalLock_beep_Access_SoundSet";
1017 private const string CODELOCK_LOCK_SOUND = "digitalLock_mechanism_Lock_SoundSet";
1018 private const string CODELOCK_UNLOCK_SOUND = "digitalLock_mechanism_Unlock_SoundSet";
1019 private const string CODELOCK_ERROR_SOUND = "digitalLock_beep_Error_SoundSet";
1020 private const string CODELOCK_DIGITS_SOUND = "digitalLock_buttons_Digits_SoundSet";
1021 private const string CODELOCK_CLEAR_SOUND = "digitalLock_button_Clear_SoundSet";
1022 private const string CODELOCK_CONFIRM_SOUND = "digitalLock_button_Key_confirm_SoundSet";
1023
1024 void DigitalCodeLock()
1025 {
1026 Init();
1027 }
1028
1029 protected void Init()
1030 {
1033
1034 RegisterNetSyncVariableInt("m_CodeLockComponent.m_DoorIndex");
1035 RegisterNetSyncVariableInt("m_CodeLockComponent.m_Stage");
1036 RegisterNetSyncVariableInt("m_CodeLockComponent.m_WrongCodeCount");
1037 RegisterNetSyncVariableInt("m_CodeLockComponent.m_UIAction");
1038 RegisterNetSyncVariableBool("m_CodeLockComponent.m_IsLocked");
1039 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasPIN");
1040 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasBruteForceProtection");
1041 RegisterNetSyncVariableBoolSignal("m_CodeLockComponent.m_HandleBruteForceProtection");
1042 RegisterNetSyncVariableBool("m_Reversed");
1043 }
1044
1045 override void EEInit()
1046 {
1047 super.EEInit();
1048
1049 // Set visuals on init
1051 }
1052
1053 override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc)
1054 {
1055 super.EEItemLocationChanged(oldLoc, newLoc);
1056
1057 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1058 {
1059 if (newLoc.GetType() != InventoryLocationType.ATTACHMENT)
1060 {
1061 if (g_Game.IsDedicatedServer())
1062 SetSynchDirty();
1063
1064 // Force update since animation need too change
1065 UpdateVisuals();
1066 }
1067 }
1068 }
1069
1070 override void EEItemAttached(EntityAI item, string slot_name)
1071 {
1072 super.EEItemAttached(item, slot_name);
1073
1074 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1075 {
1077 if (slot_name == ATTACHMENT_SLOT_BATTERY)
1078 {
1079 Battery9V battery = Battery9V.Cast(item);
1080 if (battery)
1081 {
1082 float batteryEnergy = battery.GetCompEM().GetEnergy();
1083 if (batteryEnergy > 0 && HasValidParent())
1084 {
1085 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1086 GetCompEM().SwitchOn();
1087 }
1088
1089 UpdateVisuals();
1090 }
1091 }
1092 }
1093 }
1094
1095 override void EEItemDetached(EntityAI item, string slot_name)
1096 {
1097 super.EEItemDetached(item, slot_name);
1098
1099 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1100 {
1102 if (slot_name == ATTACHMENT_SLOT_BATTERY)
1103 {
1104 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
1105 GetCompEM().SwitchOff();
1106
1107 UpdateVisuals();
1108 }
1109 }
1110 }
1111
1112 override void OnWasAttached(EntityAI parent, int slot_id)
1113 {
1114 super.OnWasAttached(parent, slot_id);
1115
1116 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1117 {
1119 string slotName = InventorySlots.GetSlotName(slot_id);
1120 if (slotName.IndexOf("Att_CodeLock") > -1)
1121 {
1122 Battery9V battery = GetBattery();
1123 if (battery && battery.GetCompEM().GetEnergy() > 0 && !GetCompEM().IsWorking())
1124 {
1125 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1126 GetCompEM().SwitchOn();
1127 }
1128
1129 if (parent && parent.CanUseConstruction())
1130 {
1131 BuildingBase buildingBase = BuildingBase.Cast(parent);
1132 if (buildingBase)
1133 {
1134 SetDoorInfoFromSlot(buildingBase, slotName);
1135 }
1136 }
1137 }
1138
1139 UpdateVisuals();
1140 }
1141 }
1142
1143 override void OnWasDetached(EntityAI parent, int slot_id)
1144 {
1145 super.OnWasDetached(parent, slot_id);
1146
1147 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1148 {
1150 if (GetCompEM().IsWorking())
1151 GetCompEM().SwitchOff();
1152
1153 string slotName = InventorySlots.GetSlotName(slot_id);
1154 if (slotName.IndexOf("Att_CodeLock") > -1)
1155 {
1156 m_Reversed = false;
1157 m_CodeLockComponent.StopAllTimers();
1158 m_CodeLockComponent.OnParentDetached();
1159 }
1160
1161 UpdateVisuals();
1162 }
1163 }
1164
1165 override bool CanDetachAttachment(EntityAI parent)
1166 {
1167 if (IsLocked())
1168 return false;
1169
1170 return true;
1171 }
1172
1173 protected void SetDoorInfoFromSlot(BuildingBase buildingBase, string slotName)
1174 {
1175 map<int, ref AdditionalDoorInfo> doorsInfoMap = buildingBase.GetDoorInfoHolder().GetDoorInfoMap();
1177 if (doorsInfoMap && doorsInfoMap.Count() > 0)
1178 {
1179 int doorIndex = -1;
1180 AdditionalDoorInfo doorInfo;
1181 foreach(int doorInfoIndex, AdditionalDoorInfo doorInfoData: doorsInfoMap)
1182 {
1183 foreach(string relatedSlotName: doorInfoData.m_RelatedInventorySlotNames)
1184 {
1185 if (relatedSlotName == slotName)
1186 {
1187 doorIndex = doorInfoIndex;
1188 doorInfo = doorInfoData;
1189 break;
1190 }
1191 }
1192
1193 if (doorIndex != -1)
1194 break;
1195 }
1196
1197 if (doorIndex > -1)
1198 {
1199 m_CodeLockComponent.SetDoorIndex(doorIndex);
1200 }
1201
1203 Rebuilding rebuilding = Rebuilding.Cast(buildingBase.GetConstructionBasic());
1204 if (rebuilding && doorInfo)
1205 {
1206 ConstructionPart constructionPart = rebuilding.GetConstructionPart(doorInfo.m_DoorConstructionPartName);
1207 ConstructionPartRebuildReversibleDoor reversibleDoorPart;
1208 if (constructionPart && Class.CastTo(reversibleDoorPart, constructionPart))
1209 {
1210 m_Reversed = reversibleDoorPart.IsReversedLocal();
1211 }
1212 }
1213 }
1214 }
1215
1217 bool CanDetachCodeLock(notnull PlayerBase player, int componentIndex)
1218 {
1219 if (HasValidParent() && !IsLocked())
1220 {
1222 if (!GetReversedState() && !MiscGameplayFunctions.MemPointDirectionalCheck(player, this, DigitalCodeLock.MEMPOINT_CENTER, DigitalCodeLock.MEMPOINT_INSIDE))
1223 return false;
1224 }
1225
1226 return true;
1227 }
1228
1229 override void OnWorkStop()
1230 {
1231 super.OnWorkStop();
1232
1233 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1234 {
1235 m_CodeLockComponent.StopAllTimers();
1236 m_CodeLockComponent.OnParentReset(false);
1237
1239 }
1240 }
1241
1242 override void OnWorkStart()
1243 {
1244 super.OnWorkStart();
1245
1246 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1247 {
1248 UpdateVisuals();
1249 }
1250 }
1251
1252 override void OnWork(float consumed_energy)
1253 {
1254 super.OnWork(consumed_energy);
1255
1256 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1257 {
1258 Battery9V battery = GetBattery();
1259 if (battery)
1260 {
1261 if (GetCompEM().IsWorking() && battery.GetCompEM().GetEnergy() <= 0)
1262 {
1263 GetCompEM().SwitchOff();
1264 m_CodeLockComponent.SetLockState(false, false);
1265 }
1266
1267 float energyPercent = GetBatteryEnergy();
1268 if (m_VisualManager.HasBatteryLevelChanged())
1269 {
1270 UpdateVisuals();
1271 SetSynchDirty();
1272 }
1273 }
1274 }
1275 }
1276
1278 void UnlockOnServer(EntityAI parent)
1279 {
1280 InventoryLocation inventoryLocation = new InventoryLocation;
1281 GetInventory().GetCurrentInventoryLocation(inventoryLocation);
1282
1283 //drop entity from attachment slot
1284 if (g_Game.IsMultiplayer())
1285 {
1286 parent.GetInventory().DropEntity(InventoryMode.SERVER, parent, this);
1287 }
1288 else
1289 {
1290 parent.GetInventory().DropEntity(InventoryMode.LOCAL, parent, this);
1291 }
1292
1293 vector groundPos;
1294 string slotName = InventorySlots.GetSlotName(inventoryLocation.GetSlot());
1295 if (parent.MemoryPointExists(slotName))
1296 {
1297 groundPos = parent.ModelToWorld(parent.GetMemoryPointPos(slotName));
1298 }
1299 else
1300 {
1301 groundPos = GetPosition();
1302 }
1303
1304 SetPosition(groundPos);
1305 PlaceOnSurface();
1306 }
1307
1309 {
1310 Battery9V battery = Battery9V.Cast(GetInventory().FindAttachment(Battery9V.SLOT_ID));
1311 return battery;
1312 }
1313
1314 bool CanBeLocked()
1315 {
1316 return true;
1317 }
1318
1319 bool CanBeUnlocked()
1320 {
1321 return true;
1322 }
1323
1324 bool CanSetCode()
1325 {
1326 return true;
1327 }
1328
1329 bool HasBattery()
1330 {
1331 return GetBattery() != null;
1332 }
1333
1334 bool NeedBattery()
1335 {
1336 return true;
1337 }
1338
1339 bool HasEnergy()
1340 {
1341 return GetCompEM().IsWorking();
1342 }
1343
1344 bool HasPIN()
1345 {
1346 return m_CodeLockComponent.HasPIN();
1347 }
1348
1349 string GetInputPIN()
1350 {
1351 return m_CodeLockComponent.GetInputPIN();
1352 }
1353
1354 string GetLockPIN()
1355 {
1356 return m_CodeLockComponent.GetLockPIN();
1357 }
1358
1359 void ResetPIN()
1360 {
1361 m_CodeLockComponent.ResetPIN();
1362 }
1363
1364 void SetLockState(bool state)
1365 {
1366 m_CodeLockComponent.SetLockState(state);
1367 }
1368
1370 {
1371 return m_CodeLockComponent;
1372 }
1373
1374 bool IsLocked()
1375 {
1376 return m_CodeLockComponent.IsLocked();
1377 }
1378
1380 {
1381 return m_CodeLockComponent.GetStage();
1382 }
1383
1385 {
1386 return m_CodeLockComponent.HasBruteForceProtection();
1387 }
1388
1390 {
1391 return m_CodeLockComponent.ShouldHandleBruteForce();
1392 }
1393
1394 int GetWrongCodeCount()
1395 {
1396 return m_CodeLockComponent.GetWrongCodeCount();
1397 }
1398
1400 {
1401 return m_CodeLockComponent.GetMinLockPINLength();
1402 }
1403
1404 bool GetReversedState()
1405 {
1406 return m_Reversed;
1407 }
1408
1411 bool IsPlayerOnBackside(PlayerBase player)
1412 {
1413 if (!player)
1414 return false;
1415
1416 if (!MemoryPointExists(MEMPOINT_CENTER) || !MemoryPointExists(MEMPOINT_INSIDE))
1417 return false;
1418
1419 bool playerOnInsideSide = MiscGameplayFunctions.MemPointDirectionalCheck(player, this, MEMPOINT_CENTER, MEMPOINT_INSIDE);
1420
1421 return playerOnInsideSide != GetReversedState();
1422 }
1423
1424 bool HasValidParent()
1425 {
1426 EntityAI hierarchyParent = GetHierarchyRoot();
1427 if (hierarchyParent.CanUseConstruction())
1428 return true;
1429
1430 if (BroadcastedBunker.Cast(hierarchyParent))
1431 return true;
1432
1433 return false;
1434 }
1435
1437 {
1438 return m_VisualManager;
1439 }
1440
1441 float GetBatteryEnergy()
1442 {
1443 Battery9V battery = GetBattery();
1444 if (!battery)
1445 return 0.0;
1446
1447 float energy = battery.GetCompEM().GetEnergy();
1448 float energyMax = battery.GetCompEM().GetEnergyMax();
1449
1450 if (energyMax <= 0)
1451 return 0.0;
1452
1453 return (energy / energyMax) * 100.0;
1454 }
1455
1456 void UpdateVisuals()
1457 {
1458 if (m_VisualManager)
1459 m_VisualManager.UpdateVisuals();
1460 }
1461
1463 {
1464 if (m_VisualManager)
1465 {
1466 m_VisualManager.MarkDirty();
1467 m_VisualManager.UpdateVisuals();
1468 }
1469 }
1470
1471 override void SetActions()
1472 {
1473 super.SetActions();
1474
1476 }
1477
1478 override void OnRPC(PlayerIdentity sender, int rpc_type,ParamsReadContext ctx)
1479 {
1480 super.OnRPC(sender, rpc_type, ctx);
1481
1482 m_CodeLockComponent.OnRPC(sender, rpc_type, ctx);
1483 }
1484
1485 override void OnStoreSave(ParamsWriteContext ctx)
1486 {
1487 super.OnStoreSave(ctx);
1488
1489 m_CodeLockComponent.OnStoreSave(ctx);
1490 }
1491
1492 override bool OnStoreLoad(ParamsReadContext ctx, int version)
1493 {
1494 if (!super.OnStoreLoad(ctx, version))
1495 return false;
1496
1497 if (!m_CodeLockComponent.OnStoreLoad(ctx, version))
1498 return false;
1499
1500 return true;
1501 }
1502
1503 override void AfterStoreLoad()
1504 {
1505 super.AfterStoreLoad();
1506
1507 if (HasBattery())
1508 {
1509 if (HasPIN())
1510 {
1511 m_CodeLockComponent.SetStage(CodeLockStage.NORMAL);
1512 }
1513 else
1514 {
1515 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1516 }
1517 }
1518
1520 }
1521
1522 override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
1523 {
1524 super.EEHealthLevelChanged(oldLevel,newLevel,zone);
1525
1527 }
1528
1529 override void OnVariablesSynchronized()
1530 {
1531 super.OnVariablesSynchronized();
1532
1534 {
1535 CodeLockUIAction uiAction = m_CodeLockComponent.GetUIAction();
1536 if (uiAction != CodeLockUIAction.NONE)
1537 {
1538 m_CodeLockComponent.CheckUIActionClient();
1539 }
1540 }
1541 }
1542
1543 override bool IsExternalLockType()
1544 {
1545 return true;
1546 }
1547
1548 override void InitItemSounds()
1549 {
1550 super.InitItemSounds();
1551
1552 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ACCESS, CODELOCK_ACCESS_SOUND);
1553 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_LOCK, CODELOCK_LOCK_SOUND);
1554 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_UNLOCK, CODELOCK_UNLOCK_SOUND);
1555 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ERROR, CODELOCK_ERROR_SOUND);
1556 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CONFIRM_INPUT, CODELOCK_CONFIRM_SOUND);
1557 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CLEAR_INPUT, CODELOCK_CLEAR_SOUND);
1558 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_DIGIT_INPUT, CODELOCK_DIGITS_SOUND);
1559 }
1560
1561 //Debug menu Spawn Ground Special
1562 override void OnDebugSpawn()
1563 {
1564 GetInventory().CreateInInventory("Battery9V");
1565 }
1566}
1567
1568class DigitalCodeLock_Bunker : DigitalCodeLock
1569{
1570 override void Init()
1571 {
1572 super.Init();
1573
1574 BunkerBroadcastConfigInstance bunkerConfig = CfgBunkerBroadcastHandler.GetData();
1575 int pinCodeLength = CodeLockComponent.MIN_LOCK_PIN_LENGTH;
1576
1577 if (bunkerConfig && bunkerConfig.bunkerSettings)
1578 {
1580 pinCodeLength = bunkerConfig.bunkerSettings.lockCodeLength;
1581 if (pinCodeLength > CodeLockComponent.MAX_LOCK_PIN_LENGTH)
1582 pinCodeLength = CodeLockComponent.MAX_LOCK_PIN_LENGTH;
1583 }
1584
1585 m_CodeLockComponent.SetMinimalPinCodeLength(pinCodeLength);
1586 }
1587
1588 override bool CanBeLocked()
1589 {
1590 return false;
1591 }
1592
1593 override bool CanSetCode()
1594 {
1595 return false;
1596 }
1597
1598 override bool CanDetachAttachment(EntityAI parent)
1599 {
1600 return false;
1601 }
1602
1604 override void OnWasDetached(EntityAI parent, int slot_id) {}
1605
1606 override bool NeedBattery()
1607 {
1608 return false;
1609 }
1610
1611 override bool HasBattery()
1612 {
1613 return true;
1614 }
1615
1616 override bool HasEnergy()
1617 {
1618 return true;
1619 }
1620
1621 override bool ShowZonesHealth()
1622 {
1623 return true;
1624 }
1625
1626 bool SetLockCode(string pin)
1627 {
1628 return m_CodeLockComponent.SetLockCode(pin);
1629 }
1630
1631 void Disable()
1632 {
1633 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
1634 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_GREEN_LIGHT, 1.0);
1635 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_RED_LIGHT, 1.0);
1636 }
1637}
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