diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 9b7374c..b7c5b6b 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2112,6 +2112,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
2112 | d.AddActiveScripts(count); | 2112 | d.AddActiveScripts(count); |
2113 | } | 2113 | } |
2114 | 2114 | ||
2115 | private const scriptEvents PhysicsNeeedSubsEvents = ( | ||
2116 | scriptEvents.collision | scriptEvents.collision_start | scriptEvents.collision_end | | ||
2117 | scriptEvents.land_collision | scriptEvents.land_collision_start | scriptEvents.land_collision_end); | ||
2118 | |||
2119 | private scriptEvents lastRootPartPhysEvents = 0; | ||
2120 | |||
2115 | public void aggregateScriptEvents() | 2121 | public void aggregateScriptEvents() |
2116 | { | 2122 | { |
2117 | PrimFlags objectflagupdate = (PrimFlags)RootPart.GetEffectiveObjectFlags(); | 2123 | PrimFlags objectflagupdate = (PrimFlags)RootPart.GetEffectiveObjectFlags(); |
@@ -2148,6 +2154,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
2148 | m_scene.RemoveGroupTarget(this); | 2154 | m_scene.RemoveGroupTarget(this); |
2149 | } | 2155 | } |
2150 | 2156 | ||
2157 | scriptEvents rootPartPhysEvents = RootPart.AggregateScriptEvents; | ||
2158 | rootPartPhysEvents &= PhysicsNeeedSubsEvents; | ||
2159 | if (rootPartPhysEvents != lastRootPartPhysEvents) | ||
2160 | { | ||
2161 | lastRootPartPhysEvents = rootPartPhysEvents; | ||
2162 | for (int i = 0; i < parts.Length; i++) | ||
2163 | { | ||
2164 | SceneObjectPart part = parts[i]; | ||
2165 | if (part == null) | ||
2166 | continue; | ||
2167 | part.UpdatePhysicsSubscribedEvents(); | ||
2168 | } | ||
2169 | } | ||
2170 | |||
2151 | ScheduleGroupForFullUpdate(); | 2171 | ScheduleGroupForFullUpdate(); |
2152 | } | 2172 | } |
2153 | 2173 | ||