21 super.EEItemAttached(item, slot_name);
23 if (GetCompEM().CanWork() && m_IsLowered)
24 GetCompEM().SwitchOn();
29 super.EEItemDetached(item, slot_name);
34 if (m_Strap &&
PlayerBase.CastTo(player, GetHierarchyRootPlayer()))
35 m_Strap.UpdateNVGStatus(player,
false,
true);
38 override void OnWasAttached(
EntityAI parent,
int slot_id)
40 super.OnWasAttached(parent, slot_id);
54 if (m_Strap == parent &&
PlayerBase.CastTo(player, parent.GetHierarchyRootPlayer()))
57 Clothing.Cast(parent).UpdateNVGStatus(player,
false,
true);
70 if (m_Strap &&
PlayerBase.CastTo(player, m_Strap.GetHierarchyParent()))
72 headgear = player.FindAttachmentBySlotName(
"Headgear");
73 glasses = player.FindAttachmentBySlotName(
"Eyewear");
81 if ((headgear == m_Strap || glasses == m_Strap))
82 m_Strap.UpdateNVGStatus(player);
94 if (m_Strap &&
PlayerBase.CastTo(player, m_Strap.GetHierarchyParent()))
96 headgear = player.FindAttachmentBySlotName(
"Headgear");
97 glasses = player.FindAttachmentBySlotName(
"Eyewear");
101 if ((headgear == m_Strap || glasses == m_Strap))
102 m_Strap.UpdateNVGStatus(player);
107 override void OnWork(
float consumed_energy)
111 RotateGoggles(
false);
116 if (m_Strap &&
PlayerBase.CastTo(player, m_Strap.GetHierarchyParent()))
118 headgear = player.FindAttachmentBySlotName(
"Headgear");
119 glasses = player.FindAttachmentBySlotName(
"Eyewear");
123 if ((headgear == m_Strap || glasses == m_Strap) && player.IsControlledPlayer())
129 void RotateGoggles(
bool state)
131 if (!m_Strap && !state)
134 SetAnimationPhase(
"rotate", !state);
135 m_IsLowered = !state;
140 if (m_Strap && m_Strap.GetInventory().GetCurrentAttachmentSlotInfo(slotId,
slotName) &&
PlayerBase.CastTo(player, m_Strap.GetHierarchyParent()))
141 m_Strap.UpdateNVGStatus(player);
145 if (!state && GetCompEM().CanWork())
146 GetCompEM().SwitchOn();
148 GetCompEM().SwitchOff();
156 if (IsUsingOptics2DModel())
167 override bool IsNVG()
181 if (GetAnimationPhase(
"rotate") != m_IsLowered)
183 m_IsLowered = GetAnimationPhase(
"rotate");
187 void SwitchOnNVGCheck()
189 GetCompEM().SwitchOn();
190 if (GetCompEM().IsSwitchedOn())
191 m_WorkCheckTimer.Stop();