diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index c9b6e9f..38e1609 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -462,6 +462,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
462 | dupe.AbsolutePosition = new LLVector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); | 462 | dupe.AbsolutePosition = new LLVector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); |
463 | dupe.m_scene = m_scene; | 463 | dupe.m_scene = m_scene; |
464 | dupe.m_regionHandle = m_regionHandle; | 464 | dupe.m_regionHandle = m_regionHandle; |
465 | |||
465 | dupe.CopyRootPart(m_rootPart, OwnerID, GroupID); | 466 | dupe.CopyRootPart(m_rootPart, OwnerID, GroupID); |
466 | 467 | ||
467 | 468 | ||
@@ -519,6 +520,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
519 | SetPartAsRoot(newPart); | 520 | SetPartAsRoot(newPart); |
520 | } | 521 | } |
521 | public void SetRootPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) { | 522 | public void SetRootPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) { |
523 | part.LastOwnerID = part.OwnerID; | ||
522 | part.OwnerID = cAgentID; | 524 | part.OwnerID = cAgentID; |
523 | part.GroupID = cGroupID; | 525 | part.GroupID = cGroupID; |
524 | part.ScheduleFullUpdate(); | 526 | part.ScheduleFullUpdate(); |
@@ -535,6 +537,38 @@ namespace OpenSim.Region.Environment.Scenes | |||
535 | m_parts.Add(newPart.UUID, newPart); | 537 | m_parts.Add(newPart.UUID, newPart); |
536 | SetPartAsNonRoot(newPart); | 538 | SetPartAsNonRoot(newPart); |
537 | } | 539 | } |
540 | |||
541 | /// <summary> | ||
542 | /// | ||
543 | /// </summary> | ||
544 | /// <param name="part"></param> | ||
545 | public void ServiceObjectPropertiesFamilyRequest(IClientAPI remoteClient,LLUUID AgentID, uint RequestFlags) | ||
546 | { | ||
547 | //RootPart.ServiceObjectPropertiesFamilyRequest(remoteClient, AgentID, RequestFlags); | ||
548 | ObjectPropertiesFamilyPacket objPropFamilyPack = new ObjectPropertiesFamilyPacket(); | ||
549 | ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock(); | ||
550 | objPropDB.RequestFlags = RequestFlags; | ||
551 | objPropDB.ObjectID = RootPart.UUID; | ||
552 | objPropDB.OwnerID = RootPart.ObjectOwner; | ||
553 | objPropDB.GroupID = RootPart.GroupID; | ||
554 | objPropDB.BaseMask = RootPart.BaseMask; | ||
555 | objPropDB.OwnerMask = RootPart.OwnerMask; | ||
556 | objPropDB.GroupMask = RootPart.GroupMask; | ||
557 | objPropDB.EveryoneMask = RootPart.EveryoneMask; | ||
558 | objPropDB.NextOwnerMask = RootPart.NextOwnerMask; | ||
559 | |||
560 | // TODO: More properties are needed in SceneObjectPart! | ||
561 | objPropDB.OwnershipCost = RootPart.OwnershipCost; | ||
562 | objPropDB.SaleType = RootPart.ObjectSaleType; | ||
563 | objPropDB.SalePrice = RootPart.SalePrice; | ||
564 | objPropDB.Category = RootPart.Category; | ||
565 | objPropDB.LastOwnerID = RootPart.CreatorID; | ||
566 | objPropDB.Name = Helpers.StringToField(RootPart.Name); | ||
567 | objPropDB.Description = Helpers.StringToField(RootPart.Description); | ||
568 | objPropFamilyPack.ObjectData = objPropDB; | ||
569 | remoteClient.OutPacket(objPropFamilyPack); | ||
570 | |||
571 | } | ||
538 | public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) | 572 | public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) |
539 | { | 573 | { |
540 | part.OwnerID = cAgentID; | 574 | part.OwnerID = cAgentID; |