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

◆ CheckIfParentIsInCargo()

void EntityLightSource::CheckIfParentIsInCargo ( )
inlineprivate

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

594 {
595 // TO DO: OPTIMIZE AND REFACTOR! THIS MUST BE HANDLED IN AN EVENT, NOT PER FRAME!
596
597 if (m_Parent)
598 {
599 EntityAI parent_EAI = EntityAI.Cast( m_Parent );
600
601 if (parent_EAI) // Check if the Cast was successfull
602 {
603 GameInventory GI = parent_EAI.GetInventory();
604
605 if (GI) // Prevents handling of light on the parent item when it's projected in inventory as the item in inventory character's hands.
606 {
607 bool is_in_cargo = GI.IsInCargo();
608
609 if (!is_in_cargo)
610 {
611 EntityAI parent2 = parent_EAI.GetHierarchyParent();
612
613 if (parent2 && parent2.GetInventory())
614 {
615 is_in_cargo = parent2.GetInventory().IsInCargo();
616 }
617 }
618
619 if ( is_in_cargo )
620 {
621 SetEnabled(false);
622 }
623 else
624 {
625 SetEnabled(true);
626 }
627 }
628 }
629 }
630 }
class LogManager EntityAI
void SetEnabled()
prevents insider adding in the wrong position, HOTFIX
Определения TrapTrigger.c:119
Object m_Parent
Определения ScriptedLightBase.c:36
bool IsInCargo()
Returns true if this Inventory owner is in cargo of something.
Определения Inventory.c:395

Перекрестные ссылки GameInventory::IsInCargo(), m_Parent и SetEnabled().

Используется в EOnFrame().