aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
authorTeravus Ovares2007-11-15 07:32:24 +0000
committerTeravus Ovares2007-11-15 07:32:24 +0000
commit179695909a8967bcdb092720a19c264d52fb4515 (patch)
treeb940ef5a1587b976ec2e8c7c0e2ae899198d41ef /OpenSim/Region/Environment/Scenes
parentadded first attempt at storing stopped physical objects (diff)
downloadopensim-SC-179695909a8967bcdb092720a19c264d52fb4515.zip
opensim-SC-179695909a8967bcdb092720a19c264d52fb4515.tar.gz
opensim-SC-179695909a8967bcdb092720a19c264d52fb4515.tar.bz2
opensim-SC-179695909a8967bcdb092720a19c264d52fb4515.tar.xz
* Implemented the little friendly pop tooltip messages that appear when you hover your mouse over prim with the object name, description, ownerid.. etc.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r--OpenSim/Region/Environment/Scenes/InnerScene.cs17
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs34
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs34
4 files changed, 82 insertions, 5 deletions
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index c436b89..1625e80 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -354,6 +354,23 @@ namespace OpenSim.Region.Environment.Scenes
354 } 354 }
355 355
356 /// <summary> 356 /// <summary>
357 /// This handles the nifty little tool tip that you get when you drag your mouse over an object
358 /// Send to the Object Group to process. We don't know enough to service the request
359 /// </summary>
360 /// <param name="remoteClient"></param>
361 /// <param name="AgentID"></param>
362 /// <param name="RequestFlags"></param>
363 /// <param name="ObjectID"></param>
364 public void RequestObjectPropertiesFamily(IClientAPI remoteClient, LLUUID AgentID, uint RequestFlags, LLUUID ObjectID)
365 {
366 SceneObjectGroup group = GetGroupByPrim(ObjectID);
367 if (group != null)
368 group.ServiceObjectPropertiesFamilyRequest(remoteClient, AgentID, RequestFlags);
369
370
371 }
372
373 /// <summary>
357 /// 374 ///
358 /// </summary> 375 /// </summary>
359 /// <param name="localID"></param> 376 /// <param name="localID"></param>
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index d7e36c5..0f1642f 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -708,7 +708,7 @@ namespace OpenSim.Region.Environment.Scenes
708 client.OnDelinkObjects += m_innerScene.DelinkObjects; 708 client.OnDelinkObjects += m_innerScene.DelinkObjects;
709 client.OnObjectDuplicate += m_innerScene.DuplicateObject; 709 client.OnObjectDuplicate += m_innerScene.DuplicateObject;
710 client.OnUpdatePrimFlags += m_innerScene.UpdatePrimFlags; 710 client.OnUpdatePrimFlags += m_innerScene.UpdatePrimFlags;
711 711 client.OnRequestObjectPropertiesFamily += m_innerScene.RequestObjectPropertiesFamily;
712 client.OnParcelPropertiesRequest += new ParcelPropertiesRequest(m_LandManager.handleParcelPropertiesRequest); 712 client.OnParcelPropertiesRequest += new ParcelPropertiesRequest(m_LandManager.handleParcelPropertiesRequest);
713 client.OnParcelDivideRequest += new ParcelDivideRequest(m_LandManager.handleParcelDivideRequest); 713 client.OnParcelDivideRequest += new ParcelDivideRequest(m_LandManager.handleParcelDivideRequest);
714 client.OnParcelJoinRequest += new ParcelJoinRequest(m_LandManager.handleParcelJoinRequest); 714 client.OnParcelJoinRequest += new ParcelJoinRequest(m_LandManager.handleParcelJoinRequest);
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;
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 70b8829..727ebb0 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -51,13 +51,18 @@ namespace OpenSim.Region.Environment.Scenes
51 [XmlIgnore] public PhysicsActor PhysActor = null; 51 [XmlIgnore] public PhysicsActor PhysActor = null;
52 52
53 protected Dictionary<LLUUID, TaskInventoryItem> TaskInventory = new Dictionary<LLUUID, TaskInventoryItem>(); 53 protected Dictionary<LLUUID, TaskInventoryItem> TaskInventory = new Dictionary<LLUUID, TaskInventoryItem>();
54 54 public LLUUID LastOwnerID;
55 public LLUUID OwnerID; 55 public LLUUID OwnerID;
56 public LLUUID GroupID; 56 public LLUUID GroupID;
57 public LLUUID LastOwnerID; 57 public int OwnershipCost;
58 public byte ObjectSaleType;
59 public int SalePrice;
60 public uint Category;
61
58 public Int32 CreationDate; 62 public Int32 CreationDate;
59 public uint ParentID = 0; 63 public uint ParentID = 0;
60 64
65
61 public uint OwnerMask = FULL_MASK_PERMISSIONS; 66 public uint OwnerMask = FULL_MASK_PERMISSIONS;
62 public uint NextOwnerMask = FULL_MASK_PERMISSIONS; 67 public uint NextOwnerMask = FULL_MASK_PERMISSIONS;
63 public uint GroupMask = FULL_MASK_PERMISSIONS; 68 public uint GroupMask = FULL_MASK_PERMISSIONS;
@@ -68,6 +73,7 @@ namespace OpenSim.Region.Environment.Scenes
68 73
69 [XmlIgnore] public uint TimeStampFull = 0; 74 [XmlIgnore] public uint TimeStampFull = 0;
70 [XmlIgnore] public uint TimeStampTerse = 0; 75 [XmlIgnore] public uint TimeStampTerse = 0;
76 [XmlIgnore] public uint TimeStampLastActivity = 0; // Will be used for AutoReturn
71 77
72 protected SceneObjectGroup m_parentGroup; 78 protected SceneObjectGroup m_parentGroup;
73 79
@@ -418,7 +424,13 @@ namespace OpenSim.Region.Environment.Scenes
418 UUID = LLUUID.Random(); 424 UUID = LLUUID.Random();
419 LocalID = (uint) (localID); 425 LocalID = (uint) (localID);
420 Shape = shape; 426 Shape = shape;
421 427 // Todo: Add More Object Parameter from above!
428 OwnershipCost = 0;
429 ObjectSaleType = (byte)0;
430 SalePrice = 0;
431 Category = (uint)0;
432 LastOwnerID = CreatorID;
433 // End Todo: ///
422 GroupPosition = groupPosition; 434 GroupPosition = groupPosition;
423 OffsetPosition = offsetPosition; 435 OffsetPosition = offsetPosition;
424 RotationOffset = rotationOffset; 436 RotationOffset = rotationOffset;
@@ -467,8 +479,14 @@ namespace OpenSim.Region.Environment.Scenes
467 LastOwnerID = lastOwnerID; 479 LastOwnerID = lastOwnerID;
468 UUID = LLUUID.Random(); 480 UUID = LLUUID.Random();
469 LocalID = (uint) (localID); 481 LocalID = (uint) (localID);
482 // Todo: Add More parameters from above
470 Shape = shape; 483 Shape = shape;
471 484 OwnershipCost = 0;
485 ObjectSaleType = (byte)0;
486 SalePrice = 0;
487 Category = (uint)0;
488 // End Todo: ///
489 LastOwnerID = CreatorID;
472 OffsetPosition = position; 490 OffsetPosition = position;
473 RotationOffset = rotation; 491 RotationOffset = rotation;
474 ObjectFlags = flags; 492 ObjectFlags = flags;
@@ -538,6 +556,14 @@ namespace OpenSim.Region.Environment.Scenes
538 dupe.AngularVelocity = new LLVector3(0, 0, 0); 556 dupe.AngularVelocity = new LLVector3(0, 0, 0);
539 dupe.ObjectFlags = ObjectFlags; 557 dupe.ObjectFlags = ObjectFlags;
540 558
559 dupe.OwnershipCost = OwnershipCost;
560 dupe.ObjectSaleType = ObjectSaleType;
561 dupe.SalePrice = SalePrice;
562 dupe.Category = Category;
563
564 // This may be wrong... it might have to be applied in SceneObjectGroup to the object that's being duplicated.
565 dupe.LastOwnerID = ObjectOwner;
566
541 byte[] extraP = new byte[Shape.ExtraParams.Length]; 567 byte[] extraP = new byte[Shape.ExtraParams.Length];
542 Array.Copy(Shape.ExtraParams, extraP, extraP.Length); 568 Array.Copy(Shape.ExtraParams, extraP, extraP.Length);
543 dupe.Shape.ExtraParams = extraP; 569 dupe.Shape.ExtraParams = extraP;