Plumb in the list if user IDs to the land module to allow selection

of objects by owner name
0.6.1-post-fixes
Melanie Thielker 2008-11-21 04:41:39 +00:00
parent 0092ecbce7
commit e9ad6f7913
5 changed files with 17 additions and 9 deletions

View File

@ -174,7 +174,7 @@ namespace OpenSim.Framework
public delegate void ParcelPropertiesUpdateRequest(LandUpdateArgs args, int local_id, IClientAPI remote_client);
public delegate void ParcelSelectObjects(int land_local_id, int request_type, IClientAPI remote_client);
public delegate void ParcelSelectObjects(int land_local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client);
public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client);

View File

@ -5713,12 +5713,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
case PacketType.ParcelSelectObjects:
ParcelSelectObjectsPacket selectPacket = (ParcelSelectObjectsPacket)Pack;
List<UUID> returnIDs = new List<UUID>();
foreach(ParcelSelectObjectsPacket.ReturnIDsBlock rb in
selectPacket.ReturnIDs)
{
returnIDs.Add(rb.ReturnID);
}
handlerParcelSelectObjects = OnParcelSelectObjects;
if (handlerParcelSelectObjects != null)
{
handlerParcelSelectObjects(selectPacket.ParcelData.LocalID,
Convert.ToInt32(selectPacket.ParcelData.ReturnType), this);
Convert.ToInt32(selectPacket.ParcelData.ReturnType), returnIDs, this);
}
break;
case PacketType.ParcelObjectOwnersRequest:

View File

@ -68,7 +68,7 @@ namespace OpenSim.Region.Environment.Interfaces
bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y);
bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value);
bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add);
void sendForceObjectSelect(int local_id, int request_type, IClientAPI remote_client);
void sendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client);
void sendLandObjectOwners(IClientAPI remote_client);
void returnObject(SceneObjectGroup obj);
void returnLandObjects(uint type, UUID[] owners, IClientAPI remote_client);

View File

@ -976,9 +976,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land
join(west, south, east, north, remote_client.AgentId);
}
public void handleParcelSelectObjectsRequest(int local_id, int request_type, IClientAPI remote_client)
public void handleParcelSelectObjectsRequest(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client)
{
m_landList[local_id].sendForceObjectSelect(local_id, request_type, remote_client);
m_landList[local_id].sendForceObjectSelect(local_id, request_type, returnIDs, remote_client);
}
public void handleParcelObjectOwnersRequest(int local_id, IClientAPI remote_client)

View File

@ -645,7 +645,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
#region Object Select and Object Owner Listing
public void sendForceObjectSelect(int local_id, int request_type, IClientAPI remote_client)
public void sendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client)
{
if (m_scene.ExternalChecks.ExternalChecksCanEditParcel(remote_client.AgentId, this))
{
@ -662,9 +662,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land
{
resultLocalIDs.Add(obj.LocalId);
}
// else if (request_type == LandManager.LAND_SELECT_OBJECTS_GROUP && ...) // TODO: group support
// {
// }
else if (request_type == LandChannel.LAND_SELECT_OBJECTS_GROUP && obj.GroupID == landData.GroupID && landData.GroupID != UUID.Zero)
{
}
else if (request_type == LandChannel.LAND_SELECT_OBJECTS_OTHER &&
obj.OwnerID != remote_client.AgentId)
{