Merge branch 'master' of /home/opensim/var/repo/opensim
commit
445caca18b
|
@ -71,6 +71,7 @@ what it is today.
|
||||||
* CharlieO
|
* CharlieO
|
||||||
* ChrisDown
|
* ChrisDown
|
||||||
* Chris Yeoh (IBM)
|
* Chris Yeoh (IBM)
|
||||||
|
* controlbreak
|
||||||
* coyled
|
* coyled
|
||||||
* Daedius
|
* Daedius
|
||||||
* Dong Jun Lan (IBM)
|
* Dong Jun Lan (IBM)
|
||||||
|
|
|
@ -104,6 +104,11 @@ namespace OpenSim.Data.MSSQL
|
||||||
{
|
{
|
||||||
return SqlDbType.BigInt;
|
return SqlDbType.BigInt;
|
||||||
}
|
}
|
||||||
|
if (type == typeof(DateTime))
|
||||||
|
{
|
||||||
|
return SqlDbType.DateTime;
|
||||||
|
}
|
||||||
|
|
||||||
return SqlDbType.VarChar;
|
return SqlDbType.VarChar;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -244,10 +244,10 @@ namespace OpenSim.Data.Tests
|
||||||
SceneObjectPart[] newparts = newsog.Parts;
|
SceneObjectPart[] newparts = newsog.Parts;
|
||||||
Assert.That(newparts.Length,Is.EqualTo(4), "Assert.That(newparts.Length,Is.EqualTo(4))");
|
Assert.That(newparts.Length,Is.EqualTo(4), "Assert.That(newparts.Length,Is.EqualTo(4))");
|
||||||
|
|
||||||
Assert.That(newsog.HasChildPrim(tmp0), "Assert.That(newsog.HasChildPrim(tmp0))");
|
Assert.That(newsog.ContainsPart(tmp0), "Assert.That(newsog.ContainsPart(tmp0))");
|
||||||
Assert.That(newsog.HasChildPrim(tmp1), "Assert.That(newsog.HasChildPrim(tmp1))");
|
Assert.That(newsog.ContainsPart(tmp1), "Assert.That(newsog.ContainsPart(tmp1))");
|
||||||
Assert.That(newsog.HasChildPrim(tmp2), "Assert.That(newsog.HasChildPrim(tmp2))");
|
Assert.That(newsog.ContainsPart(tmp2), "Assert.That(newsog.ContainsPart(tmp2))");
|
||||||
Assert.That(newsog.HasChildPrim(tmp3), "Assert.That(newsog.HasChildPrim(tmp3))");
|
Assert.That(newsog.ContainsPart(tmp3), "Assert.That(newsog.ContainsPart(tmp3))");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -12295,7 +12295,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
ItemData.Add(ItemDataMap);
|
ItemData.Add(ItemDataMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
llsd.Add("ItemData", ItemData);
|
llsd.Add("InventoryData", ItemData);
|
||||||
|
|
||||||
eq.Enqueue(BuildEvent("RemoveInventoryItem",
|
eq.Enqueue(BuildEvent("RemoveInventoryItem",
|
||||||
llsd), AgentId);
|
llsd), AgentId);
|
||||||
|
@ -12339,6 +12339,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
llsd), AgentId);
|
llsd), AgentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private byte[] EncodeU32(uint val)
|
||||||
|
{
|
||||||
|
byte[] ret = BitConverter.GetBytes(val);
|
||||||
|
if (BitConverter.IsLittleEndian)
|
||||||
|
Array.Reverse(ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
public void SendBulkUpdateInventory(InventoryFolderBase[] folders, InventoryItemBase[] items)
|
public void SendBulkUpdateInventory(InventoryFolderBase[] folders, InventoryItemBase[] items)
|
||||||
{
|
{
|
||||||
IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>();
|
IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>();
|
||||||
|
@ -12354,6 +12362,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
OSDMap AgentDataMap = new OSDMap(1);
|
OSDMap AgentDataMap = new OSDMap(1);
|
||||||
AgentDataMap.Add("AgentID", OSD.FromUUID(AgentId));
|
AgentDataMap.Add("AgentID", OSD.FromUUID(AgentId));
|
||||||
AgentDataMap.Add("SessionID", OSD.FromUUID(SessionId));
|
AgentDataMap.Add("SessionID", OSD.FromUUID(SessionId));
|
||||||
|
AgentDataMap.Add("TransactionID", OSD.FromUUID(UUID.Random()));
|
||||||
|
|
||||||
OSDArray AgentData = new OSDArray(1);
|
OSDArray AgentData = new OSDArray(1);
|
||||||
AgentData.Add(AgentDataMap);
|
AgentData.Add(AgentDataMap);
|
||||||
|
@ -12381,10 +12390,47 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
foreach (InventoryItemBase item in items)
|
foreach (InventoryItemBase item in items)
|
||||||
{
|
{
|
||||||
OSDMap ItemDataMap = new OSDMap();
|
OSDMap ItemDataMap = new OSDMap();
|
||||||
|
|
||||||
|
ItemDataMap.Add("ItemID", OSD.FromUUID(item.ID));
|
||||||
|
ItemDataMap.Add("FolderID", OSD.FromUUID(item.Folder));
|
||||||
|
|
||||||
|
ItemDataMap.Add("CreatorID", OSD.FromUUID(item.CreatorIdAsUuid));
|
||||||
|
ItemDataMap.Add("OwnerID", OSD.FromUUID(item.Owner));
|
||||||
|
ItemDataMap.Add("GroupID", OSD.FromUUID(item.GroupID));
|
||||||
|
ItemDataMap.Add("BaseMask", OSD.FromBinary(EncodeU32((uint)item.BasePermissions)));
|
||||||
|
ItemDataMap.Add("OwnerMask", OSD.FromBinary(EncodeU32((uint)item.CurrentPermissions)));
|
||||||
|
ItemDataMap.Add("GroupMask", OSD.FromBinary(EncodeU32((uint)item.GroupPermissions)));
|
||||||
|
ItemDataMap.Add("EveryoneMask", OSD.FromBinary(EncodeU32((uint)item.EveryOnePermissions)));
|
||||||
|
ItemDataMap.Add("NextOwnerMask", OSD.FromBinary(EncodeU32((uint)item.NextPermissions)));
|
||||||
|
ItemDataMap.Add("GroupOwned", OSD.FromBoolean(item.GroupOwned));
|
||||||
|
ItemDataMap.Add("AssetID", OSD.FromUUID(item.AssetID));
|
||||||
|
ItemDataMap.Add("Type", OSD.FromInteger(item.AssetType));
|
||||||
|
ItemDataMap.Add("InvType", OSD.FromInteger(item.InvType));
|
||||||
|
ItemDataMap.Add("Flags", OSD.FromBinary(EncodeU32((uint)item.Flags)));
|
||||||
|
ItemDataMap.Add("SaleType", OSD.FromInteger((byte)item.SaleType));
|
||||||
|
ItemDataMap.Add("SalePrice", OSD.FromInteger(item.SalePrice));
|
||||||
|
ItemDataMap.Add("Name", OSD.FromString(item.Name));
|
||||||
|
ItemDataMap.Add("Description", OSD.FromString(item.Description));
|
||||||
|
ItemDataMap.Add("CreationDate", OSD.FromInteger(item.CreationDate));
|
||||||
|
|
||||||
|
ItemDataMap.Add("CRC", OSD.FromBinary(EncodeU32(
|
||||||
|
Helpers.InventoryCRC(1000, 0, (sbyte)item.InvType,
|
||||||
|
(sbyte)item.AssetType, item.AssetID,
|
||||||
|
item.GroupID, 100,
|
||||||
|
item.Owner, item.CreatorIdAsUuid,
|
||||||
|
item.ID, item.Folder,
|
||||||
|
(uint)PermissionMask.All, 1, (uint)PermissionMask.All, (uint)PermissionMask.All,
|
||||||
|
(uint)PermissionMask.All)
|
||||||
|
)));
|
||||||
|
ItemDataMap.Add("CallbackID", 0);
|
||||||
|
|
||||||
ItemData.Add(ItemDataMap);
|
ItemData.Add(ItemDataMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
llsd.Add("ItemData", ItemData);
|
llsd.Add("ItemData", ItemData);
|
||||||
|
|
||||||
|
eq.Enqueue(BuildEvent("BulkUpdateInventory",
|
||||||
|
llsd), AgentId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -935,6 +935,11 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
if (((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) && (!isAttachment))
|
if (((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) && (!isAttachment))
|
||||||
remoteClient.SendBulkUpdateInventory(item);
|
remoteClient.SendBulkUpdateInventory(item);
|
||||||
|
|
||||||
|
ILandObject land = m_Scene.LandChannel.GetLandObject(pos.X, pos.Y);
|
||||||
|
remoteClient.SendAlertMessage(string.Format(
|
||||||
|
"Can't rez object '{0}' at <{1:F3}, {2:F3}, {3:F3}> on parcel '{4}' in region {5}.",
|
||||||
|
item.Name, pos.X, pos.Y, pos.Z, land != null ? land.LandData.Name : "Unknown", m_Scene.RegionInfo.RegionName));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -319,7 +319,7 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
|
||||||
// Send message to avatar
|
// Send message to avatar
|
||||||
if (channel == 0)
|
if (channel == 0)
|
||||||
{
|
{
|
||||||
m_scene.SimChatBroadcast(Utils.StringToBytes(msg), ChatTypeEnum.Owner, 0, pos, name, id, false);
|
m_scene.SimChatBroadcast(Utils.StringToBytes(msg), ChatTypeEnum.Broadcast, 0, pos, name, id, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<SceneObjectGroup> attachments = sp.GetAttachments();
|
List<SceneObjectGroup> attachments = sp.GetAttachments();
|
||||||
|
|
|
@ -79,7 +79,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Vegetation
|
||||||
}
|
}
|
||||||
|
|
||||||
SceneObjectGroup sceneObject = new SceneObjectGroup(ownerID, pos, rot, shape);
|
SceneObjectGroup sceneObject = new SceneObjectGroup(ownerID, pos, rot, shape);
|
||||||
SceneObjectPart rootPart = sceneObject.GetChildPart(sceneObject.UUID);
|
SceneObjectPart rootPart = sceneObject.GetPart(sceneObject.UUID);
|
||||||
|
|
||||||
// if grass or tree, make phantom
|
// if grass or tree, make phantom
|
||||||
//rootPart.TrimPermissions();
|
//rootPart.TrimPermissions();
|
||||||
|
|
|
@ -1833,7 +1833,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
AddRestoredSceneObject(group, true, true);
|
AddRestoredSceneObject(group, true, true);
|
||||||
EventManager.TriggerOnSceneObjectLoaded(group);
|
EventManager.TriggerOnSceneObjectLoaded(group);
|
||||||
SceneObjectPart rootPart = group.GetChildPart(group.UUID);
|
SceneObjectPart rootPart = group.GetPart(group.UUID);
|
||||||
rootPart.Flags &= ~PrimFlags.Scripted;
|
rootPart.Flags &= ~PrimFlags.Scripted;
|
||||||
rootPart.TrimPermissions();
|
rootPart.TrimPermissions();
|
||||||
|
|
||||||
|
@ -1971,10 +1971,16 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (Permissions.CanRezObject(1, ownerID, pos))
|
if (Permissions.CanRezObject(1, ownerID, pos))
|
||||||
{
|
{
|
||||||
// rez ON the ground, not IN the ground
|
// rez ON the ground, not IN the ground
|
||||||
// pos.Z += 0.25F; The rez point should now be correct so that its not in the ground
|
// pos.Z += 0.25F; The rez point should now be correct so that its not in the ground
|
||||||
|
|
||||||
AddNewPrim(ownerID, groupID, pos, rot, shape);
|
AddNewPrim(ownerID, groupID, pos, rot, shape);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
IClientAPI client = null;
|
||||||
|
if (TryGetClient(ownerID, out client))
|
||||||
|
client.SendAlertMessage("You cannot create objects here.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual SceneObjectGroup AddNewPrim(
|
public virtual SceneObjectGroup AddNewPrim(
|
||||||
|
@ -4168,7 +4174,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
if (ent is SceneObjectGroup)
|
if (ent is SceneObjectGroup)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = ((SceneObjectGroup)ent).GetChildPart(((SceneObjectGroup)ent).UUID);
|
SceneObjectPart part = ((SceneObjectGroup)ent).GetPart(((SceneObjectGroup)ent).UUID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
if (part.Name == cmdparams[2])
|
if (part.Name == cmdparams[2])
|
||||||
|
|
|
@ -860,7 +860,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
if (sog != null)
|
if (sog != null)
|
||||||
{
|
{
|
||||||
if (sog.HasChildPrim(localID))
|
if (sog.ContainsPart(localID))
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
// "[SCENE GRAPH]: Found scene object {0} {1} {2} containing part with local id {3} in {4}. Returning.",
|
// "[SCENE GRAPH]: Found scene object {0} {1} {2} containing part with local id {3} in {4}. Returning.",
|
||||||
|
@ -888,7 +888,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (ent is SceneObjectGroup)
|
if (ent is SceneObjectGroup)
|
||||||
{
|
{
|
||||||
sog = (SceneObjectGroup)ent;
|
sog = (SceneObjectGroup)ent;
|
||||||
if (sog.HasChildPrim(localID))
|
if (sog.ContainsPart(localID))
|
||||||
{
|
{
|
||||||
lock (SceneObjectGroupsByLocalPartID)
|
lock (SceneObjectGroupsByLocalPartID)
|
||||||
SceneObjectGroupsByLocalPartID[localID] = sog;
|
SceneObjectGroupsByLocalPartID[localID] = sog;
|
||||||
|
@ -926,7 +926,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (ent is SceneObjectGroup)
|
if (ent is SceneObjectGroup)
|
||||||
{
|
{
|
||||||
sog = (SceneObjectGroup)ent;
|
sog = (SceneObjectGroup)ent;
|
||||||
if (sog.HasChildPrim(fullID))
|
if (sog.ContainsPart(fullID))
|
||||||
{
|
{
|
||||||
lock (SceneObjectGroupsByFullPartID)
|
lock (SceneObjectGroupsByFullPartID)
|
||||||
SceneObjectGroupsByFullPartID[fullID] = sog;
|
SceneObjectGroupsByFullPartID[fullID] = sog;
|
||||||
|
@ -1015,7 +1015,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
SceneObjectGroup group = GetGroupByPrim(localID);
|
SceneObjectGroup group = GetGroupByPrim(localID);
|
||||||
if (group == null)
|
if (group == null)
|
||||||
return null;
|
return null;
|
||||||
return group.GetChildPart(localID);
|
return group.GetPart(localID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1062,7 +1062,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
SceneObjectGroup group = GetGroupByPrim(fullID);
|
SceneObjectGroup group = GetGroupByPrim(fullID);
|
||||||
if (group == null)
|
if (group == null)
|
||||||
return null;
|
return null;
|
||||||
return group.GetChildPart(fullID);
|
return group.GetPart(fullID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -96,7 +96,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
UUID newItemId = (copyItemID != UUID.Zero) ? copyItemID : item.ID;
|
UUID newItemId = (copyItemID != UUID.Zero) ? copyItemID : item.ID;
|
||||||
|
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
TaskInventoryItem taskItem = new TaskInventoryItem();
|
TaskInventoryItem taskItem = new TaskInventoryItem();
|
||||||
|
@ -170,7 +170,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <returns>null if the item does not exist</returns>
|
/// <returns>null if the item does not exist</returns>
|
||||||
public TaskInventoryItem GetInventoryItem(uint primID, UUID itemID)
|
public TaskInventoryItem GetInventoryItem(uint primID, UUID itemID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(primID);
|
SceneObjectPart part = GetPart(primID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
return part.Inventory.GetInventoryItem(itemID);
|
return part.Inventory.GetInventoryItem(itemID);
|
||||||
|
@ -194,7 +194,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <returns>false if the item did not exist, true if the update occurred succesfully</returns>
|
/// <returns>false if the item did not exist, true if the update occurred succesfully</returns>
|
||||||
public bool UpdateInventoryItem(TaskInventoryItem item)
|
public bool UpdateInventoryItem(TaskInventoryItem item)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(item.ParentPartID);
|
SceneObjectPart part = GetPart(item.ParentPartID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
part.Inventory.UpdateInventoryItem(item);
|
part.Inventory.UpdateInventoryItem(item);
|
||||||
|
@ -214,7 +214,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public int RemoveInventoryItem(uint localID, UUID itemID)
|
public int RemoveInventoryItem(uint localID, UUID itemID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
int type = part.Inventory.RemoveInventoryItem(itemID);
|
int type = part.Inventory.RemoveInventoryItem(itemID);
|
||||||
|
|
|
@ -338,6 +338,24 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
return m_parts.ContainsKey(partID);
|
return m_parts.ContainsKey(partID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Does this group contain the given part?
|
||||||
|
/// should be able to remove these methods once we have a entity index in scene
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="localID"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool ContainsPart(uint localID)
|
||||||
|
{
|
||||||
|
SceneObjectPart[] parts = m_parts.GetArray();
|
||||||
|
for (int i = 0; i < parts.Length; i++)
|
||||||
|
{
|
||||||
|
if (parts[i].LocalId == localID)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/// <value>
|
/// <value>
|
||||||
/// The root part of this scene object
|
/// The root part of this scene object
|
||||||
/// </value>
|
/// </value>
|
||||||
|
@ -1109,7 +1127,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public UUID GetPartsFullID(uint localID)
|
public UUID GetPartsFullID(uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
return part.UUID;
|
return part.UUID;
|
||||||
|
@ -1125,7 +1143,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localId);
|
SceneObjectPart part = GetPart(localId);
|
||||||
OnGrabPart(part, offsetPos, remoteClient);
|
OnGrabPart(part, offsetPos, remoteClient);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1886,8 +1904,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// Get a part with a given UUID
|
/// Get a part with a given UUID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="primID"></param>
|
/// <param name="primID"></param>
|
||||||
/// <returns>null if a child part with the primID was not found</returns>
|
/// <returns>null if a part with the primID was not found</returns>
|
||||||
public SceneObjectPart GetChildPart(UUID primID)
|
public SceneObjectPart GetPart(UUID primID)
|
||||||
{
|
{
|
||||||
SceneObjectPart childPart;
|
SceneObjectPart childPart;
|
||||||
m_parts.TryGetValue(primID, out childPart);
|
m_parts.TryGetValue(primID, out childPart);
|
||||||
|
@ -1898,8 +1916,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// Get a part with a given local ID
|
/// Get a part with a given local ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="localID"></param>
|
/// <param name="localID"></param>
|
||||||
/// <returns>null if a child part with the local ID was not found</returns>
|
/// <returns>null if a part with the local ID was not found</returns>
|
||||||
public SceneObjectPart GetChildPart(uint localID)
|
public SceneObjectPart GetPart(uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart[] parts = m_parts.GetArray();
|
SceneObjectPart[] parts = m_parts.GetArray();
|
||||||
for (int i = 0; i < parts.Length; i++)
|
for (int i = 0; i < parts.Length; i++)
|
||||||
|
@ -1911,35 +1929,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Does this group contain the child prim
|
|
||||||
/// should be able to remove these methods once we have a entity index in scene
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="primID"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public bool HasChildPrim(UUID primID)
|
|
||||||
{
|
|
||||||
return m_parts.ContainsKey(primID);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Does this group contain the child prim
|
|
||||||
/// should be able to remove these methods once we have a entity index in scene
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="localID"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public bool HasChildPrim(uint localID)
|
|
||||||
{
|
|
||||||
SceneObjectPart[] parts = m_parts.GetArray();
|
|
||||||
for (int i = 0; i < parts.Length; i++)
|
|
||||||
{
|
|
||||||
if (parts[i].LocalId == localID)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Packet Handlers
|
#region Packet Handlers
|
||||||
|
@ -2046,7 +2035,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <returns>The object group of the newly delinked prim. Null if part could not be found</returns>
|
/// <returns>The object group of the newly delinked prim. Null if part could not be found</returns>
|
||||||
public SceneObjectGroup DelinkFromGroup(uint partID, bool sendEvents)
|
public SceneObjectGroup DelinkFromGroup(uint partID, bool sendEvents)
|
||||||
{
|
{
|
||||||
SceneObjectPart linkPart = GetChildPart(partID);
|
SceneObjectPart linkPart = GetPart(partID);
|
||||||
|
|
||||||
if (linkPart != null)
|
if (linkPart != null)
|
||||||
{
|
{
|
||||||
|
@ -2337,7 +2326,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name="localID"></param>
|
/// <param name="localID"></param>
|
||||||
public void SetPartName(string name, uint localID)
|
public void SetPartName(string name, uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
part.Name = name;
|
part.Name = name;
|
||||||
|
@ -2346,7 +2335,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public void SetPartDescription(string des, uint localID)
|
public void SetPartDescription(string des, uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
part.Description = des;
|
part.Description = des;
|
||||||
|
@ -2355,7 +2344,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public void SetPartText(string text, uint localID)
|
public void SetPartText(string text, uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
part.SetText(text);
|
part.SetText(text);
|
||||||
|
@ -2364,7 +2353,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public void SetPartText(string text, UUID partID)
|
public void SetPartText(string text, UUID partID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(partID);
|
SceneObjectPart part = GetPart(partID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
part.SetText(text);
|
part.SetText(text);
|
||||||
|
@ -2373,7 +2362,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public string GetPartName(uint localID)
|
public string GetPartName(uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
return part.Name;
|
return part.Name;
|
||||||
|
@ -2383,7 +2372,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public string GetPartDescription(uint localID)
|
public string GetPartDescription(uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
return part.Description;
|
return part.Description;
|
||||||
|
@ -2401,7 +2390,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name="SetVolumeDetect"></param>
|
/// <param name="SetVolumeDetect"></param>
|
||||||
public void UpdatePrimFlags(uint localID, bool UsePhysics, bool SetTemporary, bool SetPhantom, bool SetVolumeDetect)
|
public void UpdatePrimFlags(uint localID, bool UsePhysics, bool SetTemporary, bool SetPhantom, bool SetVolumeDetect)
|
||||||
{
|
{
|
||||||
SceneObjectPart selectionPart = GetChildPart(localID);
|
SceneObjectPart selectionPart = GetPart(localID);
|
||||||
|
|
||||||
if (SetTemporary && Scene != null)
|
if (SetTemporary && Scene != null)
|
||||||
{
|
{
|
||||||
|
@ -2438,7 +2427,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public void UpdateExtraParam(uint localID, ushort type, bool inUse, byte[] data)
|
public void UpdateExtraParam(uint localID, ushort type, bool inUse, byte[] data)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
part.UpdateExtraParam(type, inUse, data);
|
part.UpdateExtraParam(type, inUse, data);
|
||||||
|
@ -2452,7 +2441,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name="textureEntry"></param>
|
/// <param name="textureEntry"></param>
|
||||||
public void UpdateTextureEntry(uint localID, byte[] textureEntry)
|
public void UpdateTextureEntry(uint localID, byte[] textureEntry)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
part.UpdateTextureEntry(textureEntry);
|
part.UpdateTextureEntry(textureEntry);
|
||||||
|
@ -2484,7 +2473,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name="shapeBlock"></param>
|
/// <param name="shapeBlock"></param>
|
||||||
public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock, uint localID)
|
public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock, uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
part.UpdateShape(shapeBlock);
|
part.UpdateShape(shapeBlock);
|
||||||
|
@ -2696,7 +2685,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name="localID"></param>
|
/// <param name="localID"></param>
|
||||||
public void UpdateSinglePosition(Vector3 pos, uint localID)
|
public void UpdateSinglePosition(Vector3 pos, uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
|
|
||||||
// SceneObjectPart[] parts = m_parts.GetArray();
|
// SceneObjectPart[] parts = m_parts.GetArray();
|
||||||
// for (int i = 0; i < parts.Length; i++)
|
// for (int i = 0; i < parts.Length; i++)
|
||||||
|
@ -2835,7 +2824,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name="localID"></param>
|
/// <param name="localID"></param>
|
||||||
public void UpdateSingleRotation(Quaternion rot, uint localID)
|
public void UpdateSingleRotation(Quaternion rot, uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
|
|
||||||
SceneObjectPart[] parts = m_parts.GetArray();
|
SceneObjectPart[] parts = m_parts.GetArray();
|
||||||
for (int i = 0; i < parts.Length; i++)
|
for (int i = 0; i < parts.Length; i++)
|
||||||
|
@ -2864,7 +2853,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name="localID"></param>
|
/// <param name="localID"></param>
|
||||||
public void UpdateSingleRotation(Quaternion rot, Vector3 pos, uint localID)
|
public void UpdateSingleRotation(Quaternion rot, Vector3 pos, uint localID)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetPart(localID);
|
||||||
if (part != null)
|
if (part != null)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
|
|
|
@ -623,7 +623,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
group.ResetIDs();
|
group.ResetIDs();
|
||||||
|
|
||||||
SceneObjectPart rootPart = group.GetChildPart(group.UUID);
|
SceneObjectPart rootPart = group.GetPart(group.UUID);
|
||||||
|
|
||||||
// Since renaming the item in the inventory does not affect the name stored
|
// Since renaming the item in the inventory does not affect the name stored
|
||||||
// in the serialization, transfer the correct name from the inventory to the
|
// in the serialization, transfer the correct name from the inventory to the
|
||||||
|
|
|
@ -510,7 +510,7 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
|
||||||
}
|
}
|
||||||
|
|
||||||
SceneObjectGroup sceneObject = new SceneObjectGroup(ownerID, pos, rot, shape);
|
SceneObjectGroup sceneObject = new SceneObjectGroup(ownerID, pos, rot, shape);
|
||||||
SceneObjectPart rootPart = sceneObject.GetChildPart(sceneObject.UUID);
|
SceneObjectPart rootPart = sceneObject.GetPart(sceneObject.UUID);
|
||||||
|
|
||||||
rootPart.AddFlag(PrimFlags.Phantom);
|
rootPart.AddFlag(PrimFlags.Phantom);
|
||||||
|
|
||||||
|
|
|
@ -3763,7 +3763,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
// parse for sitting avatare-uuids
|
// parse for sitting avatare-uuids
|
||||||
World.ForEachRootScenePresence(delegate(ScenePresence presence)
|
World.ForEachRootScenePresence(delegate(ScenePresence presence)
|
||||||
{
|
{
|
||||||
if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
|
if (presence.ParentID != 0 && m_host.ParentGroup.ContainsPart(presence.ParentID))
|
||||||
keytable.Add(presence.UUID);
|
keytable.Add(presence.UUID);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -3826,7 +3826,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
World.ForEachRootScenePresence(delegate(ScenePresence presence)
|
World.ForEachRootScenePresence(delegate(ScenePresence presence)
|
||||||
{
|
{
|
||||||
SceneObjectPart sitPart = presence.ParentPart;
|
SceneObjectPart sitPart = presence.ParentPart;
|
||||||
if (sitPart != null && m_host.ParentGroup.HasChildPrim(sitPart.LocalId))
|
if (sitPart != null && m_host.ParentGroup.ContainsPart(sitPart.LocalId))
|
||||||
nametable.Add(presence.ControllingClient.Name);
|
nametable.Add(presence.ControllingClient.Name);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -7684,7 +7684,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
int avatarCount = 0;
|
int avatarCount = 0;
|
||||||
World.ForEachRootScenePresence(delegate(ScenePresence presence)
|
World.ForEachRootScenePresence(delegate(ScenePresence presence)
|
||||||
{
|
{
|
||||||
if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
|
if (presence.ParentID != 0 && m_host.ParentGroup.ContainsPart(presence.ParentID))
|
||||||
avatarCount++;
|
avatarCount++;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1266,6 +1266,7 @@
|
||||||
|
|
||||||
<ReferencePath>../../../bin/</ReferencePath>
|
<ReferencePath>../../../bin/</ReferencePath>
|
||||||
<Reference name="System"/>
|
<Reference name="System"/>
|
||||||
|
<Reference name="System.Core"/>
|
||||||
<Reference name="System.Xml"/>
|
<Reference name="System.Xml"/>
|
||||||
<Reference name="OpenMetaverseTypes" path="../../../bin/"/>
|
<Reference name="OpenMetaverseTypes" path="../../../bin/"/>
|
||||||
<Reference name="OpenMetaverse" path="../../../bin/"/>
|
<Reference name="OpenMetaverse" path="../../../bin/"/>
|
||||||
|
|
Loading…
Reference in New Issue