diff options
author | Adam Frisby | 2008-05-07 20:31:48 +0000 |
---|---|---|
committer | Adam Frisby | 2008-05-07 20:31:48 +0000 |
commit | a95f13a646e6c0ff07c765437011a29c3372f1b9 (patch) | |
tree | 7129f9dae3624287f7f8320d0cf16e90e46f0298 | |
parent | enable velocity on our full update, as I think I know why (diff) | |
download | opensim-SC-a95f13a646e6c0ff07c765437011a29c3372f1b9.zip opensim-SC-a95f13a646e6c0ff07c765437011a29c3372f1b9.tar.gz opensim-SC-a95f13a646e6c0ff07c765437011a29c3372f1b9.tar.bz2 opensim-SC-a95f13a646e6c0ff07c765437011a29c3372f1b9.tar.xz |
* Removes references to libsecondlife.Packets from IClientAPI. BAD PROGRAMMERS. NAUGHTY.
* Thanks to Andrew (DeepThink) for working on this one.
-rw-r--r-- | OpenSim/Framework/ClientManager.cs | 19 | ||||
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 84 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 82 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/AvatarAppearance.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/InnerScene.cs | 25 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 16 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 34 | ||||
-rw-r--r-- | OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | 9 |
8 files changed, 232 insertions, 45 deletions
diff --git a/OpenSim/Framework/ClientManager.cs b/OpenSim/Framework/ClientManager.cs index 35c9319..4f21ab6 100644 --- a/OpenSim/Framework/ClientManager.cs +++ b/OpenSim/Framework/ClientManager.cs | |||
@@ -171,11 +171,22 @@ namespace OpenSim.Framework | |||
171 | return circuits; | 171 | return circuits; |
172 | } | 172 | } |
173 | 173 | ||
174 | public void ViewerEffectHandler(IClientAPI sender, ViewerEffectPacket.EffectBlock[] effectBlock) | 174 | public void ViewerEffectHandler(IClientAPI sender, List<ViewerEffectEventHandlerArg> args) |
175 | { | 175 | { |
176 | ViewerEffectPacket packet = (ViewerEffectPacket) PacketPool.Instance.GetPacket(PacketType.ViewerEffect); | 176 | ViewerEffectPacket packet = (ViewerEffectPacket)PacketPool.Instance.GetPacket(PacketType.ViewerEffect); |
177 | // TODO: don't create new blocks if recycling an old packet | 177 | // TODO: don't create new blocks if recycling an old packet |
178 | packet.Effect = effectBlock; | 178 | List<ViewerEffectPacket.EffectBlock> effectBlock = new List<ViewerEffectPacket.EffectBlock>(); |
179 | for (int i = 0; i < args.Count; i++) | ||
180 | { | ||
181 | ViewerEffectPacket.EffectBlock effect = new ViewerEffectPacket.EffectBlock(); | ||
182 | effect.AgentID = args[i].AgentID; | ||
183 | effect.Color = args[i].Color; | ||
184 | effect.Duration = args[i].Duration; | ||
185 | effect.ID = args[i].ID; | ||
186 | effect.Type = args[i].Type; | ||
187 | effectBlock.Add(effect); | ||
188 | } | ||
189 | packet.Effect = effectBlock.ToArray(); | ||
179 | 190 | ||
180 | // Wasteful, I know | 191 | // Wasteful, I know |
181 | IClientAPI[] LocalClients = new IClientAPI[0]; | 192 | IClientAPI[] LocalClients = new IClientAPI[0]; |
@@ -205,4 +216,4 @@ namespace OpenSim.Framework | |||
205 | } | 216 | } |
206 | } | 217 | } |
207 | } | 218 | } |
208 | } \ No newline at end of file | 219 | } |
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 8344196..2ade592 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -41,7 +41,8 @@ namespace OpenSim.Framework | |||
41 | IClientAPI Sender { get; set; } | 41 | IClientAPI Sender { get; set; } |
42 | } | 42 | } |
43 | 43 | ||
44 | public delegate void ViewerEffectEventHandler(IClientAPI sender, ViewerEffectPacket.EffectBlock[] effectBlock); | 44 | |
45 | public delegate void ViewerEffectEventHandler(IClientAPI sender, List<ViewerEffectEventHandlerArg> args); | ||
45 | 46 | ||
46 | public delegate void ChatFromViewer(Object sender, ChatFromViewerArgs e); | 47 | public delegate void ChatFromViewer(Object sender, ChatFromViewerArgs e); |
47 | 48 | ||
@@ -235,6 +236,15 @@ namespace OpenSim.Framework | |||
235 | #endregion | 236 | #endregion |
236 | } | 237 | } |
237 | 238 | ||
239 | public class ViewerEffectEventHandlerArg : EventArgs | ||
240 | { | ||
241 | public LLUUID AgentID; | ||
242 | public byte[] Color; | ||
243 | public float Duration; | ||
244 | public LLUUID ID; | ||
245 | public byte Type; | ||
246 | } | ||
247 | |||
238 | public class LandUpdateArgs : EventArgs | 248 | public class LandUpdateArgs : EventArgs |
239 | { | 249 | { |
240 | public LLUUID AuthBuyerID; | 250 | public LLUUID AuthBuyerID; |
@@ -301,6 +311,66 @@ namespace OpenSim.Framework | |||
301 | public float waterHeight; | 311 | public float waterHeight; |
302 | public string simName; | 312 | public string simName; |
303 | } | 313 | } |
314 | |||
315 | public class UpdateShapeArgs : EventArgs | ||
316 | { | ||
317 | public uint ObjectLocalID; | ||
318 | public ushort PathBegin; | ||
319 | public byte PathCurve; | ||
320 | public ushort PathEnd; | ||
321 | public sbyte PathRadiusOffset; | ||
322 | public byte PathRevolutions; | ||
323 | public byte PathScaleX; | ||
324 | public byte PathScaleY; | ||
325 | public byte PathShearX; | ||
326 | public byte PathShearY; | ||
327 | public sbyte PathSkew; | ||
328 | public sbyte PathTaperX; | ||
329 | public sbyte PathTaperY; | ||
330 | public sbyte PathTwist; | ||
331 | public sbyte PathTwistBegin; | ||
332 | public ushort ProfileBegin; | ||
333 | public byte ProfileCurve; | ||
334 | public ushort ProfileEnd; | ||
335 | public ushort ProfileHollow; | ||
336 | } | ||
337 | |||
338 | public class RequestAssetArgs : EventArgs | ||
339 | { | ||
340 | public int ChannelType; | ||
341 | public float Priority; | ||
342 | public int SourceType; | ||
343 | public LLUUID TransferID; | ||
344 | } | ||
345 | public class AgentUpdateArgs : EventArgs | ||
346 | { | ||
347 | public LLUUID AgentID; | ||
348 | public LLQuaternion BodyRotation; | ||
349 | public LLVector3 CameraAtAxis; | ||
350 | public LLVector3 CameraCenter; | ||
351 | public LLVector3 CameraLeftAxis; | ||
352 | public LLVector3 CameraUpAxis; | ||
353 | public uint ControlFlags; | ||
354 | public float Far; | ||
355 | public byte Flags; | ||
356 | public LLQuaternion HeadRotation; | ||
357 | public LLUUID SessionID; | ||
358 | public byte State; | ||
359 | } | ||
360 | |||
361 | public class AvatarPickerReplyAgentDataArgs : EventArgs | ||
362 | { | ||
363 | public LLUUID AgentID; | ||
364 | public LLUUID QueryID; | ||
365 | } | ||
366 | |||
367 | public class AvatarPickerReplyDataArgs : EventArgs | ||
368 | { | ||
369 | public LLUUID AvatarID; | ||
370 | public byte[] FirstName; | ||
371 | public byte[] LastName; | ||
372 | } | ||
373 | |||
304 | public delegate void TextureRequest(Object sender, TextureRequestArgs e); | 374 | public delegate void TextureRequest(Object sender, TextureRequestArgs e); |
305 | 375 | ||
306 | public delegate void AvatarNowWearing(Object sender, AvatarWearingArgs e); | 376 | public delegate void AvatarNowWearing(Object sender, AvatarWearingArgs e); |
@@ -325,7 +395,7 @@ namespace OpenSim.Framework | |||
325 | float height, float seconds, byte size, byte action, float north, float west, float south, float east, | 395 | float height, float seconds, byte size, byte action, float north, float west, float south, float east, |
326 | IClientAPI remoteClient); | 396 | IClientAPI remoteClient); |
327 | 397 | ||
328 | public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam); | 398 | public delegate void SetAppearance(byte[] texture, List<byte> visualParamList); |
329 | 399 | ||
330 | public delegate void StartAnim(IClientAPI remoteClient, LLUUID animID); | 400 | public delegate void StartAnim(IClientAPI remoteClient, LLUUID animID); |
331 | 401 | ||
@@ -362,7 +432,7 @@ namespace OpenSim.Framework | |||
362 | 432 | ||
363 | public delegate void GenericCall7(IClientAPI remoteClient, uint localID, string message); | 433 | public delegate void GenericCall7(IClientAPI remoteClient, uint localID, string message); |
364 | 434 | ||
365 | public delegate void UpdateShape(LLUUID agentID, uint localID, ObjectShapePacket.ObjectDataBlock shapeBlock); | 435 | public delegate void UpdateShape(LLUUID agentID, uint localID, UpdateShapeArgs shapeBlock); |
366 | 436 | ||
367 | public delegate void ObjectExtraParams(LLUUID agentID, uint localID, ushort type, bool inUse, byte[] data); | 437 | public delegate void ObjectExtraParams(LLUUID agentID, uint localID, ushort type, bool inUse, byte[] data); |
368 | 438 | ||
@@ -396,7 +466,7 @@ namespace OpenSim.Framework | |||
396 | 466 | ||
397 | public delegate void NewAvatar(IClientAPI remoteClient, LLUUID agentID, bool status); | 467 | public delegate void NewAvatar(IClientAPI remoteClient, LLUUID agentID, bool status); |
398 | 468 | ||
399 | public delegate void UpdateAgent(IClientAPI remoteClient, AgentUpdatePacket agentData); | 469 | public delegate void UpdateAgent(IClientAPI remoteClient, AgentUpdateArgs agentData); |
400 | 470 | ||
401 | public delegate void AgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset); | 471 | public delegate void AgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset); |
402 | 472 | ||
@@ -427,7 +497,7 @@ namespace OpenSim.Framework | |||
427 | 497 | ||
428 | public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client); | 498 | public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client); |
429 | 499 | ||
430 | public delegate void EstateOwnerMessageRequest(EstateOwnerMessagePacket packet, IClientAPI remote_client); | 500 | public delegate void EstateOwnerMessageRequest(LLUUID AgentID, LLUUID SessionID, LLUUID TransactionID, LLUUID Invoice, byte[] Method, byte[][] Parameters, IClientAPI remote_client); |
431 | 501 | ||
432 | public delegate void RegionInfoRequest(IClientAPI remote_client); | 502 | public delegate void RegionInfoRequest(IClientAPI remote_client); |
433 | 503 | ||
@@ -487,7 +557,7 @@ namespace OpenSim.Framework | |||
487 | public delegate void RemoveInventoryFolder( | 557 | public delegate void RemoveInventoryFolder( |
488 | IClientAPI remoteClient, LLUUID folderID); | 558 | IClientAPI remoteClient, LLUUID folderID); |
489 | 559 | ||
490 | public delegate void RequestAsset(IClientAPI remoteClient, TransferRequestPacket transferRequest); | 560 | public delegate void RequestAsset(IClientAPI remoteClient, RequestAssetArgs transferRequest); |
491 | 561 | ||
492 | public delegate void RezScript(IClientAPI remoteClient, LLUUID itemID, uint localID); | 562 | public delegate void RezScript(IClientAPI remoteClient, LLUUID itemID, uint localID); |
493 | 563 | ||
@@ -822,7 +892,7 @@ namespace OpenSim.Framework | |||
822 | int PriceParcelClaim, float PriceParcelClaimFactor, int PriceParcelRent, int PricePublicObjectDecay, | 892 | int PriceParcelClaim, float PriceParcelClaimFactor, int PriceParcelRent, int PricePublicObjectDecay, |
823 | int PricePublicObjectDelete, int PriceRentLight, int PriceUpload, int TeleportMinPrice, float TeleportPriceExponent); | 893 | int PricePublicObjectDelete, int PriceRentLight, int PriceUpload, int TeleportMinPrice, float TeleportPriceExponent); |
824 | 894 | ||
825 | void SendAvatarPickerReply(AvatarPickerReplyPacket Pack); | 895 | void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data); |
826 | 896 | ||
827 | void SendAgentDataUpdate(LLUUID agentid, LLUUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle); | 897 | void SendAgentDataUpdate(LLUUID agentid, LLUUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle); |
828 | 898 | ||
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 7587f44..0ea7e0a 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -1651,8 +1651,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1651 | 1651 | ||
1652 | } | 1652 | } |
1653 | 1653 | ||
1654 | public void SendAvatarPickerReply(AvatarPickerReplyPacket replyPacket) | 1654 | public void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data) |
1655 | { | 1655 | { |
1656 | //construct the AvatarPickerReply packet. | ||
1657 | AvatarPickerReplyPacket replyPacket = new AvatarPickerReplyPacket(); | ||
1658 | replyPacket.AgentData.AgentID = AgentData.AgentID; | ||
1659 | replyPacket.AgentData.QueryID = AgentData.QueryID; | ||
1660 | int i = 0; | ||
1661 | List<AvatarPickerReplyPacket.DataBlock> data_block = new List<AvatarPickerReplyPacket.DataBlock>(); | ||
1662 | foreach (AvatarPickerReplyDataArgs arg in Data) | ||
1663 | { | ||
1664 | AvatarPickerReplyPacket.DataBlock db = new AvatarPickerReplyPacket.DataBlock(); | ||
1665 | db.AvatarID = arg.AvatarID; | ||
1666 | db.FirstName = arg.FirstName; | ||
1667 | db.LastName = arg.LastName; | ||
1668 | data_block.Add(db); | ||
1669 | } | ||
1670 | replyPacket.Data = data_block.ToArray(); | ||
1656 | OutPacket(replyPacket, ThrottleOutPacketType.Task); | 1671 | OutPacket(replyPacket, ThrottleOutPacketType.Task); |
1657 | } | 1672 | } |
1658 | 1673 | ||
@@ -2904,11 +2919,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2904 | handlerViewerEffect = OnViewerEffect; | 2919 | handlerViewerEffect = OnViewerEffect; |
2905 | if (handlerViewerEffect != null) | 2920 | if (handlerViewerEffect != null) |
2906 | { | 2921 | { |
2907 | handlerViewerEffect(sender, viewer.Effect); | 2922 | int length = viewer.Effect.Length; |
2923 | List<ViewerEffectEventHandlerArg> args = new List<ViewerEffectEventHandlerArg>(length); | ||
2924 | for (int i = 0; i < length; i++) | ||
2925 | { | ||
2926 | //copy the effects block arguments into the event handler arg. | ||
2927 | ViewerEffectEventHandlerArg argument = new ViewerEffectEventHandlerArg(); | ||
2928 | argument.AgentID = viewer.Effect[i].AgentID; | ||
2929 | argument.Color = viewer.Effect[i].Color; | ||
2930 | argument.Duration = viewer.Effect[i].Duration; | ||
2931 | argument.ID = viewer.Effect[i].ID; | ||
2932 | argument.Type = viewer.Effect[i].Type; | ||
2933 | args.Add(argument); | ||
2934 | } | ||
2935 | |||
2936 | handlerViewerEffect(sender, args); | ||
2908 | } | 2937 | } |
2909 | 2938 | ||
2910 | return true; | 2939 | return true; |
2911 | } | 2940 | } |
2941 | |||
2912 | 2942 | ||
2913 | public void SendScriptQuestion(LLUUID taskID, string taskName, string ownerName, LLUUID itemID, int question) | 2943 | public void SendScriptQuestion(LLUUID taskID, string taskName, string ownerName, LLUUID itemID, int question) |
2914 | { | 2944 | { |
@@ -3778,7 +3808,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3778 | // for the client session anyway, in order to protect ourselves against bad code in plugins | 3808 | // for the client session anyway, in order to protect ourselves against bad code in plugins |
3779 | try | 3809 | try |
3780 | { | 3810 | { |
3781 | handlerSetAppearance(appear.ObjectData.TextureEntry, appear.VisualParam); | 3811 | List<byte> visualparams = new List<byte>(); |
3812 | foreach (AgentSetAppearancePacket.VisualParamBlock x in appear.VisualParam) | ||
3813 | { | ||
3814 | visualparams.Add(x.ParamValue); | ||
3815 | } | ||
3816 | |||
3817 | handlerSetAppearance(appear.ObjectData.TextureEntry, visualparams); | ||
3782 | } | 3818 | } |
3783 | catch (Exception e) | 3819 | catch (Exception e) |
3784 | { | 3820 | { |
@@ -3885,9 +3921,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3885 | { | 3921 | { |
3886 | AgentUpdatePacket agenUpdate = (AgentUpdatePacket)Pack; | 3922 | AgentUpdatePacket agenUpdate = (AgentUpdatePacket)Pack; |
3887 | 3923 | ||
3924 | AgentUpdatePacket.AgentDataBlock x = agenUpdate.AgentData; | ||
3925 | AgentUpdateArgs arg = new AgentUpdateArgs(); | ||
3926 | arg.AgentID = x.AgentID; | ||
3927 | arg.BodyRotation = x.BodyRotation; | ||
3928 | arg.CameraAtAxis = x.CameraAtAxis; | ||
3929 | arg.CameraCenter = x.CameraCenter; | ||
3930 | arg.CameraLeftAxis = x.CameraLeftAxis; | ||
3931 | arg.CameraUpAxis = x.CameraUpAxis; | ||
3932 | arg.ControlFlags = x.ControlFlags; | ||
3933 | arg.Far = x.Far; | ||
3934 | arg.Flags = x.Flags; | ||
3935 | arg.HeadRotation = x.HeadRotation; | ||
3936 | arg.SessionID = x.SessionID; | ||
3937 | arg.State = x.State; | ||
3938 | |||
3888 | handlerAgentUpdate = OnAgentUpdate; | 3939 | handlerAgentUpdate = OnAgentUpdate; |
3889 | if (handlerAgentUpdate != null) | 3940 | if (handlerAgentUpdate != null) |
3890 | OnAgentUpdate(this, agenUpdate); | 3941 | OnAgentUpdate(this, arg); |
3891 | 3942 | ||
3892 | handlerAgentUpdate = null; | 3943 | handlerAgentUpdate = null; |
3893 | //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa); | 3944 | //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa); |
@@ -4085,8 +4136,29 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4085 | handlerUpdatePrimShape = OnUpdatePrimShape; | 4136 | handlerUpdatePrimShape = OnUpdatePrimShape; |
4086 | if (handlerUpdatePrimShape != null) | 4137 | if (handlerUpdatePrimShape != null) |
4087 | { | 4138 | { |
4139 | UpdateShapeArgs shapeData = new UpdateShapeArgs(); | ||
4140 | shapeData.ObjectLocalID = shapePacket.ObjectData[i].ObjectLocalID; | ||
4141 | shapeData.PathBegin = shapePacket.ObjectData[i].PathBegin; | ||
4142 | shapeData.PathCurve = shapePacket.ObjectData[i].PathCurve; | ||
4143 | shapeData.PathEnd = shapePacket.ObjectData[i].PathEnd; | ||
4144 | shapeData.PathRadiusOffset = shapePacket.ObjectData[i].PathRadiusOffset; | ||
4145 | shapeData.PathRevolutions = shapePacket.ObjectData[i].PathRevolutions; | ||
4146 | shapeData.PathScaleX = shapePacket.ObjectData[i].PathScaleX; | ||
4147 | shapeData.PathScaleY = shapePacket.ObjectData[i].PathScaleY; | ||
4148 | shapeData.PathShearX = shapePacket.ObjectData[i].PathShearX; | ||
4149 | shapeData.PathShearY = shapePacket.ObjectData[i].PathShearY; | ||
4150 | shapeData.PathSkew = shapePacket.ObjectData[i].PathSkew; | ||
4151 | shapeData.PathTaperX = shapePacket.ObjectData[i].PathTaperX; | ||
4152 | shapeData.PathTaperY = shapePacket.ObjectData[i].PathTaperY; | ||
4153 | shapeData.PathTwist = shapePacket.ObjectData[i].PathTwist; | ||
4154 | shapeData.PathTwistBegin = shapePacket.ObjectData[i].PathTwistBegin; | ||
4155 | shapeData.ProfileBegin = shapePacket.ObjectData[i].ProfileBegin; | ||
4156 | shapeData.ProfileCurve = shapePacket.ObjectData[i].ProfileCurve; | ||
4157 | shapeData.ProfileEnd = shapePacket.ObjectData[i].ProfileEnd; | ||
4158 | shapeData.ProfileHollow = shapePacket.ObjectData[i].ProfileHollow; | ||
4159 | |||
4088 | handlerUpdatePrimShape(m_agentId, shapePacket.ObjectData[i].ObjectLocalID, | 4160 | handlerUpdatePrimShape(m_agentId, shapePacket.ObjectData[i].ObjectLocalID, |
4089 | shapePacket.ObjectData[i]); | 4161 | shapeData); |
4090 | } | 4162 | } |
4091 | } | 4163 | } |
4092 | break; | 4164 | break; |
diff --git a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs index 8f29507..c482d94 100644 --- a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs +++ b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs | |||
@@ -26,6 +26,7 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | ||
29 | using System.Runtime.Serialization; | 30 | using System.Runtime.Serialization; |
30 | using System.Security.Permissions; | 31 | using System.Security.Permissions; |
31 | using libsecondlife; | 32 | using libsecondlife; |
@@ -102,15 +103,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
102 | /// </summary> | 103 | /// </summary> |
103 | /// <param name="texture"></param> | 104 | /// <param name="texture"></param> |
104 | /// <param name="visualParam"></param> | 105 | /// <param name="visualParam"></param> |
105 | public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam) | 106 | public void SetAppearance(byte[] texture, List<byte> visualParam) |
106 | { | 107 | { |
107 | LLObject.TextureEntry textureEnt = new LLObject.TextureEntry(texture, 0, texture.Length); | 108 | LLObject.TextureEntry textureEnt = new LLObject.TextureEntry(texture, 0, texture.Length); |
108 | m_textureEntry = textureEnt; | 109 | m_textureEntry = textureEnt; |
109 | 110 | ||
110 | for (int i = 0; i < visualParam.Length; i++) | 111 | m_visualParams = visualParam.ToArray(); |
111 | { | ||
112 | m_visualParams[i] = visualParam[i].ParamValue; | ||
113 | } | ||
114 | 112 | ||
115 | // Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters. | 113 | // Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters. |
116 | // (float)m_visualParams[25] = Height | 114 | // (float)m_visualParams[25] = Height |
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index f29e1f3..80e71c8 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -1275,14 +1275,35 @@ namespace OpenSim.Region.Environment.Scenes | |||
1275 | /// </summary> | 1275 | /// </summary> |
1276 | /// <param name="primLocalID"></param> | 1276 | /// <param name="primLocalID"></param> |
1277 | /// <param name="shapeBlock"></param> | 1277 | /// <param name="shapeBlock"></param> |
1278 | public void UpdatePrimShape(LLUUID agentID, uint primLocalID, ObjectShapePacket.ObjectDataBlock shapeBlock) | 1278 | public void UpdatePrimShape(LLUUID agentID, uint primLocalID, UpdateShapeArgs shapeBlock) |
1279 | { | 1279 | { |
1280 | SceneObjectGroup group = GetGroupByPrim(primLocalID); | 1280 | SceneObjectGroup group = GetGroupByPrim(primLocalID); |
1281 | if (group != null) | 1281 | if (group != null) |
1282 | { | 1282 | { |
1283 | if (m_parentScene.Permissions.CanEditObjectPosition(agentID, group.GetPartsFullID(primLocalID))) | 1283 | if (m_parentScene.Permissions.CanEditObjectPosition(agentID, group.GetPartsFullID(primLocalID))) |
1284 | { | 1284 | { |
1285 | group.UpdateShape(shapeBlock, primLocalID); | 1285 | ObjectShapePacket.ObjectDataBlock shapeData = new ObjectShapePacket.ObjectDataBlock(); |
1286 | shapeData.ObjectLocalID = shapeBlock.ObjectLocalID; | ||
1287 | shapeData.PathBegin = shapeBlock.PathBegin; | ||
1288 | shapeData.PathCurve = shapeBlock.PathCurve; | ||
1289 | shapeData.PathEnd = shapeBlock.PathEnd; | ||
1290 | shapeData.PathRadiusOffset = shapeBlock.PathRadiusOffset; | ||
1291 | shapeData.PathRevolutions = shapeBlock.PathRevolutions; | ||
1292 | shapeData.PathScaleX = shapeBlock.PathScaleX; | ||
1293 | shapeData.PathScaleY = shapeBlock.PathScaleY; | ||
1294 | shapeData.PathShearX = shapeBlock.PathShearX; | ||
1295 | shapeData.PathShearY = shapeBlock.PathShearY; | ||
1296 | shapeData.PathSkew = shapeBlock.PathSkew; | ||
1297 | shapeData.PathTaperX = shapeBlock.PathTaperX; | ||
1298 | shapeData.PathTaperY = shapeBlock.PathTaperY; | ||
1299 | shapeData.PathTwist = shapeBlock.PathTwist; | ||
1300 | shapeData.PathTwistBegin = shapeBlock.PathTwistBegin; | ||
1301 | shapeData.ProfileBegin = shapeBlock.ProfileBegin; | ||
1302 | shapeData.ProfileCurve = shapeBlock.ProfileCurve; | ||
1303 | shapeData.ProfileEnd = shapeBlock.ProfileEnd; | ||
1304 | shapeData.ProfileHollow = shapeBlock.ProfileHollow; | ||
1305 | |||
1306 | group.UpdateShape(shapeData, primLocalID); | ||
1286 | } | 1307 | } |
1287 | } | 1308 | } |
1288 | } | 1309 | } |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 0a4906a..623368a 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -245,7 +245,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
245 | searchData = new AvatarPickerReplyPacket.DataBlock[0]; | 245 | searchData = new AvatarPickerReplyPacket.DataBlock[0]; |
246 | } | 246 | } |
247 | replyPacket.Data = searchData; | 247 | replyPacket.Data = searchData; |
248 | client.SendAvatarPickerReply(replyPacket); | 248 | |
249 | AvatarPickerReplyAgentDataArgs agent_data = new AvatarPickerReplyAgentDataArgs(); | ||
250 | agent_data.AgentID = replyPacket.AgentData.AgentID; | ||
251 | agent_data.QueryID = replyPacket.AgentData.QueryID; | ||
252 | |||
253 | List<AvatarPickerReplyDataArgs> data_args = new List<AvatarPickerReplyDataArgs>(); | ||
254 | for (i = 0; i < replyPacket.Data.Length; i++) | ||
255 | { | ||
256 | AvatarPickerReplyDataArgs data_arg = new AvatarPickerReplyDataArgs(); | ||
257 | data_arg.AvatarID = replyPacket.Data[i].AvatarID; | ||
258 | data_arg.FirstName = replyPacket.Data[i].FirstName; | ||
259 | data_arg.LastName = replyPacket.Data[i].LastName; | ||
260 | data_args.Add(data_arg); | ||
261 | } | ||
262 | client.SendAvatarPickerReply(agent_data, data_args); | ||
249 | } | 263 | } |
250 | } | 264 | } |
251 | } | 265 | } |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 9343ad3..9732d05 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -754,7 +754,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
754 | /// <summary> | 754 | /// <summary> |
755 | /// This is the event handler for client movement. If a client is moving, this event is triggering. | 755 | /// This is the event handler for client movement. If a client is moving, this event is triggering. |
756 | /// </summary> | 756 | /// </summary> |
757 | public void HandleAgentUpdate(IClientAPI remoteClient, AgentUpdatePacket agentData) | 757 | public void HandleAgentUpdate(IClientAPI remoteClient, AgentUpdateArgs agentData) |
758 | { | 758 | { |
759 | //if (m_isChildAgent) | 759 | //if (m_isChildAgent) |
760 | //{ | 760 | //{ |
@@ -767,31 +767,31 @@ namespace OpenSim.Region.Environment.Scenes | |||
767 | 767 | ||
768 | m_perfMonMS = System.Environment.TickCount; | 768 | m_perfMonMS = System.Environment.TickCount; |
769 | 769 | ||
770 | uint flags = agentData.AgentData.ControlFlags; | 770 | uint flags = agentData.ControlFlags; |
771 | LLQuaternion bodyRotation = agentData.AgentData.BodyRotation; | 771 | LLQuaternion bodyRotation = agentData.BodyRotation; |
772 | 772 | ||
773 | // Camera location in world. We'll need to raytrace | 773 | // Camera location in world. We'll need to raytrace |
774 | // from this location from time to time. | 774 | // from this location from time to time. |
775 | m_CameraCenter.x = agentData.AgentData.CameraCenter.X; | 775 | m_CameraCenter.x = agentData.CameraCenter.X; |
776 | m_CameraCenter.y = agentData.AgentData.CameraCenter.Y; | 776 | m_CameraCenter.y = agentData.CameraCenter.Y; |
777 | m_CameraCenter.z = agentData.AgentData.CameraCenter.Z; | 777 | m_CameraCenter.z = agentData.CameraCenter.Z; |
778 | 778 | ||
779 | // Use these three vectors to figure out what the agent is looking at | 779 | // Use these three vectors to figure out what the agent is looking at |
780 | // Convert it to a Matrix and/or Quaternion | 780 | // Convert it to a Matrix and/or Quaternion |
781 | m_CameraAtAxis.x = agentData.AgentData.CameraAtAxis.X; | 781 | m_CameraAtAxis.x = agentData.CameraAtAxis.X; |
782 | m_CameraAtAxis.y = agentData.AgentData.CameraAtAxis.Y; | 782 | m_CameraAtAxis.y = agentData.CameraAtAxis.Y; |
783 | m_CameraAtAxis.z = agentData.AgentData.CameraAtAxis.Z; | 783 | m_CameraAtAxis.z = agentData.CameraAtAxis.Z; |
784 | 784 | ||
785 | m_CameraLeftAxis.x = agentData.AgentData.CameraLeftAxis.X; | 785 | m_CameraLeftAxis.x = agentData.CameraLeftAxis.X; |
786 | m_CameraLeftAxis.y = agentData.AgentData.CameraLeftAxis.Y; | 786 | m_CameraLeftAxis.y = agentData.CameraLeftAxis.Y; |
787 | m_CameraLeftAxis.z = agentData.AgentData.CameraLeftAxis.Z; | 787 | m_CameraLeftAxis.z = agentData.CameraLeftAxis.Z; |
788 | 788 | ||
789 | m_CameraUpAxis.x = agentData.AgentData.CameraUpAxis.X; | 789 | m_CameraUpAxis.x = agentData.CameraUpAxis.X; |
790 | m_CameraUpAxis.y = agentData.AgentData.CameraUpAxis.Y; | 790 | m_CameraUpAxis.y = agentData.CameraUpAxis.Y; |
791 | m_CameraUpAxis.z = agentData.AgentData.CameraUpAxis.Z; | 791 | m_CameraUpAxis.z = agentData.CameraUpAxis.Z; |
792 | 792 | ||
793 | // The Agent's Draw distance setting | 793 | // The Agent's Draw distance setting |
794 | m_DrawDistance = agentData.AgentData.Far; | 794 | m_DrawDistance = agentData.Far; |
795 | 795 | ||
796 | if ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0) | 796 | if ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0) |
797 | { | 797 | { |
@@ -1569,7 +1569,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1569 | m_appearance.SendAppearanceToOtherAgent(avatar); | 1569 | m_appearance.SendAppearanceToOtherAgent(avatar); |
1570 | } | 1570 | } |
1571 | 1571 | ||
1572 | public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam) | 1572 | public void SetAppearance(byte[] texture, List<byte> visualParam) |
1573 | { | 1573 | { |
1574 | m_appearance.SetAppearance(texture, visualParam); | 1574 | m_appearance.SetAppearance(texture, visualParam); |
1575 | SetHeight(m_appearance.AvatarHeight); | 1575 | SetHeight(m_appearance.AvatarHeight); |
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 51bc0d8..e5e6469 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -271,7 +271,7 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
271 | { | 271 | { |
272 | } | 272 | } |
273 | 273 | ||
274 | public virtual void SendAvatarPickerReply(AvatarPickerReplyPacket response) | 274 | public virtual void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data) |
275 | { | 275 | { |
276 | } | 276 | } |
277 | 277 | ||
@@ -528,9 +528,10 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
528 | frame = 0; | 528 | frame = 0; |
529 | if (OnAgentUpdate != null) | 529 | if (OnAgentUpdate != null) |
530 | { | 530 | { |
531 | AgentUpdatePacket pack = new AgentUpdatePacket(); | 531 | AgentUpdateArgs pack = new AgentUpdateArgs(); |
532 | pack.AgentData.ControlFlags = movementFlag; | 532 | pack.ControlFlags = movementFlag; |
533 | pack.AgentData.BodyRotation = bodyDirection; | 533 | pack.BodyRotation = bodyDirection; |
534 | |||
534 | OnAgentUpdate(this, pack); | 535 | OnAgentUpdate(this, pack); |
535 | } | 536 | } |
536 | if (flyState == 0) | 537 | if (flyState == 0) |