diff options
Diffstat (limited to 'OpenSim/Framework/General/IClientAPI.cs')
-rw-r--r-- | OpenSim/Framework/General/IClientAPI.cs | 390 |
1 files changed, 390 insertions, 0 deletions
diff --git a/OpenSim/Framework/General/IClientAPI.cs b/OpenSim/Framework/General/IClientAPI.cs new file mode 100644 index 0000000..8c81eae --- /dev/null +++ b/OpenSim/Framework/General/IClientAPI.cs | |||
@@ -0,0 +1,390 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSim Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | * | ||
27 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Net; | ||
31 | using libsecondlife; | ||
32 | using libsecondlife.Packets; | ||
33 | using OpenSim.Framework; | ||
34 | |||
35 | namespace OpenSim.Framework | ||
36 | { | ||
37 | // Base Args Interface | ||
38 | public interface IEventArgs | ||
39 | { | ||
40 | IScene Scene | ||
41 | { | ||
42 | get; | ||
43 | set; | ||
44 | } | ||
45 | |||
46 | IClientAPI Sender | ||
47 | { | ||
48 | get; | ||
49 | set; | ||
50 | } | ||
51 | } | ||
52 | |||
53 | public delegate void ViewerEffectEventHandler(IClientAPI sender, ViewerEffectPacket.EffectBlock[] effectBlock); | ||
54 | |||
55 | public delegate void ChatFromViewer(Object sender, ChatFromViewerArgs e); | ||
56 | |||
57 | public enum ChatTypeEnum { Whisper = 0, Say = 1, Shout = 2, Broadcast = 0xFF }; | ||
58 | |||
59 | /// <summary> | ||
60 | /// ChatFromViewer Arguments | ||
61 | /// </summary> | ||
62 | public class ChatFromViewerArgs : EventArgs, IEventArgs | ||
63 | { | ||
64 | protected string m_message; | ||
65 | protected ChatTypeEnum m_type; | ||
66 | protected int m_channel; | ||
67 | protected LLVector3 m_position; | ||
68 | protected string m_from; | ||
69 | |||
70 | protected IClientAPI m_sender; | ||
71 | protected IScene m_scene; | ||
72 | |||
73 | /// <summary> | ||
74 | /// The message sent by the user | ||
75 | /// </summary> | ||
76 | public string Message | ||
77 | { | ||
78 | get { return m_message; } | ||
79 | set { m_message = value; } | ||
80 | } | ||
81 | |||
82 | /// <summary> | ||
83 | /// The type of message, eg say, shout, broadcast. | ||
84 | /// </summary> | ||
85 | public ChatTypeEnum Type | ||
86 | { | ||
87 | get { return m_type; } | ||
88 | set { m_type = value; } | ||
89 | } | ||
90 | |||
91 | /// <summary> | ||
92 | /// Which channel was this message sent on? Different channels may have different listeners. Public chat is on channel zero. | ||
93 | /// </summary> | ||
94 | public int Channel | ||
95 | { | ||
96 | get { return m_channel; } | ||
97 | set { m_channel = value; } | ||
98 | } | ||
99 | |||
100 | /// <summary> | ||
101 | /// The position of the sender at the time of the message broadcast. | ||
102 | /// </summary> | ||
103 | public LLVector3 Position | ||
104 | { | ||
105 | get { return m_position; } | ||
106 | set { m_position = value; } | ||
107 | } | ||
108 | |||
109 | /// <summary> | ||
110 | /// The name of the sender (needed for scripts) | ||
111 | /// </summary> | ||
112 | public string From | ||
113 | { | ||
114 | get { return m_from; } | ||
115 | set { m_from = value; } | ||
116 | } | ||
117 | |||
118 | /// <summary> | ||
119 | /// The client responsible for sending the message, or null. | ||
120 | /// </summary> | ||
121 | public IClientAPI Sender | ||
122 | { | ||
123 | get { return m_sender; } | ||
124 | set { m_sender = value; } | ||
125 | } | ||
126 | |||
127 | public IScene Scene | ||
128 | { | ||
129 | get { return m_scene; } | ||
130 | set { m_scene = value; } | ||
131 | } | ||
132 | |||
133 | public ChatFromViewerArgs() | ||
134 | { | ||
135 | m_position = new LLVector3(); | ||
136 | } | ||
137 | } | ||
138 | |||
139 | public class TextureRequestArgs : EventArgs | ||
140 | { | ||
141 | protected LLUUID m_requestedAssetID; | ||
142 | private sbyte m_discardLevel; | ||
143 | private uint m_packetNumber; | ||
144 | |||
145 | public uint PacketNumber | ||
146 | { | ||
147 | get { return m_packetNumber; } | ||
148 | set { m_packetNumber = value; } | ||
149 | } | ||
150 | |||
151 | public sbyte DiscardLevel | ||
152 | { | ||
153 | get { return m_discardLevel; } | ||
154 | set { m_discardLevel = value; } | ||
155 | } | ||
156 | |||
157 | public LLUUID RequestedAssetID | ||
158 | { | ||
159 | get { return m_requestedAssetID; } | ||
160 | set { m_requestedAssetID = value; } | ||
161 | } | ||
162 | } | ||
163 | |||
164 | public delegate void TextureRequest(Object sender, TextureRequestArgs e); | ||
165 | |||
166 | public delegate void ImprovedInstantMessage(LLUUID fromAgentID, LLUUID fromAgentSession, LLUUID toAgentID, LLUUID imSessionID, uint timestamp, string fromAgentName, string message, byte dialog); // Cut down from full list | ||
167 | public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 pos); | ||
168 | public delegate void ModifyTerrain(float height, float seconds, byte size, byte action, float north, float west, IClientAPI remoteClient); | ||
169 | public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam); | ||
170 | public delegate void StartAnim(IClientAPI remoteClient, LLUUID animID, int seq); | ||
171 | public delegate void LinkObjects(uint parent, List<uint> children); | ||
172 | public delegate void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY); | ||
173 | public delegate void TeleportLocationRequest(IClientAPI remoteClient, ulong regionHandle, LLVector3 position, LLVector3 lookAt, uint flags); | ||
174 | public delegate void DisconnectUser(); | ||
175 | public delegate void RequestAvatarProperties(IClientAPI remoteClient, LLUUID avatarID); | ||
176 | |||
177 | public delegate void GenericCall(IClientAPI remoteClient); | ||
178 | public delegate void GenericCall2(); | ||
179 | public delegate void GenericCall3(Packet packet); // really don't want to be passing packets in these events, so this is very temporary. | ||
180 | public delegate void GenericCall4(Packet packet, IClientAPI remoteClient); | ||
181 | public delegate void GenericCall5(IClientAPI remoteClient, bool status); | ||
182 | public delegate void GenericCall6(LLUUID uid); | ||
183 | public delegate void GenericCall7(uint localID, string message); | ||
184 | |||
185 | public delegate void UpdateShape(uint localID, ObjectShapePacket.ObjectDataBlock shapeBlock); | ||
186 | public delegate void ObjectExtraParams(uint localID, ushort type, bool inUse, byte[] data); | ||
187 | public delegate void ObjectSelect(uint localID, IClientAPI remoteClient); | ||
188 | public delegate void ObjectDeselect(uint localID, IClientAPI remoteClient); | ||
189 | public delegate void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient); | ||
190 | public delegate void UpdatePrimTexture(uint localID, byte[] texture, IClientAPI remoteClient); | ||
191 | public delegate void UpdateVector(uint localID, LLVector3 pos, IClientAPI remoteClient); | ||
192 | public delegate void UpdatePrimRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient); | ||
193 | public delegate void UpdatePrimSingleRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient); | ||
194 | public delegate void UpdatePrimGroupRotation(uint localID,LLVector3 pos, LLQuaternion rot, IClientAPI remoteClient); | ||
195 | public delegate void ObjectDuplicate(uint localID, LLVector3 offset, uint dupeFlags); | ||
196 | public delegate void StatusChange(bool status); | ||
197 | public delegate void NewAvatar(IClientAPI remoteClient, LLUUID agentID, bool status); | ||
198 | public delegate void UpdateAgent(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation); | ||
199 | public delegate void AgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID); | ||
200 | public delegate void AgentSit(IClientAPI remoteClient, LLUUID agentID); | ||
201 | public delegate void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 grapPos, IClientAPI remoteClient); | ||
202 | |||
203 | public delegate void ParcelPropertiesRequest(int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client); | ||
204 | public delegate void ParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client); | ||
205 | public delegate void ParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client); | ||
206 | public delegate void ParcelPropertiesUpdateRequest(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client); | ||
207 | public delegate void ParcelSelectObjects(int land_local_id, int request_type, IClientAPI remote_client); | ||
208 | public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client); | ||
209 | public delegate void EstateOwnerMessageRequest(EstateOwnerMessagePacket packet, IClientAPI remote_client); | ||
210 | |||
211 | public delegate void UUIDNameRequest(LLUUID id, IClientAPI remote_client); | ||
212 | |||
213 | public delegate void AddNewPrim(LLUUID ownerID, LLVector3 pos, PrimitiveBaseShape shape); | ||
214 | |||
215 | public delegate void CreateInventoryFolder(IClientAPI remoteClient, LLUUID folderID, ushort folderType, string folderName, LLUUID parentID); | ||
216 | public delegate void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID transActionID, LLUUID folderID, uint callbackID, string description, string name, sbyte invType, sbyte type, byte wearableType, uint nextOwnerMask); | ||
217 | public delegate void FetchInventoryDescendents(IClientAPI remoteClient, LLUUID folderID, LLUUID ownerID, bool fetchFolders, bool fetchItems, int sortOrder); | ||
218 | public delegate void FetchInventory(IClientAPI remoteClient, LLUUID itemID, LLUUID ownerID); | ||
219 | public delegate void RequestTaskInventory(IClientAPI remoteClient, uint localID); | ||
220 | public delegate void UpdateInventoryItemTransaction(IClientAPI remoteClient, LLUUID transactionID, LLUUID assetID, LLUUID itemID); | ||
221 | public delegate void RezScript(IClientAPI remoteClient, LLUUID itemID, uint localID); | ||
222 | public delegate void UpdateTaskInventory(IClientAPI remoteClient, LLUUID itemID, LLUUID folderID, uint localID); | ||
223 | public delegate void RemoveTaskInventory(IClientAPI remoteClient, LLUUID itemID, uint localID); | ||
224 | |||
225 | public delegate void UDPAssetUploadRequest(IClientAPI remoteClient, LLUUID assetID, LLUUID transaction, sbyte type, byte[] data, bool storeLocal); | ||
226 | public delegate void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data); | ||
227 | public delegate void RequestXfer(IClientAPI remoteClient, ulong xferID, string fileName); | ||
228 | public delegate void ConfirmXfer(IClientAPI remoteClient, ulong xferID, uint packetID); | ||
229 | |||
230 | public interface IClientAPI | ||
231 | { | ||
232 | event ImprovedInstantMessage OnInstantMessage; | ||
233 | event ChatFromViewer OnChatFromViewer; | ||
234 | event TextureRequest OnRequestTexture; | ||
235 | event RezObject OnRezObject; | ||
236 | event ModifyTerrain OnModifyTerrain; | ||
237 | event SetAppearance OnSetAppearance; | ||
238 | event StartAnim OnStartAnim; | ||
239 | event LinkObjects OnLinkObjects; | ||
240 | event RequestMapBlocks OnRequestMapBlocks; | ||
241 | event TeleportLocationRequest OnTeleportLocationRequest; | ||
242 | event DisconnectUser OnDisconnectUser; | ||
243 | event RequestAvatarProperties OnRequestAvatarProperties; | ||
244 | |||
245 | event GenericCall4 OnDeRezObject; | ||
246 | event GenericCall OnRegionHandShakeReply; | ||
247 | event GenericCall OnRequestWearables; | ||
248 | event GenericCall2 OnCompleteMovementToRegion; | ||
249 | event UpdateAgent OnAgentUpdate; | ||
250 | event AgentRequestSit OnAgentRequestSit; | ||
251 | event AgentSit OnAgentSit; | ||
252 | event GenericCall OnRequestAvatarsData; | ||
253 | event AddNewPrim OnAddPrim; | ||
254 | event ObjectDuplicate OnObjectDuplicate; | ||
255 | event UpdateVector OnGrabObject; | ||
256 | event ObjectSelect OnDeGrabObject; | ||
257 | event MoveObject OnGrabUpdate; | ||
258 | |||
259 | event UpdateShape OnUpdatePrimShape; | ||
260 | event ObjectExtraParams OnUpdateExtraParams; | ||
261 | event ObjectSelect OnObjectSelect; | ||
262 | event ObjectDeselect OnObjectDeselect; | ||
263 | event GenericCall7 OnObjectDescription; | ||
264 | event GenericCall7 OnObjectName; | ||
265 | event UpdatePrimFlags OnUpdatePrimFlags; | ||
266 | event UpdatePrimTexture OnUpdatePrimTexture; | ||
267 | event UpdateVector OnUpdatePrimGroupPosition; | ||
268 | event UpdateVector OnUpdatePrimSinglePosition; | ||
269 | event UpdatePrimRotation OnUpdatePrimGroupRotation; | ||
270 | event UpdatePrimSingleRotation OnUpdatePrimSingleRotation; | ||
271 | event UpdatePrimGroupRotation OnUpdatePrimGroupMouseRotation; | ||
272 | event UpdateVector OnUpdatePrimScale; | ||
273 | event StatusChange OnChildAgentStatus; | ||
274 | event GenericCall2 OnStopMovement; | ||
275 | event GenericCall6 OnRemoveAvatar; | ||
276 | |||
277 | event CreateNewInventoryItem OnCreateNewInventoryItem; | ||
278 | event CreateInventoryFolder OnCreateNewInventoryFolder; | ||
279 | event FetchInventoryDescendents OnFetchInventoryDescendents; | ||
280 | event FetchInventory OnFetchInventory; | ||
281 | event RequestTaskInventory OnRequestTaskInventory; | ||
282 | event UpdateInventoryItemTransaction OnUpdateInventoryItem; | ||
283 | event UDPAssetUploadRequest OnAssetUploadRequest; | ||
284 | event XferReceive OnXferReceive; | ||
285 | event RequestXfer OnRequestXfer; | ||
286 | event ConfirmXfer OnConfirmXfer; | ||
287 | event RezScript OnRezScript; | ||
288 | event UpdateTaskInventory OnUpdateTaskInventory; | ||
289 | event RemoveTaskInventory OnRemoveTaskItem; | ||
290 | |||
291 | event UUIDNameRequest OnNameFromUUIDRequest; | ||
292 | |||
293 | event ParcelPropertiesRequest OnParcelPropertiesRequest; | ||
294 | event ParcelDivideRequest OnParcelDivideRequest; | ||
295 | event ParcelJoinRequest OnParcelJoinRequest; | ||
296 | event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest; | ||
297 | event ParcelSelectObjects OnParcelSelectObjects; | ||
298 | event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest; | ||
299 | event EstateOwnerMessageRequest OnEstateOwnerMessage; | ||
300 | |||
301 | LLVector3 StartPos | ||
302 | { | ||
303 | get; | ||
304 | set; | ||
305 | } | ||
306 | |||
307 | LLUUID AgentId | ||
308 | { | ||
309 | get; | ||
310 | } | ||
311 | |||
312 | LLUUID SessionId | ||
313 | { | ||
314 | get; | ||
315 | } | ||
316 | |||
317 | string FirstName | ||
318 | { | ||
319 | get; | ||
320 | } | ||
321 | |||
322 | string LastName | ||
323 | { | ||
324 | get; | ||
325 | } | ||
326 | |||
327 | uint CircuitCode | ||
328 | { | ||
329 | get; | ||
330 | set; | ||
331 | } | ||
332 | |||
333 | void OutPacket(Packet newPack); | ||
334 | void SendWearables(AvatarWearable[] wearables); | ||
335 | void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry); | ||
336 | void SendStartPingCheck(byte seq); | ||
337 | void SendKillObject(ulong regionHandle, uint localID); | ||
338 | void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId); | ||
339 | void SendRegionHandshake(RegionInfo regionInfo); | ||
340 | void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID); | ||
341 | void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID); | ||
342 | void SendInstantMessage(LLUUID fromAgent, LLUUID fromAgentSession, string message, LLUUID toAgent, LLUUID imSessionID, string fromName, byte dialog, uint timeStamp); | ||
343 | void SendLayerData(float[] map); | ||
344 | void SendLayerData(int px, int py, float[] map); | ||
345 | void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look); | ||
346 | void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint ); | ||
347 | AgentCircuitData RequestClientInfo(); | ||
348 | void CrossRegion(ulong newRegionHandle, LLVector3 pos, LLVector3 lookAt, IPEndPoint newRegionExternalEndPoint, string capsURL ); | ||
349 | void SendMapBlock(List<MapBlockData> mapBlocks); | ||
350 | void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags); | ||
351 | void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, uint flags, string capsURL); | ||
352 | void SendTeleportCancel(); | ||
353 | void SendTeleportLocationStart(); | ||
354 | void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance); | ||
355 | |||
356 | void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos, byte[] textureEntry, uint parentID); | ||
357 | void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLVector3 velocity, LLQuaternion rotation); | ||
358 | void SendCoarseLocationUpdate(List<LLVector3> CoarseLocations); | ||
359 | |||
360 | void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint); | ||
361 | void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID, byte[] particleSystem, LLQuaternion rotation); | ||
362 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation); | ||
363 | |||
364 | void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items); | ||
365 | void SendInventoryItemDetails(LLUUID ownerID, InventoryItemBase item); | ||
366 | void SendInventoryItemUpdate(InventoryItemBase Item); | ||
367 | void SendRemoveInventoryItem(LLUUID itemID); | ||
368 | void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName); | ||
369 | void SendXferPacket(ulong xferID, uint packet, byte[] data); | ||
370 | |||
371 | void SendPreLoadSound(LLUUID objectID, LLUUID ownerID, LLUUID soundID); | ||
372 | void SendPlayAttachedSound(LLUUID soundID, LLUUID objectID, LLUUID ownerID, float gain, byte flags); | ||
373 | |||
374 | void SendNameReply(LLUUID profileId, string firstname, string lastname); | ||
375 | void SendAlertMessage(string message); | ||
376 | void SendAgentAlertMessage(string message, bool modal); | ||
377 | void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, string url); | ||
378 | bool AddMoney( int debit ); | ||
379 | |||
380 | void SendViewerTime(int phase); | ||
381 | void SendAvatarProperties(LLUUID avatarID, string aboutText, string bornOn, string charterMember, string flAbout, uint flags, LLUUID flImageID, LLUUID imageID, string profileURL, LLUUID partnerID); | ||
382 | void SetDebug(int newDebug); | ||
383 | void InPacket(Packet NewPack); | ||
384 | void Close(); | ||
385 | event ViewerEffectEventHandler OnViewerEffect; | ||
386 | event Action<IClientAPI> OnLogout; | ||
387 | event Action<IClientAPI> OnConnectionClosed; | ||
388 | void SendLogoutPacket(); | ||
389 | } | ||
390 | } | ||