From 380d71511cb10fee3ecf33ea1c4eafd22d44659e Mon Sep 17 00:00:00 2001 From: Christopher Latza Date: Wed, 10 Jun 2020 18:24:03 +0200 Subject: [PATCH] only then smaler then region --- src/BasicPathFinding.cs | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/BasicPathFinding.cs b/src/BasicPathFinding.cs index 6641f7e..ca2e012 100644 --- a/src/BasicPathFinding.cs +++ b/src/BasicPathFinding.cs @@ -125,10 +125,20 @@ namespace OpenSim.Modules.PathFinding private bool checkIsPositionBlockedByObjekts(int posX, int posY) { - List _objects = m_scene.GetSceneObjectGroups().FindAll(X => X.IsPhantom != true && (int)X.AbsolutePosition.X == posX && (int)X.AbsolutePosition.Y == posY); + List _objects = m_scene.GetSceneObjectGroups().FindAll(X => X.IsPhantom != true); - if (_objects.Count != 0) - return true; + foreach(SceneObjectGroup _object in _objects) + { + SceneObjectPart[] _parts = _object.Parts; + + foreach (SceneObjectPart _part in _parts) + { + if ((int)_part.AbsolutePosition.X == posX && (int)_part.AbsolutePosition.Y == posY) + { + return true; + } + } + } return false; } @@ -137,10 +147,10 @@ namespace OpenSim.Modules.PathFinding { Bitmap _map = new Bitmap((int)m_scene.RegionInfo.RegionSizeX, (int)m_scene.RegionInfo.RegionSizeY); - for (int X = 0; X <= m_scene.RegionInfo.RegionSizeX; X++) + for (int X = 0; X < m_scene.RegionInfo.RegionSizeX; X++) { m_log.Info("X: " + X); - for (int Y = 0; Y <= m_scene.RegionInfo.RegionSizeY; Y++) + for (int Y = 0; Y < m_scene.RegionInfo.RegionSizeY; Y++) { m_log.Info("Y: " + Y); @@ -151,8 +161,8 @@ namespace OpenSim.Modules.PathFinding if (baseheight <= m_scene.RegionInfo.RegionSettings.WaterHeight) _map.SetPixel(X, Y, Color.Red); - //if (checkIsPositionBlockedByObjekts(new LSL_Vector(X, Y, 0)) == true) - //_map.SetPixel(X, Y, Color.Yellow); + if (checkIsPositionBlockedByObjekts(X, Y) == true) + _map.SetPixel(X, Y, Color.Yellow); } }