aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorDahlia Trimble2009-01-26 10:42:24 +0000
committerDahlia Trimble2009-01-26 10:42:24 +0000
commit4dace036966a45d964f16842979e5612231ed1a1 (patch)
tree6e6d3847d9792f355f0c9f8019c12bc1a9dcea1c /OpenSim
parent~ cleaning up code base: dropping share/python (diff)
downloadopensim-SC-4dace036966a45d964f16842979e5612231ed1a1.zip
opensim-SC-4dace036966a45d964f16842979e5612231ed1a1.tar.gz
opensim-SC-4dace036966a45d964f16842979e5612231ed1a1.tar.bz2
opensim-SC-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')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs19
-rw-r--r--OpenSim/Region/Environment/Modules/Framework/EventQueue/EventQueueHelper.cs103
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}