aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorUbitUmarov2012-03-15 02:24:13 +0000
committerUbitUmarov2012-03-15 02:24:13 +0000
commit84ca09f7c5cec051014181853083e52691bb7e07 (patch)
treed7c2730dd58c96599b84789b017d78542aba4875 /OpenSim/Region
parentbug fixs, added a default physics shape estimator based on being a mesh or no... (diff)
downloadopensim-SC_OLD-84ca09f7c5cec051014181853083e52691bb7e07.zip
opensim-SC_OLD-84ca09f7c5cec051014181853083e52691bb7e07.tar.gz
opensim-SC_OLD-84ca09f7c5cec051014181853083e52691bb7e07.tar.bz2
opensim-SC_OLD-84ca09f7c5cec051014181853083e52691bb7e07.tar.xz
added ObjectPhysicsProperties http event message to send viewer that data. For now on caps/EventQueue, and still only used on a material change...
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs8
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs20
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs28
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEventQueue.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs1
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs2
-rw-r--r--OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs5
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs5
8 files changed, 70 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
index 7c07c56..a91b02c 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
@@ -805,5 +805,13 @@ namespace OpenSim.Region.ClientStack.Linden
805 { 805 {
806 return EventQueueHelper.BuildEvent(eventName, eventBody); 806 return EventQueueHelper.BuildEvent(eventName, eventBody);
807 } 807 }
808
809 public void partPhysicsProperties(uint localID, byte physhapetype,
810 float density, float friction, float bounce, float gravmod,UUID avatarID)
811 {
812 OSD item = EventQueueHelper.partPhysicsProperties(localID, physhapetype,
813 density, friction, bounce, gravmod);
814 Enqueue(item, avatarID);
815 }
808 } 816 }
809} 817}
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
index 3f49aba..b9222e3 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
@@ -395,5 +395,25 @@ namespace OpenSim.Region.ClientStack.Linden
395 return message; 395 return message;
396 } 396 }
397 397
398 public static OSD partPhysicsProperties(uint localID, byte physhapetype,
399 float density, float friction, float bounce, float gravmod)
400 {
401
402 OSDMap physinfo = new OSDMap(6);
403 physinfo["LocalID"] = localID;
404 physinfo["Density"] = density;
405 physinfo["Friction"] = friction;
406 physinfo["GravityMultiplier"] = gravmod;
407 physinfo["Restitution"] = bounce;
408 physinfo["PhysicsShapeType"] = (int)physhapetype;
409
410 OSDArray array = new OSDArray(1);
411 array.Add(physinfo);
412
413 OSDMap llsdBody = new OSDMap(1);
414 llsdBody.Add("ObjectData", array);
415
416 return BuildEvent("ObjectPhysicsProperties", llsdBody);
417 }
398 } 418 }
399} 419}
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 160a5d1..dd3b8aa 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2609,6 +2609,34 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2609 } 2609 }
2610 } 2610 }
2611 2611
2612 public void SendPartPhysicsProprieties(ISceneEntity entity)
2613 {
2614 SceneObjectPart part = (SceneObjectPart)entity;
2615 if (part != null && AgentId != UUID.Zero)
2616 {
2617 try
2618 {
2619 IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>();
2620 if (eq != null)
2621 {
2622 uint localid = part.LocalId;
2623 byte physshapetype = part.PhysicsShapeType;
2624 float density = part.Density;
2625 float friction = part.Friction;
2626 float bounce = part.Bounciness;
2627 float gravmod = part.GravityModifier;
2628
2629 eq.partPhysicsProperties(localid, physshapetype, density, friction, bounce, gravmod,AgentId);
2630 }
2631 }
2632 catch (Exception ex)
2633 {
2634 m_log.Error("Unable to send part Physics Proprieties - exception: " + ex.ToString());
2635 }
2636 }
2637 }
2638
2639
2612 2640
2613 public void SendGroupNameReply(UUID groupLLUID, string GroupName) 2641 public void SendGroupNameReply(UUID groupLLUID, string GroupName)
2614 { 2642 {
diff --git a/OpenSim/Region/Framework/Interfaces/IEventQueue.cs b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs
index bfa5d17..5512642 100644
--- a/OpenSim/Region/Framework/Interfaces/IEventQueue.cs
+++ b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs
@@ -59,5 +59,7 @@ namespace OpenSim.Region.Framework.Interfaces
59 void GroupMembership(AgentGroupDataUpdatePacket groupUpdate, UUID avatarID); 59 void GroupMembership(AgentGroupDataUpdatePacket groupUpdate, UUID avatarID);
60 OSD ScriptRunningEvent(UUID objectID, UUID itemID, bool running, bool mono); 60 OSD ScriptRunningEvent(UUID objectID, UUID itemID, bool running, bool mono);
61 OSD BuildEvent(string eventName, OSD eventBody); 61 OSD BuildEvent(string eventName, OSD eventBody);
62 void partPhysicsProperties(uint localID, byte physhapetype, float density, float friction, float bounce, float gravmod, UUID avatarID);
63
62 } 64 }
63} 65}
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 7b77ea0..4e9a8f8 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1695,6 +1695,7 @@ namespace OpenSim.Region.Framework.Scenes
1695 { 1695 {
1696 part.Material = Convert.ToByte(material); 1696 part.Material = Convert.ToByte(material);
1697 group.HasGroupChanged = true; 1697 group.HasGroupChanged = true;
1698 remoteClient.SendPartPhysicsProprieties(part);
1698 } 1699 }
1699 } 1700 }
1700 } 1701 }
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 84ed40c..f188e8d 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -4730,7 +4730,7 @@ namespace OpenSim.Region.Framework.Scenes
4730 ParentGroup.HasGroupChanged = true; 4730 ParentGroup.HasGroupChanged = true;
4731 ScheduleFullUpdate(); 4731 ScheduleFullUpdate();
4732 } 4732 }
4733 4733
4734// m_log.DebugFormat("[SCENE OBJECT PART]: Updated PrimFlags on {0} {1} to {2}", Name, LocalId, Flags); 4734// m_log.DebugFormat("[SCENE OBJECT PART]: Updated PrimFlags on {0} {1} to {2}", Name, LocalId, Flags);
4735 } 4735 }
4736 4736
diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
index 18f8f34..1e87eed 100644
--- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
+++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
@@ -1703,5 +1703,10 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
1703 public void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data) 1703 public void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data)
1704 { 1704 {
1705 } 1705 }
1706
1707 public void SendPartPhysicsProprieties(ISceneEntity entity)
1708 {
1709 }
1710
1706 } 1711 }
1707} 1712}
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
index 5b9b071..7bd5590 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
@@ -1195,5 +1195,10 @@ namespace OpenSim.Region.OptionalModules.World.NPC
1195 public void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data) 1195 public void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data)
1196 { 1196 {
1197 } 1197 }
1198
1199 public void SendPartPhysicsProprieties(ISceneEntity entity)
1200 {
1201 }
1202
1198 } 1203 }
1199} 1204}