mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 18:25:33 +08:00
if osParcelSubdivide does match the entire original parcel, just do nothing
This commit is contained in:
@@ -1230,6 +1230,7 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||
}
|
||||
|
||||
//Loop through the points
|
||||
int area = 0;
|
||||
try
|
||||
{
|
||||
for (int y = start_y; y < end_y; y++)
|
||||
@@ -1241,6 +1242,7 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||
return;
|
||||
if (tempLandObject != startLandObject)
|
||||
return;
|
||||
area++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1249,6 +1251,13 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||
return;
|
||||
}
|
||||
|
||||
LandData startLandData = startLandObject.LandData;
|
||||
if (area >= startLandData.Area)
|
||||
{
|
||||
// split is a replace, keep as is
|
||||
return;
|
||||
}
|
||||
|
||||
//Lets create a new land object with bitmap activated at that point (keeping the old land objects info)
|
||||
ILandObject newLand = startLandObject.Copy();
|
||||
LandData newLandData = newLand.LandData;
|
||||
@@ -1269,7 +1278,7 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||
lock (m_landList)
|
||||
{
|
||||
m_landList[startLandObjectIndex].SetLandBitmap(newLand.ModifyLandBitmapSquare(startLandObject.GetLandBitmap(), start_x, start_y, end_x, end_y, false));
|
||||
m_landList[startLandObjectIndex].ForceUpdateLandInfo();
|
||||
//m_landList[startLandObjectIndex].ForceUpdateLandInfo();
|
||||
}
|
||||
|
||||
UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData);
|
||||
|
||||
@@ -1153,6 +1153,26 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||
}
|
||||
}
|
||||
|
||||
if(tempArea == 0)
|
||||
{
|
||||
m_centerPoint = Vector2.Zero;
|
||||
m_endPoint = Vector2.Zero;
|
||||
m_AABBmin = Vector2.Zero;
|
||||
m_AABBmax = Vector2.Zero;
|
||||
|
||||
LandData.AABBMin = Vector3.Zero;
|
||||
LandData.AABBMax = Vector3.Zero;
|
||||
LandData.Area = 0;
|
||||
|
||||
if (m_scene != null)
|
||||
{
|
||||
RegionInfo ri = m_scene.RegionInfo;
|
||||
//create a fake ID
|
||||
LandData.FakeID = Util.BuildFakeParcelID(ri.RegionHandle, 0, 0);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int halfunit = landUnit/2;
|
||||
|
||||
m_centerPoint.X = avgx * landUnit + halfunit;
|
||||
|
||||
Reference in New Issue
Block a user