diff --git a/src/BasicPathFinding.cs b/src/BasicPathFinding.cs index 1488ee0..6bc7690 100644 --- a/src/BasicPathFinding.cs +++ b/src/BasicPathFinding.cs @@ -323,14 +323,16 @@ namespace OpenSim.Modules.PathFinding m_scriptModule.DispatchReply(requestData.ScriptID, 19850, "", requestData.RequestID.ToString()); return; } + else + { + m_scriptModule.DispatchReply(requestData.ScriptID, 19853, "", requestData.RequestID.ToString()); + } } } else { m_scriptModule.DispatchReply(requestData.ScriptID, 19851, "", requestData.RequestID.ToString()); } - - m_scriptModule.DispatchReply(requestData.ScriptID, 19853, "", requestData.RequestID.ToString()); } catch (Exception _error) { @@ -345,30 +347,40 @@ namespace OpenSim.Modules.PathFinding private void generateDebugImage(ScriptRequestData requestData) { - Environment _env = m_environments.Find(X => X.ID == requestData.EnvironmentID); - - if (_env != null) + try { - Bitmap _bitmap = new Bitmap(_env.Size, _env.Size); + Environment _env = m_environments.Find(X => X.ID == requestData.EnvironmentID); - foreach(PathNode thisNode in _env.Nodes) + if (_env != null) { - if (thisNode.Walkable) - _bitmap.SetPixel(thisNode.PositionX, thisNode.PositionY, Color.Green); + lock (_env) + { + Bitmap _bitmap = new Bitmap(_env.Size, _env.Size); - if (!thisNode.Walkable) - _bitmap.SetPixel(thisNode.PositionX, thisNode.PositionY, Color.Black); + foreach (PathNode thisNode in _env.Nodes) + { + if (thisNode.Walkable) + _bitmap.SetPixel(thisNode.PositionX, thisNode.PositionY, Color.Green); - if (thisNode.Target) - _bitmap.SetPixel(thisNode.PositionX, thisNode.PositionY, Color.Blue); + if (!thisNode.Walkable) + _bitmap.SetPixel(thisNode.PositionX, thisNode.PositionY, Color.Black); + + if (thisNode.Target) + _bitmap.SetPixel(thisNode.PositionX, thisNode.PositionY, Color.Blue); + } + + _bitmap.Save(requestData.EnvironmentID + ".png"); + m_scriptModule.DispatchReply(requestData.ScriptID, 19850, "", requestData.RequestID.ToString()); + return; + } } - _bitmap.Save(requestData.EnvironmentID + ".png"); - m_scriptModule.DispatchReply(requestData.ScriptID, 19850, "", requestData.RequestID.ToString()); - return; + m_scriptModule.DispatchReply(requestData.ScriptID, 19851, "", requestData.RequestID.ToString()); + } + catch (Exception _error) + { + m_scriptModule.DispatchReply(requestData.ScriptID, 19860, _error.Message, requestData.RequestID.ToString()); } - - m_scriptModule.DispatchReply(requestData.ScriptID, 19851, "", requestData.RequestID.ToString()); } #endregion