Universe.Region.SceneObjectGroup.aggregateScriptEvents C# (CSharp) Method

aggregateScriptEvents() public method

public aggregateScriptEvents ( ) : void
return void
        public void aggregateScriptEvents()
        {
            PrimFlags objectflagupdate = (PrimFlags) RootPart.GetEffectiveObjectFlags();

            scriptEvents aggregateScriptEvents = 0;

            foreach (SceneObjectPart part in m_partsList.Where(part => part != null))
            {
                if (part != RootPart)
                    part.Flags = objectflagupdate;
                aggregateScriptEvents |= part.AggregateScriptEvents;
            }

            m_scriptListens_atTarget = ((aggregateScriptEvents & scriptEvents.at_target) != 0);
            m_scriptListens_notAtTarget = ((aggregateScriptEvents & scriptEvents.not_at_target) != 0);

            if (!m_scriptListens_atTarget && !m_scriptListens_notAtTarget)
            {
                lock (m_targets)
                    m_targets.Clear();
                RemoveGroupTarget(this);
            }
            m_scriptListens_atRotTarget = ((aggregateScriptEvents & scriptEvents.at_rot_target) != 0);
            m_scriptListens_notAtRotTarget = ((aggregateScriptEvents & scriptEvents.not_at_rot_target) != 0);

            if (!m_scriptListens_atRotTarget && !m_scriptListens_notAtRotTarget)
            {
                lock (m_rotTargets)
                    m_rotTargets.Clear();
                RemoveGroupTarget(this);
            }

            ScheduleGroupUpdate(PrimUpdateFlags.PrimFlags);
        }
SceneObjectGroup