26 super.EEItemAttached(item, slot_name);
28 if (GetCompEM().CanWork() && m_IsLowered)
29 GetCompEM().SwitchOn();
34 super.EEItemDetached(item, slot_name);
39 if (m_Strap &&
PlayerBase.CastTo(player, GetHierarchyRootPlayer()))
40 m_Strap.UpdateNVGStatus(player,
false,
true);
43 override void OnWasAttached(
EntityAI parent,
int slot_id)
45 super.OnWasAttached(parent, slot_id);
59 if (m_Strap == parent &&
PlayerBase.CastTo(player, parent.GetHierarchyRootPlayer()))
62 Clothing.Cast(parent).UpdateNVGStatus(player,
false,
true);
75 if (m_Strap &&
PlayerBase.CastTo(player, m_Strap.GetHierarchyParent()))
77 headgear = player.FindAttachmentBySlotName(
"Headgear");
78 glasses = player.FindAttachmentBySlotName(
"Eyewear");
86 if ((headgear == m_Strap || glasses == m_Strap))
87 m_Strap.UpdateNVGStatus(player);
99 if (m_Strap &&
PlayerBase.CastTo(player, m_Strap.GetHierarchyParent()))
101 headgear = player.FindAttachmentBySlotName(
"Headgear");
102 glasses = player.FindAttachmentBySlotName(
"Eyewear");
106 if ((headgear == m_Strap || glasses == m_Strap))
107 m_Strap.UpdateNVGStatus(player);
112 override void OnWork(
float consumed_energy)
116 RotateGoggles(
false);
121 if (m_Strap &&
PlayerBase.CastTo(player, m_Strap.GetHierarchyParent()))
123 headgear = player.FindAttachmentBySlotName(
"Headgear");
124 glasses = player.FindAttachmentBySlotName(
"Eyewear");
128 if ((headgear == m_Strap || glasses == m_Strap) && player.IsControlledPlayer())
134 void RotateGoggles(
bool state)
136 if (!m_Strap && !state)
139 SetAnimationPhase(
"rotate", !state);
140 m_IsLowered = !state;
145 if (m_Strap && m_Strap.GetInventory().GetCurrentAttachmentSlotInfo(slotId,
slotName) &&
PlayerBase.CastTo(player, m_Strap.GetHierarchyParent()))
146 m_Strap.UpdateNVGStatus(player);
150 if (!state && GetCompEM().CanWork())
151 GetCompEM().SwitchOn();
153 GetCompEM().SwitchOff();
161 if (IsUsingOptics2DModel())
172 override bool IsNVG()
186 if (GetAnimationPhase(
"rotate") != m_IsLowered)
188 m_IsLowered = GetAnimationPhase(
"rotate");
192 void SwitchOnNVGCheck()
194 GetCompEM().SwitchOn();
195 if (GetCompEM().IsSwitchedOn())
196 m_WorkCheckTimer.Stop();