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:
UbitUmarov
2015-08-27 15:01:15 +01:00
parent c7f148ee64
commit b82b16c954
3 changed files with 50 additions and 11 deletions

View File

@@ -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;