diff options
author | Dahlia Trimble | 2009-01-26 10:42:24 +0000 |
---|---|---|
committer | Dahlia Trimble | 2009-01-26 10:42:24 +0000 |
commit | 4dace036966a45d964f16842979e5612231ed1a1 (patch) | |
tree | 6e6d3847d9792f355f0c9f8019c12bc1a9dcea1c /OpenSim/Region | |
parent | ~ cleaning up code base: dropping share/python (diff) | |
download | opensim-SC_OLD-4dace036966a45d964f16842979e5612231ed1a1.zip opensim-SC_OLD-4dace036966a45d964f16842979e5612231ed1a1.tar.gz opensim-SC_OLD-4dace036966a45d964f16842979e5612231ed1a1.tar.bz2 opensim-SC_OLD-4dace036966a45d964f16842979e5612231ed1a1.tar.xz |
add a definition for a parcel properties CAP
send parcel properties via eventqueue rather than UDP to facilitate libomv clients - see Mantis #3040
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 19 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Modules/Framework/EventQueue/EventQueueHelper.cs | 103 |
2 files changed, 120 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index e8e674f..e58549a 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -3187,8 +3187,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3187 | updatePacket.ParcelData.UserLocation = landData.UserLocation; | 3187 | updatePacket.ParcelData.UserLocation = landData.UserLocation; |
3188 | updatePacket.ParcelData.UserLookAt = landData.UserLookAt; | 3188 | updatePacket.ParcelData.UserLookAt = landData.UserLookAt; |
3189 | updatePacket.Header.Zerocoded = true; | 3189 | updatePacket.Header.Zerocoded = true; |
3190 | 3190 | ||
3191 | OutPacket(updatePacket, ThrottleOutPacketType.Task); | 3191 | try |
3192 | { | ||
3193 | IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>(); | ||
3194 | if (eq != null) | ||
3195 | { | ||
3196 | OSD Item = Environment.EventQueueHelper.ParcelProperties(updatePacket); | ||
3197 | |||
3198 | eq.Enqueue(Item, this.AgentId); | ||
3199 | } | ||
3200 | } | ||
3201 | catch (Exception ex) | ||
3202 | { | ||
3203 | m_log.Error("Unable to send parcel data via eventqueue - exception: " + ex.ToString()); | ||
3204 | m_log.Warn("sending parcel data via UDP"); | ||
3205 | OutPacket(updatePacket, ThrottleOutPacketType.Task); | ||
3206 | } | ||
3192 | } | 3207 | } |
3193 | 3208 | ||
3194 | public void SendLandAccessListData(List<UUID> avatars, uint accessFlag, int localLandID) | 3209 | public void SendLandAccessListData(List<UUID> avatars, uint accessFlag, int localLandID) |
diff --git a/OpenSim/Region/Environment/Modules/Framework/EventQueue/EventQueueHelper.cs b/OpenSim/Region/Environment/Modules/Framework/EventQueue/EventQueueHelper.cs index b74375f..e9303af 100644 --- a/OpenSim/Region/Environment/Modules/Framework/EventQueue/EventQueueHelper.cs +++ b/OpenSim/Region/Environment/Modules/Framework/EventQueue/EventQueueHelper.cs | |||
@@ -302,5 +302,108 @@ namespace OpenSim.Region.Environment | |||
302 | return chatterBoxSessionAgentListUpdates; | 302 | return chatterBoxSessionAgentListUpdates; |
303 | } | 303 | } |
304 | 304 | ||
305 | public static OSD ParcelProperties(ParcelPropertiesPacket parcelPropertiesPacket) | ||
306 | { | ||
307 | OSDMap parcelProperties = new OSDMap(); | ||
308 | OSDMap body = new OSDMap(); | ||
309 | |||
310 | OSDArray ageVerificationBlock = new OSDArray(); | ||
311 | OSDMap ageVerificationMap = new OSDMap(); | ||
312 | ageVerificationMap.Add("RegionDenyAgeVerified", | ||
313 | OSD.FromBoolean(parcelPropertiesPacket.AgeVerificationBlock.RegionDenyAgeUnverified)); | ||
314 | ageVerificationBlock.Add(ageVerificationMap); | ||
315 | body.Add("AgeVerificationBlock", ageVerificationBlock); | ||
316 | |||
317 | OSDArray mediaData = new OSDArray(); | ||
318 | OSDMap mediaDataMap = new OSDMap(); | ||
319 | mediaDataMap.Add("MediaDesc", OSD.FromString("")); | ||
320 | mediaDataMap.Add("MediaHeight", OSD.FromInteger(0)); | ||
321 | mediaDataMap.Add("MediaLoop", OSD.FromInteger(0)); | ||
322 | mediaDataMap.Add("MediaType", OSD.FromString("type/type")); | ||
323 | mediaDataMap.Add("MediaWidth", OSD.FromInteger(0)); | ||
324 | mediaDataMap.Add("ObscureMedia", OSD.FromInteger(0)); | ||
325 | mediaDataMap.Add("ObscureMusic", OSD.FromInteger(0)); | ||
326 | mediaData.Add(mediaDataMap); | ||
327 | body.Add("MediaData", mediaData); | ||
328 | |||
329 | OSDArray parcelData = new OSDArray(); | ||
330 | OSDMap parcelDataMap = new OSDMap(); | ||
331 | OSDArray AABBMax = new OSDArray(3); | ||
332 | AABBMax.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.AABBMax.X)); | ||
333 | AABBMax.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.AABBMax.Y)); | ||
334 | AABBMax.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.AABBMax.Z)); | ||
335 | parcelDataMap.Add("AABBMax", AABBMax); | ||
336 | |||
337 | OSDArray AABBMin = new OSDArray(3); | ||
338 | AABBMin.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.AABBMin.X)); | ||
339 | AABBMin.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.AABBMin.Y)); | ||
340 | AABBMin.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.AABBMin.Z)); | ||
341 | parcelDataMap.Add("AABBMin", AABBMin); | ||
342 | |||
343 | parcelDataMap.Add("Area", OSD.FromInteger(parcelPropertiesPacket.ParcelData.Area)); | ||
344 | parcelDataMap.Add("AuctionID", OSD.FromBinary(parcelPropertiesPacket.ParcelData.AuctionID)); | ||
345 | parcelDataMap.Add("AuthbuyerID", OSD.FromUUID(parcelPropertiesPacket.ParcelData.AuthBuyerID)); | ||
346 | parcelDataMap.Add("Bitmap", OSD.FromBinary(parcelPropertiesPacket.ParcelData.Bitmap)); | ||
347 | parcelDataMap.Add("Category", OSD.FromInteger((int)parcelPropertiesPacket.ParcelData.Category)); | ||
348 | parcelDataMap.Add("ClaimDate", OSD.FromInteger(parcelPropertiesPacket.ParcelData.ClaimDate)); | ||
349 | parcelDataMap.Add("Desc", OSD.FromBinary(parcelPropertiesPacket.ParcelData.Desc)); | ||
350 | parcelDataMap.Add("GroupID", OSD.FromUUID(parcelPropertiesPacket.ParcelData.GroupID)); | ||
351 | parcelDataMap.Add("GroupPrims", OSD.FromInteger(parcelPropertiesPacket.ParcelData.GroupPrims)); | ||
352 | parcelDataMap.Add("IsGroupOwned", OSD.FromBoolean(parcelPropertiesPacket.ParcelData.IsGroupOwned)); | ||
353 | parcelDataMap.Add("LandingType", OSD.FromInteger(parcelPropertiesPacket.ParcelData.LandingType)); | ||
354 | parcelDataMap.Add("LocalID", OSD.FromInteger(parcelPropertiesPacket.ParcelData.LocalID)); | ||
355 | parcelDataMap.Add("MaxPrims", OSD.FromInteger(parcelPropertiesPacket.ParcelData.MaxPrims)); | ||
356 | parcelDataMap.Add("MediaAutoScale", OSD.FromInteger((int)parcelPropertiesPacket.ParcelData.MediaAutoScale)); | ||
357 | parcelDataMap.Add("MediaID", OSD.FromUUID(parcelPropertiesPacket.ParcelData.MediaID)); | ||
358 | parcelDataMap.Add("MediaURL", OSD.FromString(Utils.BytesToString(parcelPropertiesPacket.ParcelData.MediaURL))); | ||
359 | parcelDataMap.Add("MusicURL", OSD.FromString(Utils.BytesToString(parcelPropertiesPacket.ParcelData.MusicURL))); | ||
360 | parcelDataMap.Add("Name", OSD.FromString(Utils.BytesToString(parcelPropertiesPacket.ParcelData.Name))); | ||
361 | parcelDataMap.Add("OtherCleanTime", OSD.FromInteger(parcelPropertiesPacket.ParcelData.OtherCleanTime)); | ||
362 | parcelDataMap.Add("OtherCount", OSD.FromInteger(parcelPropertiesPacket.ParcelData.OtherCount)); | ||
363 | parcelDataMap.Add("OtherPrims", OSD.FromInteger(parcelPropertiesPacket.ParcelData.OtherPrims)); | ||
364 | parcelDataMap.Add("OwnerID", OSD.FromUUID(parcelPropertiesPacket.ParcelData.OwnerID)); | ||
365 | parcelDataMap.Add("OwnerPrims", OSD.FromInteger(parcelPropertiesPacket.ParcelData.OwnerPrims)); | ||
366 | parcelDataMap.Add("ParcelFlags", OSD.FromBinary(parcelPropertiesPacket.ParcelData.ParcelFlags)); | ||
367 | parcelDataMap.Add("ParcelPrimBonus", OSD.FromReal(parcelPropertiesPacket.ParcelData.ParcelPrimBonus)); | ||
368 | parcelDataMap.Add("PassHours", OSD.FromReal(parcelPropertiesPacket.ParcelData.PassHours)); | ||
369 | parcelDataMap.Add("PassPrice", OSD.FromInteger(parcelPropertiesPacket.ParcelData.PassPrice)); | ||
370 | parcelDataMap.Add("PublicCount", OSD.FromInteger(parcelPropertiesPacket.ParcelData.PublicCount)); | ||
371 | parcelDataMap.Add("RegionDenyAnonymous", OSD.FromBoolean(parcelPropertiesPacket.ParcelData.RegionDenyAnonymous)); | ||
372 | parcelDataMap.Add("RegionDenyIdentified", OSD.FromBoolean(parcelPropertiesPacket.ParcelData.RegionDenyIdentified)); | ||
373 | parcelDataMap.Add("RegionDenyTransacted", OSD.FromBoolean(parcelPropertiesPacket.ParcelData.RegionDenyTransacted)); | ||
374 | parcelDataMap.Add("RegionPushOverride", OSD.FromBoolean(parcelPropertiesPacket.ParcelData.RegionPushOverride)); | ||
375 | parcelDataMap.Add("RentPrice", OSD.FromInteger(parcelPropertiesPacket.ParcelData.RentPrice)); | ||
376 | parcelDataMap.Add("RequestResult", OSD.FromInteger(parcelPropertiesPacket.ParcelData.RequestResult)); | ||
377 | parcelDataMap.Add("SalePrice", OSD.FromInteger(parcelPropertiesPacket.ParcelData.SalePrice)); | ||
378 | parcelDataMap.Add("SelectedPrims", OSD.FromInteger(parcelPropertiesPacket.ParcelData.SelectedPrims)); | ||
379 | parcelDataMap.Add("SelfCount", OSD.FromInteger(parcelPropertiesPacket.ParcelData.SelfCount)); | ||
380 | parcelDataMap.Add("SequenceID", OSD.FromInteger(parcelPropertiesPacket.ParcelData.SequenceID)); | ||
381 | parcelDataMap.Add("SimWideMaxPrims", OSD.FromInteger(parcelPropertiesPacket.ParcelData.SimWideMaxPrims)); | ||
382 | parcelDataMap.Add("SimWideTotalPrims", OSD.FromInteger(parcelPropertiesPacket.ParcelData.SimWideTotalPrims)); | ||
383 | parcelDataMap.Add("SnapSelection", OSD.FromBoolean(parcelPropertiesPacket.ParcelData.SnapSelection)); | ||
384 | parcelDataMap.Add("SnapshotID", OSD.FromUUID(parcelPropertiesPacket.ParcelData.SnapshotID)); | ||
385 | parcelDataMap.Add("Status", OSD.FromInteger((int)parcelPropertiesPacket.ParcelData.Status)); | ||
386 | parcelDataMap.Add("TotalPrims", OSD.FromInteger(parcelPropertiesPacket.ParcelData.TotalPrims)); | ||
387 | |||
388 | OSDArray UserLocation = new OSDArray(3); | ||
389 | UserLocation.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.UserLocation.X)); | ||
390 | UserLocation.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.UserLocation.Y)); | ||
391 | UserLocation.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.UserLocation.Z)); | ||
392 | parcelDataMap.Add("UserLocation", UserLocation); | ||
393 | |||
394 | OSDArray UserLookAt = new OSDArray(3); | ||
395 | UserLookAt.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.UserLookAt.X)); | ||
396 | UserLookAt.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.UserLookAt.Y)); | ||
397 | UserLookAt.Add(OSD.FromReal(parcelPropertiesPacket.ParcelData.UserLookAt.Z)); | ||
398 | parcelDataMap.Add("UserLookAt", UserLookAt); | ||
399 | |||
400 | parcelData.Add(parcelDataMap); | ||
401 | body.Add("ParcelData", parcelData); | ||
402 | parcelProperties.Add("body", body); | ||
403 | parcelProperties.Add("message", OSD.FromString("ParcelProperties")); | ||
404 | |||
405 | return parcelProperties; | ||
406 | } | ||
407 | |||
305 | } | 408 | } |
306 | } | 409 | } |