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

◆ UpdateVisuals()

void Init::UpdateVisuals ( )
protected

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

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