add lock and try to debug image

master
Christopher Latza 2020-06-19 20:27:33 +02:00
parent c75eacd7d1
commit e3c230c2f8
1 changed files with 30 additions and 18 deletions

View File

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