diff options
author | UbitUmarov | 2012-03-15 02:24:13 +0000 |
---|---|---|
committer | UbitUmarov | 2012-03-15 02:24:13 +0000 |
commit | 84ca09f7c5cec051014181853083e52691bb7e07 (patch) | |
tree | d7c2730dd58c96599b84789b017d78542aba4875 /OpenSim | |
parent | bug fixs, added a default physics shape estimator based on being a mesh or no... (diff) | |
download | opensim-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 'OpenSim')
10 files changed, 76 insertions, 1 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index c70b2a0..94acdba 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -1320,6 +1320,8 @@ namespace OpenSim.Framework | |||
1320 | 1320 | ||
1321 | void SendObjectPropertiesReply(ISceneEntity Entity); | 1321 | void SendObjectPropertiesReply(ISceneEntity Entity); |
1322 | 1322 | ||
1323 | void SendPartPhysicsProprieties(ISceneEntity Entity); | ||
1324 | |||
1323 | void SendAgentOffline(UUID[] agentIDs); | 1325 | void SendAgentOffline(UUID[] agentIDs); |
1324 | 1326 | ||
1325 | void SendAgentOnline(UUID[] agentIDs); | 1327 | void SendAgentOnline(UUID[] agentIDs); |
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 | } |
diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs index be6b81b..2fe22a5 100644 --- a/OpenSim/Tests/Common/Mock/TestClient.cs +++ b/OpenSim/Tests/Common/Mock/TestClient.cs | |||
@@ -1258,5 +1258,9 @@ namespace OpenSim.Tests.Common.Mock | |||
1258 | public void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data) | 1258 | public void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data) |
1259 | { | 1259 | { |
1260 | } | 1260 | } |
1261 | |||
1262 | public void SendPartPhysicsProprieties(ISceneEntity entity) | ||
1263 | { | ||
1264 | } | ||
1261 | } | 1265 | } |
1262 | } | 1266 | } |