mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 11:33:28 +08:00
take taints check terrain out of Onframe event and add a new event for it. Slow it down to 1/4 heartbeat rate (once every 363ms aprox)
This commit is contained in:
@@ -80,6 +80,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
public event OnTerrainTaintedDelegate OnTerrainTainted;
|
||||
|
||||
public delegate void OnTerrainTickDelegate();
|
||||
public delegate void OnTerrainCheckUpdatesDelegate();
|
||||
|
||||
/// <summary>
|
||||
/// Triggered if the terrain has been edited
|
||||
@@ -89,6 +90,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// but is used by core solely to update the physics engine.
|
||||
/// </remarks>
|
||||
public event OnTerrainTickDelegate OnTerrainTick;
|
||||
public event OnTerrainCheckUpdatesDelegate OnTerrainCheckUpdates;
|
||||
|
||||
public delegate void OnTerrainUpdateDelegate();
|
||||
|
||||
@@ -1484,6 +1486,27 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
public void TriggerTerrainCheckUpdates()
|
||||
{
|
||||
OnTerrainCheckUpdatesDelegate TerrainCheckUpdates = OnTerrainCheckUpdates;
|
||||
if (TerrainCheckUpdates != null)
|
||||
{
|
||||
foreach (OnTerrainCheckUpdatesDelegate d in TerrainCheckUpdates.GetInvocationList())
|
||||
{
|
||||
try
|
||||
{
|
||||
d();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[EVENT MANAGER]: Delegate for TerrainCheckUpdates failed - continuing. {0} {1}",
|
||||
e.Message, e.StackTrace);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void TriggerTerrainTainted()
|
||||
{
|
||||
OnTerrainTaintedDelegate handlerTerrainTainted = OnTerrainTainted;
|
||||
|
||||
Reference in New Issue
Block a user